在网页中显示 OLAP SQL Server?

Posted

技术标签:

【中文标题】在网页中显示 OLAP SQL Server?【英文标题】:Display an OLAP SQL Server in a web page? 【发布时间】:2012-05-09 09:30:04 【问题描述】:

我有这种情况:

WServer 2008、SQL Server 2005、MS 分析服务 (SSAS)、ISS7 和 OLAP CUBE。

我需要将 OLAP 结果嵌入到现有网站的网页中。

我不需要任何维度选择,没有任何深入研究,没有任何 3 维度,只是预设 MDX 查询的被动结果。

下面是使用的 MDX 查询示例:(一段时间内代理的销售统计)

SELECT NON EMPTY  [Measures].[Valore]  ON COLUMNS,
    NON EMPTY  ([Prodotti].[Top Marca].[Top Marca].ALLMEMBERS * [Calendario].[Anno -  Mese].[Mese].ALLMEMBERS * [Agenti].[Cod Agente].[Cod Agente].ALLMEMBERS ) 
    DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM ( SELECT (  [Calendario].[Anno].&[2012]  ) ON COLUMNS 
    FROM ( SELECT (  [Agenti].[Vw Agenti].&[005]  ) ON COLUMNS FROM [Vendite])) 
    CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS

下面是我需要在网站上显示的简单结果:

我尝试使用报告查看器,但似乎无法出现此错误:

远程报告处理需要 Microsoft SQL Server 2008 Reporting Services 或更高版本

我无法安装 SQL Server 2008,所以我需要一个替代解决方案。

我尝试了一些开源,但他们需要安装 JAVA 等,大多数也没有连接到 SQL Server 或需要不同的 Web 服务器。

我也尝试使用 TSQL 查询,但它只返回 1 列的月份,而实际上我需要许多列来计算月份

注意:用户很多,有许多不同的操作系统和浏览器,如 iPad、Mac、Windows、Linux,...所以结果必须是 html 输出

所以我的问题是:

开发一个简单的网页(asp或aspx)(服务器端或客户端)来查询多维数据集以获得简单结果的最佳方法是什么(必须是HTML)如上所示,无需用户选择?

或者我在这个场景中根本不明白什么?

提前感谢谁能帮助我!

【问题讨论】:

【参考方案1】:

好吧,您在此处显示的是 s-s-rS 报告的结果,并且您想从您的应用程序中访问它,对吧?

基本上有 3 种方式可以从应用程序与 s-s-rS 进行交互:报表服务器 Web 服务(也称为 SOAP,报表管理器的构建方式)、URL 访问(报表服务器上报表的纯 url ) 和 ReportViewer 控件。

使用 ReportViewer 控件时,您可以使用本地处理模式或远程处理模式。远程处理模式是当控件从 s-s-rS 服务器检索完全处理的报告时。所以,顾名思义,处理是远程的。

据我了解,您没有可连接的 s-s-rS 实例,但您有报告。这是您将使用本地处理模式的场景。在这种类型的处理模式下,报表以 .rdlc 文件扩展名存储在本地,控件打开报表定义,对其进行处理,然后在视图区域中呈现报表。

您还需要将报表文件添加到 VS 项目中,并且有一些小限制,例如报表只能使用 PDF、excel 和图像格式显示。

【讨论】:

感谢 Diego 的清晰解释,是的,由于只能远程处理 s-s-rS 2008 的限制,我不能使用 s-s-rS 2005。你在现实中提到的小限制对我的视力来说是相当大的,我相信用户会选择一个列并粘贴到另一个文档中,而且用户有很多不同的操作系统,如 Ipad、Mac、Windows、Linux 等。 .. 所以结果必须是 HTML 输出。这就是为什么我正在寻找一些容易显示简单 HTML 的东西,我觉得这太难了!再次感谢并为你投票) 嗨,没问题,很高兴为您提供帮助。是的,向最终用户显示立方体是一件棘手的事情,我还没有找到一个好的解决方案。 s-s-rS 非常适合静态数据,但在交互方面缺乏功能,比如说可移植性 @Diego 8 年后,微软在 Web 应用程序中嵌入 OLAP 的解决方案是什么?【参考方案2】:

根据您的要求,不需要 ReportViewer 控件等。

有 ADOMD.NET(而不是标准的 ADO.NET)应该允许您使用静态 MDX 查询来获取您想要的所有数据。您需要考虑的唯一部分是如何正确解析结果对象以获取所需格式的 HTML 表格。

与使用报表查看器之类的工具相比,这将是一个更轻量级的解决方案。

我没有任何关于如何解析它的示例,因为它是我目前正在研究的东西,但据我目前所见,这并不难,而且它肯定包含您需要的所有信息。

就访问多维数据集而言,您可以使用 TCP/IP 直接连接(似乎在您提到执行 TSQL 查询时可用),或者您可以设置 MSMDPUMP 访问。

这不会提供任何类型的交互性,但你说这不是问题。

当我知道如何从 ADOMD.NET 结果集中解析信息时,我会尝试更新它。

【讨论】:

以上是关于在网页中显示 OLAP SQL Server?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 html 标签从 sql server 数据库显示到 html 页面?

在 SQL Server 商业智能中,为啥要从 OLAP 多维数据集创建报表模型?

SQL Server Analysis Services,从关系数据库更新 OLAP 维度

Microsoft SQL Server Analysis Services OLAP 多维数据集

将 HTML 网页连接到 SQL Server

ETL - OLAP和OLTP - 在SQL Server 2014中维护报告和跨国数据库