pentaho tech recap

7
Pentaho [email protected] 2009-12-22

Upload: mike-chen

Post on 24-Jan-2018

1.109 views

Category:

Technology


0 download

TRANSCRIPT

几个数字“Pentaho is the undisputed leader in open source BI.” (No. 1)

一个基于Pentaho的完整BI方案,至少需要用到其5个工具

熟练工完成一个完整的KPI报表(从抽取数据开始)至少需要1天时间

Pentaho没有性能问题,只要CPU够快,内存够多,服务器硬盘够大(Powered by Java ™)

Pentaho Open Source没有完整的文档,没有人性化的开发环境,没有老板喜欢看的报表(Zero)

准备业务数据尽量把业务数据都存储在数据库中,提高数据抽取成功性的概率(Pentaho支持35种以上市面不同层次数据源)

如果ETL工具(Kettle)不能直接访问业务数据库,需要介入备份还原IT策略(replication, mysqldump, cron job, shell等)

创建供ETL工具(Kettle)只读访问的用户;

确认哪些数据有历史记录,哪些只有即时记录(会影响到kettle jobs的设计);

设计DW/DM考虑存储量、性能等因素,在使用Mysql作为DW数据库时候,表存储使用MyISAM引擎;

考虑采用星型schema,简化维度模型,所有维度数据都存入独自一张表;

对维度表加以主键和索引,提供查询性能;

对事实表结合具体KPI需求,有选择创建非簇索引;

对无需钻取的数据,进行聚合以减少报表计算、提高性能;

ETL过程Spoon设计ETL流程,Pan运行转换,Kitchen执行job;

每个事实表单独一个任务(job),包含不同转换(transformation)来抽取,转换和加载数据;

使用时差变量以适应不同时区设置的源数据;

仔细考虑ETL自动运行时间和频率,避免抽取数据不完整或冗余;

多个job同时含有Slowly changing dimension的数据加载,注意区分运行时间顺序,避免导入失败;

Job开始执行当前ETL周期内的初始化数据操作,避免重复数据生成;

使用Cron job来自动运行和管理,统一输出日志;

OLAP模型设计使用Pentaho自带OLAP工具workbench创建星型结构schema

使用Dimension Usage创建共享维度,需要在独个事实表再进行切片的列可以考虑创建私有维度(Cube dimension)

使用Measure Expression来过滤度量值,如果能明确某些数据不需要,直接不进入事实表

使用hierarchy上的relation处理日期维度和时间维度关联

注意维度上level的排序,尤其有些key非自然排序的;

创建KPI报表Admin console(8099端口)创建报表管理,查看用户,在user console(8000端口)上创建analysis report

配置访问DW的数据源,加上参数支持unicode字符(userUnicode=true&characterEncoding=UTF-8)

如果看不到publish的schema,更新pentaho-solution/system/olap/datasources.xml

日志目录:bisever-ce/tomcat/logs 和bisever-ce/tomcat/bin,启用:biserver-ce/

tomcat/webapps/pentaho/WEB-INF/classes/log4j.xml

可以使用report designer 编辑分析报表,加入过滤查询的控件,以供用户选择

Jpivot默认不支持中文,加入中文字体:biserver-ce/tomcat/webapps/pentaho/

WEB-INF/jpivot/char/chartpropertiesform.xml