我们有一个使用 Oracle Standard的客户,以及一个使用 OLAP 可以轻松解决十倍的项目。但是,Oracle 仅在企业版中支持 OLAP 。
无法迁移到企业
我正在考虑对 OLAP 进行一些手动模拟,创建关系表来模拟该技术。
你知道我可以用其他方法吗?也许是 OLAP 的开源工具?有任何想法吗?
您可以使用指向关系数据库的客户端工具来模拟 OLAP 功能。
我个人认为最适合这项工作的工具可能是Tableau Desktop。这是一个非常复杂的前端分析工具,可以毫不费力地使您的关系数据看起来是多维的,而且该工具本身确实令人兴奋。他们提供免费试用,因此您可以试一试。我们大量使用 Tableau 进行自己的分析,并且印象非常深刻。当然,此工具也适用于多维数据库,因此如果您最终得到一些多维数据集,您可以继续使用 Tableau 前端。
至于开源,你可以试试Palo——一个开源的 MOLAP 服务器和 Excel 前端。
如果您有兴趣构建自己的报告前端并使用 .NET,那么有许多组件(例如DevExpress PivotGrid或RadarSoft的几个工具)可以做同样的事情,但需要一些麻烦来连接一起。
我发现这是导致人们在查询数据库时遇到的大多数问题的模式。OLAP 强制您使用平面表或星形/雪花模式,这种模式易于查询,并且与源 oltp 表相比速度更快。因此,如果您将源代码 ETL 到平面表或星型模式,您应该从 OLAP 获得 80% 的内容,其中 20% 是 MDX 和分析功能和性能。
请注意,您也应该在关系数据库中使用星型模式来提高性能,而且 Oracle 可能无论如何都在 PL/SQL 中具有分析功能。
尝试一个名为“Mondrian”的开源 OLAP 服务器。IIRC 上的 XMLA API 与 AS 充分兼容以欺骗数据透视表服务,这将允许您将其与 ProClarity 或 Excel 一起使用。
IIRC 它最初是为在 Oracle 上工作而设计的——它是一个 HOLAP 架构,在底层关系存储和缓存聚合中使用基表。您还可以利用底层 Oracle 数据库中的物化视图和查询重写来进行聚合。
关于这个主题的更多想法:
实际上,Oracle Standard 确实有一个 OLAP 工具,该工具基于 Express 的后代,嵌入在数据库引擎中,并将其内部数据结构存储在主表空间中的 BLOB 中。使用它在技术上是可行的,但不一定可取,原因如下:
它使用了一个高度非标准的 OLAP 查询引擎,几乎没有第三方工具支持(AFAIK ArcPlan 是唯一支持 10g+ OLAP 的第三方 OLAP 前端),查询语言的文档很差,几乎没有描述它的第三方文献。如果您想编写 JSP 前端,这将适用于 BI Beans。它根本与 MDX 不兼容。截至 2006 年初,当被问及钻取(Discoverer 'Drake' 不支持此功能)时,Oracle 能做的最好的事情是建议使用 BI Beans 构建 JSP 应用程序。
没有从 Standard 到 Enterprise 的迁移路径的原因是 Enterprise 实际上是过去的 Siebel Analytics。Standard 是 Oracle 合作伙伴甚至在 Oracle 收购 Seibel 之前就建议避免使用的旧 Oracle OLAP/Express 后代。Oracle 甚至没有尝试支持迁移。
从这个角度来看,Mondrian 实际上是 Oracle 标准版商店最具成本效益的 OLAP 解决方案。您可以从名为 Pentaho 1的装备中获得支持的版本。下一个最便宜的是 SQL Server 附带的 Analysis Services。之后,您将进入 Hyperion Essbase 之类的产品,这将比 SQL Server 或任何受支持的 Mondrian 版本贵一个数量级。
虽然 MS SQL Server 提供 OLAP,但您需要企业许可证才能在面向 Web 的实时环境中使用多维数据集。
您可能还想尝试一下 www.icCube.com - 我们在用于填充多维数据集的数据源方面非常灵活,并且与市场上的大型参与者相比具有很高的成本效益。