工具使用手册.docx
《工具使用手册.docx》由会员分享,可在线阅读,更多相关《工具使用手册.docx(14页珍藏版)》请在冰豆网上搜索。
工具使用手册
Pentaho工具
使用手册
作者:
马腾,李洪宇
版本:
1.0
目录
BI介绍2
Pentaho产品介绍3
Pentaho产品线设计4
PentahoBIPlatform安装4
PentahoDataIntegration-------Kettle8
PentahoReportDesigner12
Saiku23
SchemaWorkbench27
附件32
BI介绍
1.BI基础介绍
BI(BusinessIntelligence)即商务智能,它是一套完整的解决方案,利用数据仓库、数据挖掘技术对客户数据进行系统地储存和管理,并通过各种数据统计分析工具对客户数据进行分析,提供各种分析报告,为企业的各种经营活动提供决策信息。
其中的关键点是数据管理,数据分析,支持决策。
根据要解决问题的不同,BI系统的产出一般包括以下三种:
2.BI系统的产出
2.1固定格式报表
固定格式报表是BI最基本的一种应用,其目的是展示当前业务系统的运行状态。
固定格式报表一旦建立,用户就不可以更改报表的结构,只能依据数据库的数据不断刷新报表,以便取得较新的数据。
在pentaho产品线中,我们使用pentahoreportdesigner来实现固定格式报表的需求。
2.2OLAP分析
OLAP分析是指创建一种动态的报表展示结构,用户可以在一个IT预定义的数据集中自由选择自己感兴趣的特性和指标,运用钻取,行列转换等分析手段实现得到知识,或者验证假设的目的。
在pentaho产品线中,我们使用Saiku来实现OLAP分析的需求。
2.3数据挖掘
数据挖掘是BI的一种高级应用。
数据挖掘是指从海量数据中通过数据挖掘技术得到有用的知识,并且以通俗易懂的方式表达知识,以便支持业务决策。
在pentaho产品线中,我们使用weka来实现数据挖掘的需求。
Pentaho产品介绍
1.产品介绍
Pentaho是世界上最流行的开源商业智能软件,以工作流为核心的、强调面向解决方案而非工具组件的BI套件,整合了多个开源项目,目标是和商业BI相抗衡。
它是一个基于java平台的商业智能套件,之所以说是套件是因为它包括一个webserver平台和多个工具软件:
报表,分析,图表,数据集成,数据挖掘等,可以说包括了商业智能的方方面面。
2.Pentaho架构图
Pentaho的架构图如下,简要解释如下:
3rdpartyapplications指交易系统,也就是数据仓库的原系统。
Data&ApplicationIntegration主要指定义数据仓库的元数据,在数据仓库结构设计完毕后,通过ETL过程将原系统数据送入数据仓库。
BusinessIntelligencePlatform指pentaho提供的BI平台,在这个平台上可以进行平台安全设置,平台管理之类的工作,这个平台也是BI服务的基础。
Reporting,Analysis,Dashboards,ProcessManagement是基于BI平台上Pentaho可以实现的服务,比如报表,分析,仪表盘,服务自动控制等。
PresentationLayer指展示层,在这一层,我们可以把其下层做好的报表等分析结果通过门户网站,Email等各种方式展示给用户。
Pentaho产品线设计
1.产品线设计
Pentaho作为一个开源的BI套件,商业版与社区版加起来共有几十种产品。
考虑到恒信实际业务开展的情况,以及未来可能的需求,确定产品线如下。
BIFunction
Product
ETL
Kettle
MetadataManagement
PentahoMetadataEditor(PME)
OLAP
Saiku+SchemaWorkbench
Reporttools
Fixedreport:
Pentahoreportdesigner
Ad-hocreport:
Saiku
Dashboard:
CDE
DataMining
Weka
BIplatform
PentahoBIPlatform
Rlanguage
R
BigData
PentahoforBigData
产品线的设计并非一成不变,随着需求的增加,当某些需求无法利用现有的产品线实现时,可以继续添加组件,以便形成更为完善的BI体系。
PentahoBIPlatform安装
1.安装步骤
将下载下来的biserver-ce-X.X.X-stable.zip文件解压到D:
\下,将会产生administration-console和biserver-ce两个文件夹,前者是pentaho控制台,后者是pentahoBI服务器。
默认时,PentahoBI平台会使用内置的JRE,它位于D:
\biserver-ce\jre位置。
如果用户机器上安装了JDK,并设置了JAVA_HOME,则PentahoBI平台会使用用户指定的JDK。
运行D:
\biserver-ce>下的“start-pentaho.bat”批处理脚本能够启动PentahoBI服务器,它运行在ApacheTomcat容器中,并采纳了HSQLDB数据库(http:
//hsqldb.org/)。
2.启动/停止BIserver
现在,打开浏览器,并访问http:
//localhost:
8080/pentaho,则将看到登录界面,
当joe/password用户登录后,BI服务器的主界面将呈现在眼前。
如果需要停止PentahoBI服务器,则于D:
\biserver-ce目录下运行“stop-pentaho.bat”批处理脚本即可。
它将同时停止PentahoBI服务器和HSQLDB数据库。
3.启用/停止Pentaho管理控制台
于D:
\administration-console目录运行如下“start-pac.bat”批处理脚本能够启动Pentaho管理控制台。
默认时,它宿主在JettyWeb容器中。
将浏览器定位到http:
//localhost:
8099/网址后,并输入默认的admin/password用户,即可登录到Pentaho管理控制台中。
Pentaho管理控制台是整个BI平台的重要后端软件,系统管理员通过它能够完成各类操作,比如维护用户及角色信息、注册新的业务库(数据库连接)、控制BI服务器中的各种敏感信息、使用调度服务等。
如果要停止Pentaho管理控制台,则于D:
\administration-console目录下运行“stop-pac.bat”批处理脚本即可。
4.HSQLDB迁移到MySQLDB
4.1迁移原因
PentahoBI服务器的很多重要信息存储在数据库中,其默认使用HSQLDB数据库,即
借助它存储自身的资料库,比如Quartz调度信息、业务资料库连接信息(数据源)等。
HSQLDB是不能够支撑真实的企业应用的,生产环境必须替换它,因此我们需要将HSQLDB迁移至MySQL。
4.2创建MySQL数据库
分别执行下面加粗的sql脚本。
先后顺序不限。
运行方法是多种的,可以通过MySQLWorkbench导入工具实现。
我们设定导入的MySQL数据库地址为jdbc:
mysql:
//localhost:
3307,用户名root,密码root。
biserver-ce\data\mysql5\create_quartz_mysql.sql
biserver-ce\data\mysql5\create_repository_mysql.sql
biserver-ce\data\mysql5\create_sample_datasource_mysql.sql
其中
1.create_repository_mysql.sql
创建hibernate数据库,用于存储用户授权认证,solutionrepository以及数据源。
2.create_sample_datasource.sql
为sample数据添加pentaho所有基本的实例数据源。
3.create_quartz_mysql.sql
为Quartz计划任务器创建资源库。
4.3配置Pentaho
1.给pentaho添加JDBC文件
下载MySQL的JDBC驱动:
MySQL—mysql-connector-java-x.x.x.jar
将其拷贝至biserver-ce\tomcat\lib和administration-console\jdbc下,以便BIservice和administrationconsole访问MySQL数据库。
2.修改以下文件
biserver-ce\pentaho-solutions\system\applicationContext-spring-security-jdbc.xml
biserver-ce\pentaho-solutions\system\applicationContext-spring-security-hibernate.properties
biserver-ce\pentaho-solutions\system\hibernate\hibernate-settings.xml
biserver-ce\pentaho-solutions\system\hibernate\mysql5.hibernate.cfg.xml
biserver-ce\tomcat\webapps\pentaho\META-INF\context.xml
以上文件主要是替换SQL驱动,SQL用户名与密码等信息。
修改详情如下,红色部分代表文件名,黑体代表更改点。
applicationContext-spring-security-jdbc.xml
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
value="jdbc:
mysql:
//localhost:
3307/hibernate"/>
applicationContext-spring-security-hibernate.propertiesjdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:
mysql:
//localhost:
3307/hibernatejdbc.username=rootjdbc.password=roothibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialecthibernate-settings.xmlsystem/hibernate/mysql5.hibernate.cfg.xml
mysql5.hibernate.cfg.xmlcom.mysql.jdbc.Driver
jdbc:
mysql:
//localhost:
3307/hibernate
org.hibernate.dialect.MySQL5InnoDBDialect
root
rootcontext.xmlfactory="mons.dbcp.BasicDataSourceFactory"maxActive="20"maxIdle="5"
maxWait="10000"username="root"password="root"
driverClassName="com.mysql.jdbc.Driver"url="jdbc:
mysql:
//localhost:
3307/hibernate"
validationQuery="select1"/>
factory="mons.dbcp.BasicDataSourceFactory"maxActive="20"maxIdle="5"
maxWait="10000"username="root"password="root"
driverClassName="com.mysql.jdbc.Driver"url="jdbc:
mysql:
//localhost:
3307/quartz"
validationQuery="select1"/>
现在可以启动pentaho服务了。
可以看到BI环境准备就绪。
PentahoDataIntegration-------Kettle
1.Kettle安装
要运行此工具你必须安装Sun公司的JAVA运行环境1.4或者更高版本。
Kettle的下载可通过解压到想要放置的路径,并执行这一目录中Spoon.bat文件,Kettle的主界面将呈现在我们面前。
左侧部分是对转换和作业进行数据库等相关配置的设置区域。
Design是对应的组件明细。
右边部分是ETL的主界面,我们需要把Design页面中相关组件在上面设计展示。
Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。
Kettle的体系结构:
2.Kettle使用
2.1数据库连接
使用kettle进行数据抽取和转换之前必须连接数据库,你可以同时创建几种不同的数据库连接,如:
Oracle、sqlserver、MySQL等。
下图是对本地mysql数据库建立连接。
点击test按钮进行数据库连接测试
2.2新建一个转换Transformation(Ctrl+N)
eg要求:
将数据库中交易表的数据按时间增量抽取并过滤输出到目标数据库中的另一张表中。
第一步要先创建一个新transformation,再创建数据库连接;
第二步从输入中找到【表输入】,拖到主窗口释放鼠标。
接下来双击表输入写
查询语句;【获取目标表中对应字段的最新时间,没有就给个初始时间。
】
第三步从输入中找到【表输入】,拖到主窗口释放鼠标。
按住shift键,用鼠标点中第二步的表输入与第三步的表输入进行连接;在sql中从点击获取sql查询语句中选择需要进行增量操作的表,然后确认需要显示列名,出现没有where条件的sql语句,然后自己在sql中增加where条件用?
代表从上一个步骤中传过来的变量,在下面替换sql语句里的变量,打勾,确保到时问号符号能用被替换,从步骤插入数据的下拉菜单中选择上一步操作,在执行每一行上打勾。
第四步从输入中找到【字段选择】,拖到主窗口释放鼠标。
按住shift键,用鼠标点中表输入与字段选择进行连接;
第五步双击【字段选择】,可在根据需求选择保留字段;
第六步是找到【过滤记录】连接方法同上,双击过滤记录,在里面进行字段选择,并在中键入值。
确定保存。
最后找到【表输出】并对其连接,设置好输出表名等信息后。
点击保存,然后点击运行可进行转换。
整个结构图如下:
2.3新建一个作业Jobs(Ctrl+ALT+N)
eg要求:
将多个转换按照处理顺序保存到执行计划中。
并可以对其进行定时执行。
第一步要先创建一个新transformation,再创建数据库连接;
第二步从通用组件中找到【开始】,拖到主窗口释放鼠标。
接下来双击可以进行定时设置.
第三步从通用组件中找到【转换】,拖到主窗口释放鼠标,按住shift键,用鼠标点中开始与转换进行连接;
最后从脚本中找到【SQL】并对其连接,设置执行的SQL后。
点击保存,然后点击运行可按照start定义的方式进行执行。
整个结构图如下:
由于组件种类繁多,关于Design中其他组件的使用方法可以参考附件中的官方文档[Pentaho_Data_Integration_4_Cookbook.pdf]
PentahoReportDesigner
1.PentahoReportDesigner安装
开发者可通过解压到想要放置的路径,并执行这一目录中的report-designer.bat批处理文件,PRD的主界面将呈现在我们面前。
2.PRD使用例子
2.1新建一个报表(Ctrl+N)
对报表界面做简要介绍:
左侧的竖条展示了我们在设计报表时可能用到的工具。
中间的部分是报表的主界面,我们需要把报表结果在主界面上排版展示
右边的标签Structure可以看到报表的结构,Data标签里有所有要展示的数据。
包括报表query的结果,以及各种函数。
2.2创建query
在Data标签下右击datasets,选择JDBC连接,以下界面将会跳出。
左侧的框格显示了所有已存在的数据库连接,我们可以点击框格上方的按钮来增删改数据库连接。
右上侧的框格展示了我们对应于某个数据库连接有哪些已存在的query。
同样可以通过右上角的按钮来增删query。
右下侧的框格是query的主题部分,可以点击铅笔图标进入图形化SQL编辑器,也可以直接在显示的query语句中编辑SQL语句。
2.3设计query字段的展示。
在右侧data标签中找到query的查询结果字段,按住左键将其拖入到报表设计主界面。
切换右上角的标签页到Structure标签,单击报表设计主界面上的对象,在右下角的Style和Attributes标签上可以看到这个对象的风格和属性。
Style标签定义了这个对象的展示风格,比如字体颜色,背景色等内容。
Attributes标签定义了对象的属性,比如对象的类型,名字等内容。
可以看到报表设计主界面被分为了不同的区域,他们表示了报表的结构。
PageHeader与PageFooter中的对象会在报表的每页都显示。
ReportHeader中的对象只在报表开头时展示一次,Detail中的对象会完全罗列query中的结果,ReportFooter中的对象会只在report的结尾显示一次。
在右上角的Structure标签中也可以明显看出报表的结构,甚至可以看到在主界面上不显示的结构,比如DetailsHeader。
同时,在各个报表功能区域下,我们还可以看到主页面上的对象,比如下图中,我们可以通过Structure标签就可以知道在主界面的Details区域内我们放置了两个字段,sourceName和sourceID。
Structure标签中的报表结构是最为完整的报表结构,我们在主界面上看不到某些区域是因为软件默认在主界面上隐藏这些区域。
我们可以在Structure标签中点击相应对象解除隐藏。
比如在Structure标签中单击DetailsHeader,在Attributes标签中把hide-on-canvas改为False。
这样就可以在主界面上显示DetailsHeader区域。
2.4对数据做图
PRD中提供作图功能,我们可以对数据表进行作图以便更好地显示。
从左侧工具条中找到“chart”对象,将其拖到主界面上想要放置的位置。
在主界面上双击图片区域,可以修改图的种类以及选项,我们以饼图为例,解释如下图。
饼图效果如下:
2.5报表参数设计
PRD支持报表参数设计,我们可以利用参数来实现报表的filter。
具体做法如下,右击Data标签中的parameter
点击新增或者修改DataSources
新加一个query,取名Querycompanyname
SQL代码为
接下来我们做如下配置:
为parameter取名为f,指定query为Querycompanyname。
这样我们就产生了一个名为f的参数。
但是这个参数现在并不能起作用。
我们需要在报表查询的主query中把参数加入才行。
在主query中需要把参数f写为${f}格式才能起作用。
报表将会显示当companyname=参数f的值时,Select语句所选择的字段。
以下的例子中,我们创建了两个参数,f代表companyname和f1代表日期。
当我们运行报表时,对参数“公司”和“日期”选择具体的值,就可以看到报表查询主query根据指定公司和指定日期查询得到的结果。
2.6公式
PRD提供了强大的公式功能,不仅内建了很多实用的公式,比如“当前页数/总页数”,“总行数”,还支持自定义公式。
公式的入口在Data标签下的Functions上,右击增加公式,我们可以选取PRD内建好的公式,也可以自定义公式。
公式按照功能已经分类,除了内建公式之外,我们点击OpenFormula可以自定义公式。
2.7子报表,Subreport
PRD在软件设计时限制一个报表只能选定一个query在主界面上放置字段,也就是说一个报表同一时刻只支持从一个query查询到数据并且显示出来。
那么当我们需要在一个报表上同时显示多个数据集,多个query查询的结果时该怎么办?
办法就是添加一个subreport,在主报表从左侧的工具栏上拖入sub-report到想要的位置,双击进入subreport,会发现subreport和主报表设计器几乎一模一样,可以定义query,可以设置公式,唯一的不同是subreport不能新建参数,只能从主报表传递参数过来。
Saiku
1.PentahoSaiku安装
Saiku主要提供两种安装方式。
独立运行和集成在PentahoBI平台上,我们这里采用集成在PentahoBI平台这种方式运行。
点击http:
//analytical-