数据仓库之极限存储实施
一、前言
本文参考大数据之路--阿里巴巴大数据实践内容,针对数据仓库中拉链表的存储进行了设计与实践。在本公司实际处理拉链表过程中,采用的是每天分区全量存储历史所有数据,这样极大地增加的存储的成本和数据查询效率。针对此种情况,通过极限存储的方式进行优化,此种方式会增加两个时间戳字段(分区字段:开始时间分区:start_date和结束时间分区:end_date),将所有以天为粒度的变更数据都记录下来。
二、原累计表处理方式
2.1 原数仓表结构:
CREATE TABLE IF NOT EXISTS dw.dwd_usr_sens_device_user_info_test_d(
device_id string COMMENT '设备ID',status int COMMENT '状态',
create_time bigint COMMENT '创建时间',
update_time bigint COMMENT '更新时间',
其他字段...
) COMMENT '设备用户信息累计表(每天存储全量设备用户)'
PARTITIONED BY (stat_day string comment '日期分区');
2.2 数据示例:
device_id | status | create_time |
---|