168大数据

标题: ETL增量处理总结 [打印本页]

作者: 168主编    时间: 2016-8-17 18:57
标题: ETL增量处理总结
1 LOG表1.1 思路
用log表记录业务库某表yw_tableA发生变化数据的主键。数据进入BI库目标表bi_tableA前,先根据log表记录的主键进行delete。
1.2 设计1.2.1 log表结构CREATE TABLE  LOG
(
  key_1 VARCHAR(20),  --主键1
  key_2 VARCHAR(20),  --主键2
  tName VARCHAR(20),  --来源表
  updateDate DATE,  --更新日期
  loadDate DATE  --加载日期
);


1.2.2 etl流程
图1 业务数据进入日志和临时表
图2 目标表初始化以及临时表数据进入目标
1.2.3 附部分sql--目标表初始化delete from bi_tableA tg where exists (select 1 from tmp_bi_tableA tmp where tg.key1 = tmp.key1) 2 左关联(键比对、全表比对)2.1 思路
业务库某表yw_tableA左关联BI库bi_tableA,可以关联上的舍弃;关联不上的进入目标表bi_tableA,然后对同一个业务主键多条进行处理(打上标记或delete)。比较适合小维表更新。
2.2 设计2.2.1 目标表结构
create tabel bi_tableA(  physical_key int identity,  --物理键,自增  logical_key varchar(20),   --业务键  col1 varchar(20),  --其他列  nowstate char(1),  --状态  loadDate DATE  --加载日期)
2.2.2 etl流程
图3 关联设计
2.2.3 附部分sql

--目标表状态更新(同一业务键记录保留最新)update bi_tableA set nowstate='0' where physical_key not in (select max(physical_key) from bi_tableA group by logical_key having count(physical_key) > 1 and nowstate='1' )
作者:
BlueBreeze
出处:
http://www.cnblogs.com/BlueBreeze/





欢迎光临 168大数据 (http://www.bi168.cn/) Powered by Discuz! X3.2