大多数人是如何使用MDX查询的?我应该使用MDX结果来驱动web UI吗?

大多数人是如何使用MDX查询的?我应该使用MDX结果来驱动web UI吗?,mdx,olap-cube,Mdx,Olap Cube,我正在为一个即将到来的项目做一些分析 它与趋势、图表和分析有关;因此,考虑一段时间内的最大值、最小值、平均值、总和等 假设我们有一个OLAP多维数据集,该多维数据集设置为根据时间维度计算这些计算 理论上,后端是用来查询多维数据集的,并在一个月、一年或任何情况下获得某个对象A和某个属性B的结果(即在过去5年中,您可以通过使用类似于金融股票图表上使用的滑块窗口来扩展或缩小您的视野来操纵渲染的日期范围) 我们中的一些人认为,我们可以使用MDX查询多维数据集,以驱动使用HTML5图表工具的UI 我是OL

我正在为一个即将到来的项目做一些分析

它与趋势、图表和分析有关;因此,考虑一段时间内的最大值、最小值、平均值、总和等

假设我们有一个OLAP多维数据集,该多维数据集设置为根据时间维度计算这些计算

理论上,后端是用来查询多维数据集的,并在一个月、一年或任何情况下获得某个对象A和某个属性B的结果(即在过去5年中,您可以通过使用类似于金融股票图表上使用的滑块窗口来扩展或缩小您的视野来操纵渲染的日期范围)

我们中的一些人认为,我们可以使用MDX查询多维数据集,以驱动使用HTML5图表工具的UI

我是OLAP、MDX、多维数据集等的新手 但似乎没有一种干净的方法可以在.NET代码中检索MDX查询的结果(我们将在MVC网站中使用C)

到目前为止,我们发现最有效的方法可能是ADOMD

我想知道是否有其他人可以建议

是否有人使用OLAP多维数据集和MDX查询来驱动他们的网站

在我看来,如果多维数据集在过去2个月内已经正确设置为回答属性B的对象A之类的问题,那么我们应该能够准确地查询多维数据集中的数据,并在某些UI上以我们认为合适的方式显示它。不过,我不确定是否有一种干净的方法可以做到这一点


任何建议、见解和想法都将不胜感激。

如果您正在使用C#,并且正在使用自定义Web服务编写您自己的自定义UI,您可能会想尝试使用Ranet。这是一个开源项目,但后来被关闭。我不知道这些广告是否对您有意义。Ranet通过实现ANTLR来工作,因此如果它成功的话意识到花时间来实现这一点(这将很难)然后,您可以尝试利用尽可能多的ANTLR,它有一个.NET发行版。或者,您可以使用XMLA和ADOMD.NET,这将为您提供直观的对象来生成图表,但这是一个低效的协议。如果您使用Java,您可以使用olap4j,这将为您提供许多您需要的内容。您的选项取决于很多在您的服务器界面上。您是否使用Mondrian?您是否有XMLA servlet?自定义Web服务?

我想说OLAP和多维数据集非常适合此任务,并且您没有弄错。我将以icCube及其应用程序为例;您可以在链接上看到的图表基于当前过滤器生成MDX查询选择;您还可以获得事件(例如,单元格单击)和深入分析支持。这是在纯Javascript中完成的,因此您应该能够将其集成到您自己的网站中。该工具的设计主要针对OEM解决方案;因此它是高度可配置的,以满足您自己的需要;例如,您可以使用自己的图表库(当前支持:)。

实际上,您可以使用Ranet OLAP codeplex和google.code的版本没有更新,但可以在项目的官方网站上获得

五年前

我曾参与过一个项目,该项目有一个拖放界面(HTML和大量的JS),允许用户完全按照自己的意愿构建自定义多维数据集查询。我们使用ajax调用ASP,使用ADOMD获取多维数据集数据,并将其作为HTML表返回。图表是通过自定义JS创建的SVG绘制的。(现在使用.NET和JQuery会更容易,但仍然需要做很多工作。)

这听起来有点言过其实,但效果很好,足够可靠,可以卖给英国最大的酒店公司分析他们的销售数据

每当我遇到问题,在谷歌上寻求帮助时,似乎只有我一个人在互联网上展示OLAP数据(大多数人都在内联网中,我们也不使用网络浏览器提供数据).我不知道现在情况是否发生了变化,但我相信OLAP被视为查看您自己数据的一种方式,而不是管理客户数据并使他们能够查看数据

我的忠告是:

  • 如果你听到“pivot tables”这个词,那就跑开
  • 如果客户需要用户级或位置级安全性(角色),请逃跑
  • 确保您非常擅长编写MDX,因为人们会要求您为他们构建复杂的报告(他们并不总是希望使用UI来配置报告)
  • 构建多维数据集需要时间,但有时人们希望在刷新时看到实时更改(SQL可以做到这一点,但OLAP需要重新处理时间)
  • 可钻海图很酷,非常适合寻找异常

  • 我们在过去做过一件工作相当出色的事情,尽管有些人可能会认为这是一种逃避——我们使用SSIS包和嵌入式MDX查询,这些查询将数据展平并存储在二维SQL表中

    例如,我们使用一个OLAP多维数据集,将数据按天、按周等展平,并将计算作为附加列。这使我们能够使用AJAX对数据进行超快速查询。此解决方案特别适用于需要一段时间来处理每天或每周更新一次的数据集的MDX计算。我们希望st在正常ETL进程运行后,触发SSIS到SQL同步包在夜间运行

    可能需要20秒才能刷新的MDX计算可以展平为SQL并在毫秒内检索,为用户提供与其完整OLAP报告和即时响应时间基本相同的数据。然后,我们将此方法与图表库配对以显示摘要数据


    值得思考。

    我还需要进一步了解ADOMD.NET。最初的缺点是必须将MDX查询构建为字符串,并将字符串设置为数据访问对象的命令文本。没有干净的OLTP存储过程等效于将一些参数传递给存储过程并使存储过程不受影响