.NET的开放,免费,多维数据集数据结构

时间:2011-07-11 14:16:19

标签: .net olap cube

我正在开展一个项目,允许用户以类似于OLAP系统中提供的方式对数据进行切片和切块。但是,数据不存储在OLAP系统中,而是作为来自关系系统的平面记录提供给前端。

我最初的想法是,我可能需要获取该平面数据并使用它填充客户端多维数据集数据结构,然后可以通过编程接口查询。虽然这样的数据结构听起来很有趣并且难以自我编写,但我想知道是否已经有一个我可以利用的免费开放实现。

理想情况下,它会:

  • 在定义维度,级别,成员和属性方面提供了很大的灵活性
  • 支持计算的衡量指标
  • 提供了一个很好的界面来查询多维数据集
  • 是免费的,开源的,并且不需要任何特定的接口技术

有谁知道我可以使用的这样一个项目?

1 个答案:

答案 0 :(得分:0)

.NET提供了访问Analysis Services OLAP-Cube的非常简单的方法。所以我建议你用你的数据创建一个SSAS Cube。 确保您使用正确的Datasheme(Star-或Snowflake-Scheme)

创建多维数据集后,您可以使用.NET轻松访问它 阅读分析服务目录中的所有多维数据集的维度,级别和成员:

    AdoConn = new ADODB.Connection();
    AdoConn.Open("provider=msolap;Data Source=localhost;initial catalog=Final;", "", "", 0);            

    catalog = new ADOMD.Catalog();
    catalog.ActiveConnection = AdoConn;
    cubes = catalog.CubeDefs;

    foreach (ADOMD.CubeDef cube in cubes) //Read all Cubes
    { 
     cube.Name.ToString();
     foreach (ADOMD.Dimension dimension in cube.Dimensions) //Read all Dimensions of each Cube
     { 
      dimension.Name.ToString();
      foreach (ADOMD.Hierarchy hierarchy in dimension.Hierarchies) //Read all Hierarchies of each Dimension
      { 
       hierarchy.Name.ToString();
       foreach (ADOMD.Level level in hierarchy.Levels) //Read all Leves of each Hierarchy
       { 
        level.Name.ToString()
       }
      }
     }
    }
   AdoConn.Close();