层次结构和级别(Pentaho架构工作台)?

时间:2015-02-08 12:39:41

标签: pentaho kettle star-schema

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

  • MYSQL(数据库)
  • Pentaho Kettle(ETL)
  • Pentaho架构工作台(星型架构)
  • QlikView(报道)

我有一个维度表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调用或使用此模式?

1 个答案:

答案 0 :(得分:3)

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

  • 报告工具:Saiku 2.6
  • OLAP架构:Mondrian 3.8
  • OLAP架构工具:Pentaho Schema Workbench
  • 数据仓库(或DB):MySQL
  • ETL工具:Pentaho Data Integration(Kettle)

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

  1. [SOURCE DB]:您有一些数据源(数据库,其他系统),您要用于报告的数据。假设您将这些数据存储在MySQL DB中。
  2. [DWH] :要将数​​据用于报告,您需要创建一个数据仓库(在星型模式中),从source db加载数据。
  3. [ETL] :要从source db中提取数据并将其加载到DWH,我们会使用ETL
  4. [OLAP架构]:OLAP schema的顶部构建DWH。它是reporting applications用于了解如何查询DWH数据的XML文件。它包含OLAP多维数据集,维度和度量的定义。
  5. [报告应用程序]:是一个知道如何以OLAP方式查询DWH数据的工具(它使用多维数据集顶部的MDX查询,维度和度量定义于OLAP架构)。您只需要定义OLAP架构位置以及与DWH的连接以使其工作。
  6. 请注意,如果您没有任何源数据库,则可以省略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)
    4. ..您可以使用ETL (Kettle) on the base of this post

      填写日期维度

      在Pentaho Schema Wrokbench中创建OLAP架构:

      1. 设置与DWH的数据库连接
      2. 创建多维数据集"销售"在fact_sales的基础上
        • 创建度量,名为" Sales" (指向sales中的fact_sales列)
        • 创建标准维度"超市" (添加table = dim_supermarket;填充层次结构中的主键= supermarket_key;添加级别"超级市场名称"使用列supermarket_name
        • 创建时间维度"日期" (将维度类型设置为TimeDimension;添加表格dim_date;填充层次结构中的主键= date_key;添加级别"年份" - 列year,levelType = TimeYears;添加级别"月" - 列month,levelType =`TimeMonths; ...)
      3. ..现在您已经创建了一个包含一个多维数据集,一个度量和两个维度的OLAP模式

        设置Saiku以使用您的OLAP架构和DWH:

        1. 添加Mondrian OLAP架构文件:将OLAP架构XML文件复制到saiku/tomcat/wabapps/saiku/WEB-INF/classes/
        2. 设置OLAP架构位置和MySQL与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。使用您的多维数据集。