我是BI世界的新手,我有很多问题。我必须做一个BI家庭工作项目,所以我决定使用:
我有一个维度表SUPERMARKET
,它是从schema workbench和MySQL数据库之间的连接编辑的:
SUPERMARKET (id_supermarket, name_supermarket, number_of_boxes, active (YES or NOT), date_of_update)
SUPERMARKET
表通过外键直接附加到Fact表SALES
。所以我的问题是如何在SUPERMARKET维度中建立层次结构和级别?
我所知道的是维度表的所有成员必须在它们之间具有时间维度之间的关系(年份包含季度,季度包含月份,月份包含星期,星期包含日期)。
我有另一个问题:Pentaho workbench将星型模式导出为XML文件,那么我如何在Pentaho Kettle中为ETL调用或使用此模式?
答案 0 :(得分:3)
首先建议:使用Saiku CE代替QlikView进行报告。它是查询Mondrian OLAP,创建简单报告和快速测试的最佳选择。
让我们描述解决方案的整个概念:
source db
加载数据。source db
中提取数据并将其加载到DWH
,我们会使用ETL
。OLAP schema
的顶部构建DWH
。它是reporting applications
用于了解如何查询DWH
数据的XML文件。它包含OLAP多维数据集,维度和度量的定义。DWH
数据的工具(它使用多维数据集顶部的MDX查询,维度和度量定义于OLAP架构)。您只需要定义OLAP架构位置以及与DWH的连接以使其工作。 请注意,如果您没有任何源数据库,则可以省略source db
和ETL
,目的只是为了证明某些功能概念。
对于DWH(星型模式DB),您需要3个表来启动这些列:
supermarket_key, supermarket_name, number_of_boxes, active, date_of_update
date_key, day_of_month, week_of_year, month, year
date_key
(INT),supermarket_key
(INT),sales
(DECIMAL)..您可以使用ETL (Kettle) on the base of this post
填写日期维度在Pentaho Schema Wrokbench中创建OLAP架构:
fact_sales
的基础上
sales
中的fact_sales
列)dim_supermarket
;填充层次结构中的主键= supermarket_key
;添加级别"超级市场名称"使用列supermarket_name
)TimeDimension
;添加表格dim_date
;填充层次结构中的主键= date_key
;添加级别"年份" - 列year
,levelType = TimeYears
;添加级别"月" - 列month
,levelType =`TimeMonths; ...)..现在您已经创建了一个包含一个多维数据集,一个度量和两个维度的OLAP模式
设置Saiku以使用您的OLAP架构和DWH:
saiku/tomcat/wabapps/saiku/WEB-INF/classes/
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-connector-java-5.1.17
至WEB-INF/lib