Pentaho BIServer Community Edtion 6.1 使用教程 第三篇 发布和调度Kettle(Data Integration) 脚本 Job & Trans

摘要:
第一部分是凯特尔脚本开发1。创建资源数据库,并在此处登录以使用MySQL资源数据库方法。因为Kettle资源数据库与BIServer ce资源数据库的表结构无关,所以Kettle脚本不能直接通过数据库发布。请注意,Kettle资源库中的五个脚本文件之间存在目录引用关系,因此您需要在BIServer ce资源库中建立相应的文件目录,并将所有脚本文件发布到指定的目录,然后脚本文件才能成功运行。

     Pentaho BIServer Community Edtion 6.1 集成了 Kettle 组件,可以运行Kettle 程序脚本。但由于Kettle没有直接发布到 BIServer-ce 服务的程序,所以,在本地(Windows环境)通过图形化界面开发完成的ETL 脚本 (.ktr & .kjb) ,需要上传到BIServer-ce 管理的资源库,才能被BIServer-ce 运行和调度。

重点:Kettle 资源库 与 BIServer-ce 资源库 建立一致的目录管理ETL脚本文件。

第一部分 Kettle 脚本开发

1 创建资源库,并登录

此处使用MySQL 资源库方式。

image

2 新建MySQL库同步Job

基本逻辑:读取源数据库所有表明,保存在结果集中,对结果集的每一行数据即每一个表名,执行同步任务。其中同步任务是指清空目标数据库指定表,将源表数据输出到目标表。

整个MySQL库同步作业包括五个文件。均存储在资源库的 /home/spads/ 目录下,两个Job :

job_all_table_extract.kjb 、job_single_table_extract.kjb

三个trans:

trans_acquire_tableNames.ktr、trans_Single_TableName_Set.ktr、trans_Single_Table_extract.ktr

image

3 本地测试程序是否可以运行

执行 job_all_table_extract.kjb ,验证程序是否成功执行。

可选择线上测试运行,根据需要选择。

第二部分 发布Kettle脚本到 BiServer-ce

BIServer-ce 使用资源库管理程序文件,登录http://IP:8080/pentaho 后,可以点击 Browse Files 浏览程序文件。

由于 Kettle 资源库和 BIServer-ce 资源库表结构无关,所以不能直接通过数据库发布Kettle 脚本。需要在Kettle 中导出*.ktr 和 *.kjb 文件,通过资源管理页面,上传到BIServer-ce 的资源库。

此处需注意,Kettle 资源库中5个脚本文件存在目录引用关系,所以需要在BIServer-ce 资源库中建立对应的文件目录,并将到处的脚本文件发布到指定的目录,脚本文件才可以运行成功。

1 导出kettle 脚本

注意文件名

image

2 在BIServer资源库中建立与Kettle 资源库一致的文件目录

Kettle 脚本在Kettle资源库中的存储路径为 /home/spads,BIServer-ce 资源库的默认根目录为/home 因此在/home目录下新建目录 spads

image

3 上传kettle 脚本到对应的文件目录

image

第三部分 运行、调度Kettle 脚本

在资源浏览中选择JOB,可以选择右边的动作 Run in background 执行,并可以通过open 查看执行日志。 也可以选择Schedule 进行调度处理。

image

注:Kettle 执行表输入表输出时,可能会出现字符集乱码问题。一般需要检验作业或者转换使用的DB 连接的连接参数,

characterEncoding    utf8  指定连接字符集为 utf8 (MySQL使用,其他数据库使用UTF-8)

Pentaho BIServer Community Edtion 6.1 使用教程 第三篇 发布和调度Kettle(Data Integration) 脚本 Job & Trans第7张

还有一些数据问题,比如MySQL输入表中存在日期为 0000-00-00 00:00:00, 会导致表输入读取错误,可以通过配置 

zeroDateTimeBehavior  convertToNull  

 还有Kettle 默认会把空字符串转换为NULL,如果输入表和输出表对特定字段均限定不许为空,则会导致表输出错误,为解决此问题,需要配置Kettle 的配置文件,此文件通常存放在/用户名/.kettle/目录下,此处为/root/.kettle/kettle.properties

Pentaho BIServer Community Edtion 6.1 使用教程 第三篇 发布和调度Kettle(Data Integration) 脚本 Job & Trans第8张

在里面增加一行:

KETTLE_EMPTY_STRING_DIFFERS_FROM_NULL=Y

Pentaho BIServer Community Edtion 6.1 使用教程 第三篇 发布和调度Kettle(Data Integration) 脚本 Job & Trans第9张

免责声明:文章转载自《Pentaho BIServer Community Edtion 6.1 使用教程 第三篇 发布和调度Kettle(Data Integration) 脚本 Job & Trans》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇日期/时间 相关查询HTML5 FileReader读取Blob对象API详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

部署Kettle做ETL开发并使用Crontab制作调度系统

背景说明:在数据量较小,且数据源和装载地都是关系型数据库时,使用Kettle做ETL较为简便。由于调度系统产品因为服务器环境方面的因素,而无法部署,故使用Linux的crontab定时器来制作简易调度系统是一个比较简便的解决方案。本文旨在记录Kettle的部署及配置文件配置注意事项和如何自制简易调度系统,以便处理类似问题时方案的复用。 一、环境与工具 C...

java调用kettle_实现(2)

(1).参照“java调用kettle_导入jar包(1)”,应用etl工具下lib里的所有jar (2). 最近要对一个系统的数据同步到另一个系统中,要求新系统的数据结果完成之后,实时同步到另一个系统数据表中。       也就是动态的传一个关联的ID。由于旧系统是vb做的,无法提供webservice接口,并且同步的表涉及到十几张表,并且两个系统表结构...

Kettle行列转换

Kettle在控件中拥有行列转换功能,但是行列转换貌似是弄反了。 一.行转列 1.数据库脚本 create TABLE StudentInfo ( studentno int, subject varchar(10), grade int );insert into StudentInfo values(20110554...

Linux按时间分割日志

一、由来:需要做一个定时任务定期从MySQL数据库同步数据到Oracle,5m/次,同步日志写在一个文件恐有不妥,故而需要分割,一般按天,这里为了调试,按分操作。 1.任务如下:分别指定任务的脚本,任务读取文件路径,任务日志输出; #vim kettle.sh 2 /usr/etc/tools/pendaho/data-integration/kitc...

kettle作业(job)调用转换,设置变量,写日志到数据库中【转】

首先建立转换:从数据库表到日志 表输入的设置:   日志设置:   新建job:     转换选择刚才建好的输出日志转换。变量设置如下: 此ID就是转换中的${ID},执行job,可以看到控制台输出日志结果:   黑色字体部分中只写出了id=1的一条记录。   最后补充,将转换的日志写到数据库中:打开转换>ctrl+t>日志选项...

Kettle入门及性能优化FAQ

1、安装 配置Java环境 Java环境配置问题 java_home:D:Program FilesJavajdk1.7.0_25(安装jdk路径) classpath:.;%java_home%libdt.jar;%java_home%lib ools.jar path:在path路径中添加%java_home%in;%java_home%jrein;...