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 资源库方式。

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

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 脚本

注意文件名

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

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

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

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

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

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

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

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

zeroDateTimeBehavior  convertToNull

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

在里面增加一行:

KETTLE_EMPTY_STRING_DIFFERS_FROM_NULL=Y

Pentaho BIServer Community Edtion 6.1 使用教程 第三篇 发布和调度Kettle(Data Integration) 脚本 Job & Trans的更多相关文章

  1. Pentaho BIServer Community Edtion 6.1 使用教程 第四篇 安装和使用Saiku 插件 进行 OLAP

    OLAP(On-Line Analytical Processing,联机分析处理)是一个使分析师.管理者和执行者从原始数据中用来快速.一致.交互访问的一种软件技术,从而真实的反映企业的数据情况.OL ...

  2. Pentaho BIServer Community Edtion 6.1 使用教程 第一篇 软件安装

    一.简介: Pentaho BI Server 分为企业版和社区版两个版本.其中 社区版 CE(community edtion) 为免费版本. 二.下载CE版(CentOS): 后台下载命令: no ...

  3. Pentaho BIServer Community Edtion 6.1 使用教程 第二篇 迁移元数据 [HSQLDB TO MySQL]

    第一部分  迁移原因 Pentaho BI 社区版服务的很多元数据信息存储在数据库汇总,其默认使用HSQLDB 数据库,即借助它存储自身的资料库,比如 Quartz 调度信息.业务资料库连接信息(数据 ...

  4. SpringCloud核心教程 | 第三篇:服务注册与发现 Eureka篇

    Spring Cloud简介 Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全 ...

  5. EnjoyingSoft之Mule ESB开发教程第三篇:Mule message structure - Mule message结构

    目录 1. 探索Mule Message结构 2. Mule Message的Payload 3. Mule Message的Property 4. Mule Message的Attachment 5 ...

  6. 史上最简单的SpringCloud教程 | 第三篇: 服务消费者(Feign)

    转载请标明出处: https://www.fangzhipeng.com/springcloud/2017/07/12/sc03-feign/ 本文出自方志朋的博客 最新Finchley版本请访问: ...

  7. (转)SpringBoot非官方教程 | 第三篇:SpringBoot用JdbcTemplates访问Mysql

    本文介绍springboot通过jdbc访问关系型MySQL,通过spring的JdbcTemplate去访问. 准备工作 jdk 1.8 maven 3.0 idea mysql 初始化mysql: ...

  8. SpringCloud教程 | 第三篇: 服务消费者(Feign)

    上一篇文章,讲述了如何通过RestTemplate+Ribbon去消费服务,这篇文章主要讲述如何通过Feign去消费服务.一.Feign简介 Feign是一个声明式的伪Http客户端,它使得写Http ...

  9. SpringCloud教程 | 第三篇: 服务消费者(Feign)(Finchley版本)

    上一篇文章,讲述了如何通过RestTemplate+Ribbon去消费服务,这篇文章主要讲述如何通过Feign去消费服务. 一.Feign简介 Feign是一个声明式的伪Http客户端,它使得写Htt ...

随机推荐

  1. php 技术知识点汇总

    consul : 服务发现 做服务发现的框架常用的有 zookeeper eureka etcd consul zookeeper,  php中的libzookeeper PHP使用 swagger ...

  2. autolayout先进的自动布局工具箱

    原文链接:http://www.objc.io/issue-3/advanced-auto-layout-toolbox.html 在我的上一个项目中,因为是面向公司内部使用的客户端,所以我直接抛弃了 ...

  3. [ios]objective-c 协议和委托 (重点基础知识)

    objective-c protocol delegateprotocol-协议,就是使用了这个协议后就要按照这个协议来办事,协议要求实现的方法就一定要实现. delegate-委托,顾名思义就是委托 ...

  4. U+V2深度隐藏PE制作技术初探

    所谓U+,习惯上是指用UltraISO软件把ISO文件写入U盘来制作启动盘的一种技术.第一代U+兼容性不太好,不推荐使用.目前,兼容性比较好的是第二代U+启动技术(USB-HDD+ V2/USB-ZI ...

  5. linux 打开文件数too many open files解决方法

    出现这句提示的原因是程序打开的文件/socket连接数量超过系统设定值.查看每个用户最大允许打开的文件数量ulimit -a 其中 open files (-n) 1024 表示每个用户最大允许打开的 ...

  6. 控制面板的cpl程序列表

    控制面板的cpl程序列表 学习了:https://zhidao.baidu.com/question/2141898537654796628.html 最近用来sysdm.cpl: 辅助功能选项:ac ...

  7. php计算两个经纬度地点之间的距离(转)

    php计算两个指定的经纬度地点之间的距离,这个在做计算给定某个地点的经纬度,计算其附近的商业区,以及给定地点与附近各商业区之间的距离的时候,还是用的到的.下面是具体的函数代码以及用法示例. 关于如何获 ...

  8. iOS 从UITableViewController中分离数据源

    之前看objc.io #1 Light View Controllers看到一个非常不错的技巧:从UITableViewController中分离数据源,这样能够减小UITableViewContro ...

  9. 规范-Git打标签与版本控制

    Git打标签与版本控制规范 前言 本文适用于使用Git做VCS(版本控制系统)的场景. 用过Git的程序猿,都喜欢其分布式架构带来的commit快感.不用像使用SVN这种集中式版本管理系统,每一次提交 ...

  10. 进程间的八种通信方式----共享内存是最快的 IPC 方式

    1.无名管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用.进程的亲缘关系通常是指父子进程关系. 2.高级管道(popen):将另一个程序当做一个新 ...