.NET 的开放、免费、多维数据集数据结构
Posted
技术标签:
【中文标题】.NET 的开放、免费、多维数据集数据结构【英文标题】:Open, free, cube data structures for .NET 【发布时间】:2011-07-11 14:16:19 【问题描述】:我正在着手开展一个项目,该项目允许用户以类似于 OLAP 系统中提供的方式对数据进行切片和切块。但是,数据并不存储在 OLAP 系统中,而是作为来自关系系统的平面记录提供给前端。
我最初的想法是,我可能需要获取这些平面数据并用它填充客户端多维数据集数据结构,然后可以通过编程接口对其进行查询。虽然这样的数据结构对我自己来说听起来很有趣且具有挑战性,但我想知道是否已经有一个免费的、开放的实现可供我利用。
理想情况下,它会:
在定义维度、它们的级别、成员和属性方面提供了很大的灵活性 支持计算度量 提供一个很好的界面来查询多维数据集 免费、开源且不受任何特定接口技术的约束有人知道我可以使用这样的项目吗?
【问题讨论】:
为什么不使用现有的 OLAP/MDX 服务器? 你有没有得到这个问题的答案? 不,从来没有。最终在服务器端进行。 【参考方案1】:.NET 提供了非常简单的方法来访问 Analysis Services OLAP-Cube。所以我建议你用你的数据创建一个 SSAS 多维数据集。 确保你使用正确的 Datasheme(星形或雪花方案)
创建 Cube 后,您可以使用 .NET 轻松访问它 读取 den Analysis Services 目录中所有多维数据集的维度、级别和成员:
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();
【讨论】:
后端不在我的控制之下,这也不是微软商店。这根本不是一个选择。或者您是否建议我可以在客户端本地运行 SSAS 而无需任何部署或许可麻烦?以上是关于.NET 的开放、免费、多维数据集数据结构的主要内容,如果未能解决你的问题,请参考以下文章
使用 C# .NET 访问 Oracle 多维数据集中的 OLAP 数据?
使用双跳 Windows 身份验证连接到 Microsoft Analysis Services 多维数据集