一、明细层
分区日期为终态业务过程日期,其余归档30001231分区
采用二级分区:
create table target_table(COL …) partitioned by (state string,dt string);
–partition(state=“3”,dt),表示state为静态分区,dt为动态分区,以src_table中的city字段为分区名
- insert overwrite table target_table partition(state=“3”,dt) select COL,‘yyyy-mm-dd’ from src_table;
state和city均使用动态分区 - insert overwrite table target_table partition(state,dt) select COL,state,‘yyyy-mm-dd’ from src_table;
采用第1)种
终态分区日期
比如status 1 --发单 2 --接单 3 – 消单 4 – 服务中 5-- 完单
date_format(case when new.tms[‘3’] <> ‘1971-01-01’ then new.tms[‘3’]
when new.tms[‘5’] <> ‘1971-01-01’ then new.tms[‘5’]
else ‘3000-12-31’ end),‘yyyy-MM-dd’)
每次ods层来的是新增与变化的记录,可能一个业务主键会有多条事件记录,中间状态数据不会丢失。但是各种状态的记录,按order_id聚合后就只
累积快照事实表的维度建模方法
本文介绍了在维度建模中如何构建累积快照事实表。通过使用动态分区,确保数据的完整性和最新状态。在明细层,利用数据更新日期做分区,全量数据通过全连接进行更新。在汇总层,根据不同的时间周期如1d、1w、1m等,采用不同策略进行数据统计。同时,针对可累加和不可累加指标提供了处理方法。
订阅专栏 解锁全文
1092

被折叠的 条评论
为什么被折叠?



