层次结构和级别(Pentaho 架构 workbench)?
Hierarchies and levels (Pentaho schema workbench)?
我是 BI 领域的新手,我有很多问题。我必须做一个 BI 作业项目,所以我决定使用:
- MYSQL(数据库)
- Pentaho 水壶(ETL)
- Pentaho 架构 workbench(星型架构)
- QlikView(报告)
我有一个维度 table,它是 SUPERMARKET
,它是从模式 workbench 和 MySQL 数据库之间的连接编辑的:
- Table
SUPERMARKET (id_supermarket, name_supermarket, number_of_boxes, active (YES or NOT), date_of_update)
SUPERMARKET
table 通过外键直接附加到事实 table SALES
。
所以我的问题是如何在 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)
让我们描述解决方案的整个概念:
- [SOURCE DB]: 您有一些数据源(数据库、其他系统),您希望将这些数据用于报告。假设您将这些数据存储在 MySQL 数据库中。
- [DWH]: 要将数据用于报告,您需要创建一个数据仓库(星型模式),从
source db
加载数据。
- [ETL]: 要从
source db
中提取数据并将它们加载到 DWH
,使用 ETL
。
- [OLAP 架构]: 在
DWH
之上构建 OLAP schema
。这是一个 XML 文件,reporting applications
使用它来了解如何查询 DWH
数据。它包含 OLAP 多维数据集、维度和度量的定义。
- [Reporting application]: 是一个知道如何以 OLAP 方式查询
DWH
数据的工具(它在多维数据集的顶部使用 MDX 查询, OLAP 架构中定义的维度和度量)。您只需定义一个 OLAP 模式位置和到 DWH 的连接即可使其工作。
请注意,如果您没有任何源数据库,您可以省略 source db
和 ETL
,目的只是为了证明一些功能概念。
对于 DWH(星型模式数据库),您需要 3 tables 以这些列开始:
- 标准尺寸table[dim_supermarket]:
supermarket_key, supermarket_name, number_of_boxes, active, date_of_update
- 时间维度table[dim_date]:
date_key, day_of_month, week_of_year, month, year
- 事实 table [fact_sales]:
date_key
(INT), supermarket_key
(INT), sales
(十进制)
..您可以使用 ETL (Kettle) on the base of this post
填充日期维度
在 Pentaho Schema Wrokbench 中创建 OLAP 模式:
- 设置与 DWH 的数据库连接
- 在
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:
- 添加 Mondrian OLAP 模式文件: 将 OLAP 模式 XML 文件复制到
saiku/tomcat/wabapps/saiku/WEB-INF/classes/
- 设置 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;
- 添加 MySQL 连接器: 例如
mysql-connector-java-5.1.17
到 WEB-INF/lib
- 运行 Saiku. 玩你的方块.
我是 BI 领域的新手,我有很多问题。我必须做一个 BI 作业项目,所以我决定使用:
- MYSQL(数据库)
- Pentaho 水壶(ETL)
- Pentaho 架构 workbench(星型架构)
- QlikView(报告)
我有一个维度 table,它是 SUPERMARKET
,它是从模式 workbench 和 MySQL 数据库之间的连接编辑的:
- Table
SUPERMARKET (id_supermarket, name_supermarket, number_of_boxes, active (YES or NOT), date_of_update)
SUPERMARKET
table 通过外键直接附加到事实 tableSALES
。
所以我的问题是如何在 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)
让我们描述解决方案的整个概念:
- [SOURCE DB]: 您有一些数据源(数据库、其他系统),您希望将这些数据用于报告。假设您将这些数据存储在 MySQL 数据库中。
- [DWH]: 要将数据用于报告,您需要创建一个数据仓库(星型模式),从
source db
加载数据。 - [ETL]: 要从
source db
中提取数据并将它们加载到DWH
,使用ETL
。 - [OLAP 架构]: 在
DWH
之上构建OLAP schema
。这是一个 XML 文件,reporting applications
使用它来了解如何查询DWH
数据。它包含 OLAP 多维数据集、维度和度量的定义。 - [Reporting application]: 是一个知道如何以 OLAP 方式查询
DWH
数据的工具(它在多维数据集的顶部使用 MDX 查询, OLAP 架构中定义的维度和度量)。您只需定义一个 OLAP 模式位置和到 DWH 的连接即可使其工作。
请注意,如果您没有任何源数据库,您可以省略 source db
和 ETL
,目的只是为了证明一些功能概念。
对于 DWH(星型模式数据库),您需要 3 tables 以这些列开始:
- 标准尺寸table[dim_supermarket]:
supermarket_key, supermarket_name, number_of_boxes, active, date_of_update
- 时间维度table[dim_date]:
date_key, day_of_month, week_of_year, month, year
- 事实 table [fact_sales]:
date_key
(INT),supermarket_key
(INT),sales
(十进制)
..您可以使用 ETL (Kettle) on the base of this post
填充日期维度在 Pentaho Schema Wrokbench 中创建 OLAP 模式:
- 设置与 DWH 的数据库连接
- 在
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 ; ...)
- 创建名为 "Sales" 的 measure(指向
.. 现在您已经创建了一个包含一个多维数据集、一个度量和两个维度的 OLAP 模式
设置 Saiku 以使用您的 OLAP 架构和 DWH:
- 添加 Mondrian OLAP 模式文件: 将 OLAP 模式 XML 文件复制到
saiku/tomcat/wabapps/saiku/WEB-INF/classes/
- 设置 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;
- 添加 MySQL 连接器: 例如
mysql-connector-java-5.1.17
到WEB-INF/lib
- 运行 Saiku. 玩你的方块.