1

我是 BI 世界的新手,我有很多问题。我必须做一个 BI 家庭作业项目,所以我决定使用:

  • MYSQL(数据库)
  • Pentaho 水壶 (ETL)
  • Pentaho 模式工作台(星型模式)
  • QlikView(报告)

我有一个维度表,它是SUPERMARKET从模式工作台和 MySQL 数据库之间的连接中编辑的:

  • 桌子SUPERMARKET (id_supermarket, name_supermarket, number_of_boxes, active (YES or NOT), date_of_update)
  • SUPERMARKETSALES通过外键直接附加到 Fact 表。

所以我的问题是如何在 SUPERMARKET 维度中建立层次结构和级别?

我所知道的是,维度表的所有成员之间都必须有时间维度之间的关系(年包含季度,季度包含月,月包含周,周包含日)。

我还有一个问题:Pentaho 工作台将星型模式导出为 XML 文件,那么如何在 Pentaho Kettle 中调用或使用此模式进行 ETL?

4

1 回答 1

4

第一个建议:使用Saiku CE而不是 QlikView 进行报告。是查询 Mondrian OLAP、创建简单报告和快速测试的最佳选择。

  • 报告工具:Saiku 2.6
  • OLAP 模式:蒙德里安 3.8
  • OLAP 模式工具:Pentaho Schema Workbench
  • 数据仓库(或 DB):MySQL
  • ETL 工具:Pentaho 数据集成(Kettle)

让我们描述一下解决方案的整个概念:

  1. [SOURCE DB]:您有一些数据源(数据库、其他系统),您希望将哪些数据用于报告。假设您将这些数据存储在 MySQL DB 中。
  2. [DWH]:要将数据用于报告,您需要创建一个数据仓库(星型模式),您可以在其中从source db.
  3. [ETL]:用于提取数据并将其source db加载到使用。DWHETL
  4. [ OLAP架构]:OLAP schemaDWH. 它是一个 XML 文件,用于reporting applications了解如何查询DWH数据。它包含 OLAP 多维数据集、维度和度量的定义。
  5. [报表应用程序]:是一个知道如何以DWHOLAP方式查询数据的工具(它在OLAP模式中定义的多维数据集、维度和度量之上使用MDX查询)。您只需要定义 OLAP 模式位置和与 DWH 的连接即可使其工作。

请注意,如果您没有任何源数据库,则可以省略 and,目的只是为了证明一些功能概念source dbETL

对于 DWH(星型模式 DB),您需要 3 个包含这些列的表才能启动:

  1. 标准维度表【dim_supermarket】: supermarket_key, supermarket_name, number_of_boxes, active, date_of_update
  2. 时间维度表[dim_date]: date_key, day_of_month, week_of_year, month, year
  3. 事实表 [fact_sales]: date_key (INT), supermarket_key(INT), sales(DECIMAL)

..您可以在这篇文章的基础上使用 ETL (Kettle)填写日期维度

在 Pentaho Schema Wrokbench 中创建 OLAP 模式:

  1. 设置与 DWH 的数据库连接
  2. 在以下基础上创建立方体“销售”fact_sales
    • 创建名为“Sales”的度量(指向 中的salesfact_sales
    • 创建标准维度“超市”(添加表= dim_supermarket;在层次结构中填充主键= supermarket_key;添加级别“超市名称”与列supermarket_name
    • 创建时间维度“日期”(将维度类型设置为TimeDimension;添加表dim_date;在层次结构中填充主键 = date_key;添加级别“年” - 列year,级别类型 = TimeYears;添加级别“月” - 列month,级别类型 = `TimeMonths; ...)

.. 现在您已经创建了具有一个多维数据集、一个度量和两个维度的 OLAP 模式

设置 Saiku 以使用您的 OLAP 模式和 DWH:

  1. 添加 Mondrian OLAP 模式文件:将 OLAP 模式 XML 文件复制到saiku/tomcat/wabapps/saiku/WEB-INF/classes/
  2. 设置 OLAP 模式位置和 MySQL 连接到 thw DWH:编辑saiku/tomcat/wabapps/saiku/WEB-INF/classes/saiku-datasources/test,设置location=jdbc:mondrian:Jdbc=jdbc:mysql://localhost:3306/dwh;Catalog=res:test.xml;JdbcDrivers=com.mysql.jdbc.Driver;
  3. 添加 MySQL 连接器:例如mysql-connector-java-5.1.17WEB-INF/lib
  4. 运行赛库。玩你的立方体。
于 2015-02-09T21:12:53.487 回答