ETL

增量抽取数据问题,小妹跪求赐教?

0
各位大拿,求教,数据库为mysql,原始业务表中没有时间戳、也不可能让业务人员在上面加时间戳去修改表结构,如何实现增量抽取数据到数据仓库中?
已邀请:
1

我是最优雅的杀手,不杀人专杀狗 - 日光之下并无新事 2016-04-19 回答

获取业务系统数据到ODS系统有相应的ETL工具吗?下面是两个基于ETL工具实现增量调度方案。你可以参考下。
 
a.数据量相对不是很大,100W级别以下。
根据你的描述,你是需要把业务系统的数据抽取到ODS层,ODS一般是需要分多层存储的。这样的好处是可以起到数据缓冲,并且可以在不同层完成相对应的任务,比如数据清洗,增加审计字段,预关联,实体分类等。以下是一个实际企业级别的ODS 数据流程图。
 

6d156675284a1cb24333aba7ea64746a.png

 
其中在DWI层,我们会选择将源系统的数据,全部抽取到DWI层表中,同时落地成数据文件,如果是日调度。我们会对前后两天的数据文件做对比。来获取增量数据。
 
 
 
2>数据量相对比较大,100W级别以上。
一般业务系统会有自增长ID 列,我们会选择获取增量的时候,增加限制条件,比如SELECT * FROM TABLE_NAME WHERE ID>MAX(ID)
 
其中MAX(ID) 为上一次,最大ID值,如GeorgeYao  所说可以放到一个临时表。
 
0

GeorgeYao - 路漫漫其修远兮,吾将上下而求索! 2016-04-18 回答

1.如果业务系统有时间,来作为增量时间戳
2.如果业务系统没有时间,可以使用【日志行号--数字类型】来做增量时间戳
...
0

li052468 2016-04-18 回答

使用cdc
0

牟瑞 - 大数据 Hadoop 讲师 Hadoop入门课程地址:http://www.hellobi.com/course/39 有架构师,技术总监,CTO的职位请联系我! 2016-04-19 回答

监听bin log,需要写代码。
可以考虑用canal
0

子建 - Kettle讲师、顾问、数据仓库架构 2016-04-19 回答

找个能标识唯一记录的字段 或者某几个字段联合标识的 来确定唯一记录 然后做增量,如果说是都没有 就只能做全表比对了

要回复问题请先登录注册