Kettle数据抽取解决方案
一、 Kettle介绍
1. Kettle简介
ETL即数据抽取(Extract)、转换(Transform)、装载(Load)的过程。Kettle的中文翻译为水壶。Kettle以元数据驱动的方式提供强大的抽取、转换和加载(ETL) 能力。本身提供了强大的图形界面设计器,可以大大缩短数据抽取项目的开发周期,并且容易维护。 Kettle设计器界面友好,提供了工作流设计模式,能满足各种场景的实现。
2. Kettle的模型架构

3. Kettle的优点
1) 支持多种数据源;
2) 支持多任务并发,支持大数据量的抽取转换处理,执行效率高;
3) 成熟的异常处理流程;
4) 可与Java应用很好结合。
4. Kettle的扩展性
Kettle的控件采用插件式开发模式,因此本身就具备了很好的扩展性,支持插件式开发。插件式开发可以提高应用的可用性,插件可以单独更新与升级。
二、 实施方案
1. 数据更新流程
示例方案的部署图如下:

通过部署在各个节点的监听触发器监听各个节点的业务表数据状态,当有数据更新时,触发器会将记录此部分数据,并将源节点名称和应抽取数据的表名等参数传递到ETL调度程序,ETL调度程序通过表名调度ETL脚本,将此节点的未抽取状态的增量数据抽取到目标数据库中,执行结束后将返回值参数传递给触发器更新数据状态。
2. 新增节点
新增节点时,将源节点的数据库配置(数据库名,表空间名,用户名,密码等信息)配置到相应的调度表中,在源数据库中配置监听触发器,人工手动执行脚本将新增节点的业务表的全量数据抽取到目标表中即可。
3. 问题处理
在调度程序中存在一种配置即当由于断网导致ETL脚本报错时,将脚本复位至执行前的状态并静置一段时间(时间可配置)后再次执行脚本,直到脚本运行成功。由于断网导致ETL脚本报错时,本次运行成功抽取到数据库中的数据回滚,等到下一次运行时重新抽取该数据。
<!-- Start -->
获知及时信息,请关注我的个人微信订阅号:0与1的那点事

<!-- End -->
本文为博主原创文章,转载请注明出处!
http://www.cnblogs.com/libingbin/
感谢您的阅读。
Kettle数据抽取解决方案的更多相关文章
- kettle 数据抽取时会出现 无法插入NULL
kettle 数据抽取时会出现 无法插入NULL,其实是空字符串,原因是kettle默认不区分空字符串和NULL. 解决办法: 修改kettle.properties 文件:
- Kettle 数据抽取
1.创建数据库连接 2.建立转换 3.指定源数据库和目标数据库的字段映射 一定要在「输出」中勾选「指定字段」,然后点按钮「Get All fields」,再「Enter mapping」,在弹出窗口映 ...
- KETTLE——(二)数据抽取
过了个春节,好长时间没有更新了,今天接着写第二部分——数据抽取. 进入界面以后会发现左侧菜单有两个东西:转换和作业:简单说一下,转换是单次的转换,不可重复,但可重复利用:作业是汇聚了其他操作和多次(可 ...
- ETL kettle 数据调取防止意外停止处理
pentaho kettle是目前使用比较广泛的一种etl工具 但是在使用的时候如做定时任务 会存在如果任务异常停止会发生数据不准或者丢失数据的情况 这种情况在<Pentho Kettle So ...
- Kettle定时抽取两个库中的两个表到目标库SYS_OPLOG表
A库a表(红色为抽取字段): 关联用户表: B库b表(红色为抽取字段): 关联用户表 C目标库SYS_OPLOG表(c表) 利用kettle抽取A库a表(具体名称见上图),B库b表的上面红色框起来 ...
- KETTLE数据上传
1. KETTLE简介 一种ETL工具,ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract).转换(transform).加载(l ...
- Spark数据倾斜解决方案(转)
本文转发自技术世界,原文链接 http://www.jasongj.com/spark/skew/ Spark性能优化之道——解决Spark数据倾斜(Data Skew)的N种姿势 发表于 2017 ...
- HR数据抽取:通过 Read Master Data 转换规则读取时间相关主属性数据
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- 《BI项目笔记》增量ETL数据抽取的策略及方法
增量抽取 增量抽取只抽取自上次抽取以来数据库中要抽取的表中新增或修改的数据.在ETL使用过程中.增量抽取较全量抽取应用更广.如何捕获变化的数据是增量抽取的关键.对捕获方法一般有两点要求:准确性,能够将 ...
随机推荐
- Oracle远程数据建物化视图(materialized)创建简单记录,以及DBLINK的创建
目的:实现远程数据库访问及其相应表的定时同步 一.远程数据库dblink的创建 select * from dba_db_links; select * from user_sys_privs;--查 ...
- cucumber & selenium & bddtest
目录 1.Cucumber介绍 refer link: 2.使用步骤 2.1 引入依赖 2.2新建test.future文件 2.3在resource目录下创建cucumber.bat,执行bat,c ...
- RocketMQ 安装
RocketMQ 安装 1.进入目录 cd /usr 2.下载 wget http://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.3.0/rocke ...
- 2016424王启元 Exp3免杀原理与实现
基础问题回答 1.杀软是如何检测出恶意代码的? (1)基于特征码的检测 特征码是能识别一个程序是一个病毒的一段不大于64字节的特征串.如果一个可执行文件包含这样的特征码则被杀毒软件检测为是恶意代码. ...
- 关于echar彩色柱状图颜色配置问题
在做配置页面的时候,有这样一个需求,用户可以选择配置是单色柱状图或者彩色的柱状图,并且颜色可以自定义的 思路:首先默认构建一个一个空的图表,然后根据记录上一次操作保存过来的参数重新组建option的值 ...
- hibernate 中对象的3种状态总结
1.Hibernate把对象分文三种状态:Transient(临时状态).Persistent(持久化状态).Detached(游离状态). 1)Transient:刚刚new出来的对象,就是Tran ...
- Java入门系列-18-抽象类和接口
抽象类 在第16节继承中,有父类 People People people=new People(); people.sayHi(); 实例化People是没有意义的,因为"人"是 ...
- golang 读取一行
//读取一行 func myReadLine(paths string) error { //先获取到文件信息 fileinfo, err := os.Stat(paths) if err != ni ...
- 2017年11月27日 C#MDI窗体创建&记事本打印&记事本查找、自动换行
MDI窗体第一个父窗体 把属性里的IsMdiContainer设置为true就可以了 父窗体连接子窗体 //创建一个新的类,用来连接别的窗体,并且别的窗体为唯一窗体 List<Form> ...
- Java API 之 Annotation功能
JDK1.5开始增加了Annotation功能,该功能可用于: 1.类: 2.构造方法: 3.成员变量: 4.方法 5.参数 等的声明: 该功能并不影响程序的运行,但是会对编译器警告等辅助工具产生影响 ...