数据仓库中的拉链表

本文介绍了数据仓库中为解决数据更新和历史快照查询问题而引入的拉链表概念。通过实例展示了如何创建订单历史信息表和订单拉链表,减少存储浪费并确保历史状态查询。最后,通过数据验证证明了拉链表的有效性和正确性。
摘要由CSDN通过智能技术生成

在数据仓库的数据模型设计过程中,经常会遇到这样的需求:
 1.1 数据量比较大;
 1.2 表中的部分字段会被更新,比如订单余额;
 1.3 需要查看某一个时间点或者时间段的历史快照信息,比如查看某一个订单在某个时间点的订单余额
 1.4 变化的比例和频率不是很大,比如,总共有1000万的会员,每天新增和发生变化的有10万左右;
如果表每天都保留一份全量,那么每次全量中会保存很多不变的信息,对存储是极大的浪费.如果保存所有数据的一份最新数据,又不能解决历史数据的查询问题.

综上所述: 引入"拉链表",既能满足反应数据的历史状态,又可以最大程度的节省存储;

创建订单历史信息表,每天保存全量的数据,如下所示:

--订单历史信息表 
drop table t_order_history;
create table t_order_history(
day_id varchar2(10) ,
order_id varchar2(10),
balance int,
create_time varchar2(10),
modify_time varchar2(10)
);
comment on table t_order_history is '订单历史信息表';
comment on column t_order_history.day_id is '日期ID';
comment on column t_order_history.order_id is '订单ID';
comment on column t_order_history.balance is '订单余额';
comment on column t_order_history.create_time is '创建时间';
comment on column t_order_history.modify_time is '修改时间';

--插入数据
insert into t_order_his
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值