ETL技巧

来源:互联网 发布:普通话测试软件 免费版 编辑:程序博客网 时间:2024/06/14 14:53

目前做的项目ETL都是用SQL批量加载和转换数据,不知道是否行业都这样,只是觉得SQL批量处理起来速度很快,每天处理几百万条数据一到两小时可以处理完,下面简单介绍处理流程。

 

一、同步原始数据至ODS

可使用脚本语言或者ETL工具,建议每小时或每半小时执行一下,这样可以减少同步压力;

 

二、ODS至KN

全部使用SQL处理,如果要更新一个字段的值时用中间表,

譬如需要更新表A的字段c1的值为表B的字段name,关联键ID

一般想到的方法可能是这样 update A set c1 = B.name from b where A.id = B.id

这样速度比较慢,建议这样写,创建中间表C

INSERT INTO C SELECT T1.ID ,T2.NAME FROM A  T1 LEFT JOIN B T2 ON T1.ID = T2.ID;

注意关联键ID在B表中必须唯一。

DELETE A WHERE CONDITION;

INSERT INTO A

SELECT * FROM C;

 

三、KN至OL层

简单汇总,不解释。

原创粉丝点击