层次结构和级别(Pentaho 架构 workbench)?

Hierarchies and levels (Pentaho schema workbench)?

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

我有一个维度 table,它是 SUPERMARKET,它是从模式 workbench 和 MySQL 数据库之间的连接编辑的:

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

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

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

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

  • 报表工具:Saiku 2.6
  • OLAP 模式:Mondrian 3.8
  • OLAP 模式工具:Pentaho Schema Workbench
  • 数据仓库(或数据库):MySQL
  • ETL 工具:Pentaho 数据集成(Kettle)

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

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

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

对于 DWH(星型模式数据库),您需要 3 tables 以这些列开始:

  1. 标准尺寸table[dim_supermarket]:supermarket_key, supermarket_name, number_of_boxes, active, date_of_update
  2. 时间维度table[dim_date]:date_key, day_of_month, week_of_year, month, year
  3. 事实 table [fact_sales]: date_key (INT), supermarket_key (INT), sales(十进制)

..您可以使用 ETL (Kettle) on the base of this post

填充日期维度

在 Pentaho Schema Wrokbench 中创建 OLAP 模式:

  1. 设置与 DWH 的数据库连接
  2. fact_sales的基础上创建立方体"Sales"
    • 创建名为 "Sales" 的 measure(指向 fact_sales 中的 sales 列)
    • 创建标准维度"Supermarket"(添加table=dim_supermarket;在层次结构中填充主键=supermarket_key;添加级别 "Supermarket name",列 supermarket_name)
    • 创建时间维度"Date"(设置维度类型为TimeDimension;添加tabledim_date;填写主键hierarchy = date_key;添加级别 "Year" - 列 year,levelType = TimeYears;添加级别 "Month" - 列 month,levelType = `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. 运行 Saiku. 玩你的方块.