层次结构和级别(Pentaho 模式工作台)?
Posted
技术标签:
【中文标题】层次结构和级别(Pentaho 模式工作台)?【英文标题】:Hierarchies and levels (Pentaho schema workbench)? 【发布时间】:2015-02-08 12:39:41 【问题描述】:我是 BI 领域的新手,我有很多问题。我要做一个 BI 家庭作业项目,所以我决定使用:
mysql(数据库) Pentaho 水壶 (ETL) Pentaho 模式工作台(星型模式) QlikView(报告)我有一个维度表 SUPERMARKET
,它是从模式工作台和 MySQL 数据库之间的连接中编辑的:
SUPERMARKET (id_supermarket, name_supermarket, number_of_boxes, active (YES or NOT), date_of_update)
SUPERMARKET
表通过外键直接附加到 Fact 表 SALES
。
所以我的问题是如何在 SUPERMARKET 维度中建立层次结构和级别?
据我所知,维度表的所有成员之间都必须有时间维度之间的关系(年包含季度,季度包含月,月包含周,周包含日)。
我还有一个问题:Pentaho 工作台将星型模式导出为 XML 文件,那么如何在 Pentaho Kettle 中调用或使用此模式进行 ETL?
【问题讨论】:
【参考方案1】:第一个建议:使用 Saiku CE 而不是 QlikView 进行报告。是查询 Mondrian OLAP、创建简单报告和快速测试的最佳选择。
报告工具:Saiku 2.6 OLAP 架构:蒙德里安 3.8 OLAP 架构工具:Pentaho 架构工作台 数据仓库(或数据库):MySQL ETL 工具:Pentaho 数据集成(Kettle)让我们来描述解决方案的整个概念:
-
[SOURCE DB]:您有一些数据源(数据库、其他系统),您希望将这些数据用于报告。假设您将这些数据存储在 MySQL DB 中。
[DWH]:要将数据用于报告,您需要创建一个数据仓库(星型模式),从
source db
加载数据。
[ETL]:要从source db
中提取数据并将它们加载到DWH
,使用ETL
。
[OLAP 架构]: 在DWH
的顶部构建OLAP schema
。它是reporting applications
用来了解如何查询DWH
数据的XML 文件。它包含 OLAP 多维数据集、维度和度量的定义。
[报表应用程序]:是一个知道如何以OLAP方式查询DWH
数据的工具(它在OLAP模式中定义的多维数据集、维度和度量之上使用MDX查询)。您只需要定义 OLAP 模式位置和与 DWH 的连接即可使其工作。
请注意,如果您没有任何源数据库并且目的只是为了证明一些功能概念,则可以省略 source db
和 ETL
。
对于 DWH(星型模式 DB),您需要 3 个包含这些列的表才能启动:
-
标准维度表[dim_supermarket]:
supermarket_key, supermarket_name, number_of_boxes, active, date_of_update
时间维度表[dim_date]: date_key, day_of_month, week_of_year, month, year
事实表 [fact_sales]: date_key
(INT)、supermarket_key
(INT)、sales
(DECIMAL)
..您可以使用ETL (Kettle) on the base of this post 填写日期维度
在 Pentaho Schema Wrokbench 中创建 OLAP 模式:
-
设置与 DWH 的数据库连接
在
fact_sales
的基础上创建cube“销售”
创建名为“Sales”的度量(指向fact_sales
中的sales
列)
创建标准维度“超市”(添加表=dim_supermarket
;在层次结构中填充主键=supermarket_key
;添加级别“超市名称”与列supermarket_name
)
创建时间维度“日期”(将维度类型设置为TimeDimension
;添加表dim_date
;在层次结构中填充主键=date_key
;添加级别“年”-列@987654348 @, levelType = TimeYears
; 添加级别“月” - 列 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。 玩你的立方体。
【讨论】:
非常感谢mzy,现在我知道我该做什么了。以上是关于层次结构和级别(Pentaho 模式工作台)?的主要内容,如果未能解决你的问题,请参考以下文章