关系型数据库的三种离线同步⽅式九姑娘
本⽂主要介绍关系型数据库的三种同步⽅式,并提供相关代码。这三种⽅案在我的实际⼯作中都有⽤到,欢迎在评论区交流!增量同步
表设计
表名:ods_{数据源缩写}_{原始表名},以订单为例:ods_ord_order
表性质:每⽇全量分区表
⽣命周期:保留近30天的历史数据
抽取增量
常规情况下,我们按照更新时间或者创建时间来抽取增量,如果是第⼀次初始化抽取,则应该是抽取全量。
⽇志表和更新表的第⼀次初始化抽取
select *
, now() etl_time
from t_ord_order -- 原始表
更新表常规抽取
若数据源是更新表,则按照数据的更新时间来抽取。
教师节班会主持稿select *
, now() as etl_time
from t_ord_order -- 原始表
where 更新时间 >= DATE_SUB(curdate(),INTERVAL -1 DAY)
;
⽇志表常规抽取
若数据源是⽇志表,则按照数据的创建时间来抽取。
select *
, now() as etl_time
from t_ord_order -- 原始表
where 创建时间 >= DATE_SUB(curdate(),INTERVAL -1 DAY)
;
合并
insert overwrite ods_ord_order partition(ds = replace(days_sub(now(),1),'-',''))
select id
, order_id
...
, elt_time
from (
select *
牛年祝福语2021最火, row_number() over(partition by id order by 更新时间/创建时间 desc, etl_time desc) as level
from (
select *
from ods_ord_order -- 数据仓库表
where ds = replace(days_sub(now(),1),'-','') -- t-1的增量
公众平台注册union
select *
from ods_ord_order -- 数据仓库表
where ds = replace(days_sub(now(),2),'-','') -- t-2的全量
)
tmp
韩国女子团队m腿舞) tmp
where level = 1 -- 取最新的记录
;
流程图
全量同步qq面板透明
增量合并全量
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论