用ETL工具kettle实现的一个需求
来源:互联网 发布:阿里云幕布的申请 编辑:程序博客网 时间:2024/05/21 04:23
通过最近一段时间的学习,对kettle有了大致的了解,也通过该工具实现需要的需求。
我介绍下我的需求:
数据流程:源(外购数据,网页抓取,人工采集)
源和目的端的表结构完全不一样,这里就包含了三种情况:一对一、一对多、多对一。其中一对多包含两种情况:一个表的一条数据到一个表的多条数据,即横转纵。这个插件在kettle中有。第二种是一个表的一条数据到多个表的多条数据,这种情况就相当于是多个一对一的情况。多对一就是反过来了。除了这些其实还有一个特殊的需求,就是表中一个字段中会存在一个公式,比如A+B,这里的A和B都需要替换成其他表中对应字段的值。这是一种特殊的需求,需要开发自己的插件来实现。
设计方案判断是否可行标准。
1、
新增
修改
删除
一对一
一对多
多对一
2、对每行数据可以进行日志记录。
3、对每次处理的数据条数可以进行控制。
设计方案:
对于源表的每条变化都要进行记录,在源表上建立触发器,对增删改进行监控。所以就需要一张变动表 来记录所有的记录。这里还有一种方式,就是通过时间戳的方式,就不需要记录每一条记录的时间了。
对于源表到目的表的对应情况,以及需要用什么样的转换过程,需要一张配置表。
由于转换对应关系是通过存储过程来实现的,所以就需要一个目的临时表,而不是直接进入目的表中。目的临时表比目的表多两个字段。用来表示源和目的的关系。
这样就设计完了。至于实现就见下:
实现方式:
对每一条数据进行提取转换装载后再进行下一条的整个流程,可想而知,本来kettle就是并行的,结果现在就是单行了,效率低的吓人。在目的表中为10W条数据的时候,速度在每分钟150条左右。这根本不符合需求,虽然需求只需要每分钟500条就够了。第一种需求是为了对每一条数据进行详细记录是否成功,如果失败可以及时的知道,并且处理。所以进行一下的更改。将提取转换 和装载分开进行,而且是批量进行。对于日志就在存储过程中进行记录。(计划开发个插件进行记录。)。
图就发不了了,如果大家有什么疑问给我留言。我看到后一定给各位回复。。。。。。
- 用ETL工具kettle实现的一个需求
- etl工具,kettle实现循环
- ETL工具kettle实现循环
- ETL工具Kettle的基本使用
- 关于ETL 工具 kettle
- 开源ETL工具 Kettle
- ETL工具 kettle
- etl工具kettle
- ETL工具kettle与java结合使用程序生成一个简单的转化文件
- 开源ETL工具kettle系列
- 开源ETL工具kettle系列
- 开源ETL工具kettle<转>
- Java调用ETL工具Kettle
- kettle定时执行(ETL工具)
- ETL工具kettle spoon使用说明
- ETL工具kettle源码编译
- 开源ETL工具 Pentaho Kettle
- ETL kettle 工具使用例子
- C# 调用 Google Earth Com API开发(三)
- itcompiere.com Dreamweaver方便快捷编辑网页标签
- JProfiler在Linux上的安装和使用
- C# 调用 Google Earth Com API开发(四)
- 见与不见
- 用ETL工具kettle实现的一个需求
- /LGC窗口管理/RenderingProject/CMArchitecture
- 坏消息又一
- /LGC窗口管理/组合窗口管理器
- WPF Binding
- activeReport_开发
- think about how to make the function close to really world
- spring中scope设置的疑问(解决)
- Delphi - 关于错误E2154 Type '%s' needs finalization - not allowed in variant record