如何使用 PostgreSQL 数据库作为 XMLA 数据源?

How to use a PostgreSQL DB as XMLA datasource?

基础:

据我所知,到目前为止,我必须使用 OLAP 服务器作为 MDX 查询和 SQL 数据库之间的连接器来提供 XMLA 作为数据源。因此我想使用 Mondrian OLAP-server。

问题:

现在我需要启动 Mondrian OLAP 服务器,将它连接到 PostgreSQL 数据库并提供一个 OLAP 模式。

  1. 如何启动 Mondrian OLAP 服务器?
  2. 如何将它连接到 PostgreSQL 数据库?
  3. 如何向 mondrian 服务器提供模式?
  4. 最后,如何连接到蒙德里安服务器?

我找不到任何分步指南或任何有用的蒙德里安文档。对我来说都是一团乌云。

问题

很多很多小时后,我找到了这个帖子:Github - Mondrian issue 202

Mondrian 开发人员在此线程中明确指出几乎整个文档都已过时并且与实际的 Mondrian 4 OLAP 服务器没有太多关系。

他们说 Mondrian 4 不再附带可部署的 WAR 文件,并且架构有很大的变化。


启动 Mondrian OLAP 服务器

为了获得 Mondrian 运行ning,我下载了这个启动 mondrian 服务器的 Maven 项目:mondrian-xmla-spike

我得到了所有 运行 描述的 derby Foodmart 数据库。

您可以将项目导入为您选择的 IDE 中的 maven 项目(我所做的)或 运行 mvn 通过。控制台。


使用 Mondrian 作为 XMLA 提供者

在 maven 项目中,您必须检查所有文件(不是很多)的硬编码路径并将它们更改为您的环境。

如果您已完成此操作,并将项目作为应用程序启动,则应该可以通过访问蒙德里安服务器。地址 http://localhost:8888/xmla

上的码头服务器

您可以连接任何可以使用 XMLA 数据源并支持 Mondrian OLAP 服务器的组件!最后一部分非常重要。蒙德里安并不完全符合 MDX 标准。 Penthao 方面的错误决定!大多数 OLAP 组件或 BI 工具仅支持 MS SQL 服务器作为 XMLA 数据源。


将 Mondrian 连接到 PostgreSQL 数据库

要将现有的 Maven 项目连接到 PostgreSQL 数据库,我必须执行一些步骤:

  1. 将 pom (xmla-spike.xml) 文件中的蒙德里安版本更新为 4.x 版本(我使用 4.3.1.5-191)。您可以从这里选择一个:Penthao Mondrian Versions
  2. 下载正确的 JDBC 驱动程序(对我来说是 JDBC42):PostgreSQL JDBC Driver 并添加 JDBC 驱动程序 (.jar)到您的项目库

    或从此处添加正确的 JDBC 驱动程序(我使用 9.4.1209):PostgreSQL JDBC Driver JDBC 4.1 到您的 maven pom (xmla-spike.xml).

  3. 将datasource.xml中的<DataSourceInfo>改为:

    Provider=mondrian;Jdbc=jdbc:postgresql://localhost:5432/default?user=postgre;JdbcDrivers=org.postgresql.Driver;Catalog=/WEB-INF/Schema.xml;

    • DB url: jdbc:postgresql://localhost:5432/default?user=postgre
    • => jdbc:postgresql://host:port/database
  4. 创建 Schema.xml 文件并编写一个简单的模式,如下所述:How to Design a Mondrian 4 Schema

    您可以在此处查看带有元模型 4 的 Foodmart 示例架构:Foodmart.xml metamodelVersion="4.0"

  5. <Catalog name="*"> 必须匹配 Schema.xml

  6. 的架构名称

这对我有用。我希望我能帮助别人。如果我忘记了一些步骤,请发表评论,我会添加缺少的步骤。