适用于 .NET 的开放、免费的多维数据集数据结构

发布于 2024-11-19 20:10:24 字数 375 浏览 3 评论 0原文

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

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

理想情况下,它会:

  • 围绕定义维度、其级别、成员和属性提供很大的灵活性
  • 支持计算的度量
  • 提供一个很好的界面来查询多维数据
  • 集 免费、开源并且不受任何特定界面技术的束缚

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

I'm embarking on a project that allows users to slice and dice data in a fashion much like that provided in OLAP systems. However, the data is not stored in an OLAP system and will be provided to the front-end as flat records from a relational system.

My initial thinking is that I may need to take that flat data and populate a client-side cube data structure with it, which can then be queried via a programmatic interface. Whilst such a data structure sounds interesting and challenging to write myself, I'm wondering whether there is already a free, open implementation that I can leverage.

Ideally, it would:

  • provide a lot of flexibility around defining dimensions, their levels, members, and attributes
  • support calculated measures
  • provide a nice interface by which to query the cube
  • be free, open source, and untied to any particular interface technology

Does anyone know of such a project I could use?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

内心激荡 2024-11-26 20:10:25

.NET 提供了非常简单的方法来访问 Analysis Services OLAP-Cube。所以我建议您使用数据创建一个 SSAS 多维数据集。
确保您使用正确的数据方案(星型或雪花方案)

创建多维数据集后,您可以使用 .NET 轻松访问它
读取 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();

.NET provides really simple methods to access an Analysis Services OLAP-Cube. So i would suggest, that you create an SSAS Cube with your Data.
Make shure u use the right Datasheme (Star- or Snowflake-Scheme)

After creating your Cube you can easily access it with .NET
Read Dimensions, Levels and Memebers of all Cubes in den Analysis Services Catalog:

    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();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文