本包目录(311 条)

事务事实表

事务事实表记录每次业务事件,只追加不修改,是粒度最细、用途最广的事实表;可加度量(金额、数量)在这里定义,留存、复购等分析都由它派生。

粒度一次事件一行
写入按分区追加,重跑覆盖分区
度量金额、数量、折扣等可加字段
衍生由它聚合成汇总表与快照

建表与写入

建表与写入
CREATE TABLE fact_trade_order (
  order_id BIGINT, date_sk INT, user_sk BIGINT, product_sk BIGINT,
  pay_amount DECIMAL(18,2), qty INT
) PARTITIONED BY (dt STRING);

INSERT OVERWRITE TABLE fact_trade_order PARTITION (dt='2026-10-11')
SELECT order_id, date_sk, user_sk, product_sk, pay_amount, qty
FROM dwd_trade_order_detail_di WHERE dt='2026-10-11';
事务事实表要保证事件只落一次:上游重跑时必须用分区覆盖写入,而不是追加。

易错点

  • 用 INSERT INTO 追加写入重跑的分区,产生重复事件行
  • 把不可加比率(如转化率)直接存进事实表,汇总时数值失真

数据来源与参考

  • Kimball《The Data Warehouse Toolkit》事务事实表
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌