|
|
@@ -113,38 +113,39 @@
|
|
|
|
|
|
---
|
|
|
|
|
|
-## 3. tdm_usr_tag_y2025_o(25 年总额标签 一次性凝固)
|
|
|
+## 3. tdm_usr_tag_o(往年总额标签 一次性凝固)
|
|
|
|
|
|
### 3.1 用途
|
|
|
|
|
|
-承载 25 年总额标签(16 品类 × 金额 / 次数 = 32 个),开发完一次性跑入永远不动。
|
|
|
+承载历年(往年)总额标签长表。1 期落地 25 年凝固(16 品类 × 金额 / 次数 = 32 个 tag_code),开发完一次性跑入永远不动;后续每年 1-1 凝固上一年累计新落 dt 分区,**不分新表**。
|
|
|
|
|
|
### 3.2 粒度
|
|
|
|
|
|
-每个 (entity_id, tag_code) 在 dt=20251231 分区内唯一。
|
|
|
+每个 (entity_id, tag_code) 在 dt 分区内唯一。每个 dt 分区对应一个凝固年(25 年 → `dt='20251231'`,26 年 → `dt='20261231'`,以此类推)。
|
|
|
|
|
|
### 3.3 来源
|
|
|
|
|
|
-`dws_usr_user_trade_1d WHERE dt BETWEEN '20250101' AND '20251231'` 一次性聚合。
|
|
|
+`dws_usr_user_trade_1d WHERE dt BETWEEN '{凝固年}0101' AND '{凝固年}1231'` 一次性聚合。1 期凝固 25 年用 `[20250101, 20251231]`。
|
|
|
|
|
|
-### 3.4 tag_code 清单(tag_type=stat,32 个)
|
|
|
+### 3.4 tag_code 清单(tag_type=stat,每凝固年 32 个)
|
|
|
|
|
|
| tag_code 模板 | 描述 | 来源 |
|
|
|
|---|---|---|
|
|
|
-| `usr_pref_trade_{category}_amt_y2025` | 某品类 25 年总额 | `SUM(pay_amt_cny)` WHERE dt IN [20250101, 20251231] |
|
|
|
-| `usr_pref_trade_{category}_cnt_y2025` | 某品类 25 年总次数 | `SUM(pay_order_cnt)` 同口径 |
|
|
|
+| `usr_pref_trade_{category}_amt_y{凝固年}` | 某品类该年总额 | `SUM(pay_amt_cny)` WHERE dt IN [该年 01-01, 12-31] |
|
|
|
+| `usr_pref_trade_{category}_cnt_y{凝固年}` | 某品类该年总次数 | `SUM(pay_order_cnt)` 同口径 |
|
|
|
|
|
|
-`{category}` 同 §2.4 16 品类。
|
|
|
+`{category}` 同 §2.4 16 品类。1 期 `{凝固年}=2025`,落 `usr_pref_trade_basketball_amt_y2025` 等 32 个 tag_code。
|
|
|
|
|
|
### 3.5 dt 锚点 + 写入
|
|
|
|
|
|
-- `dt='20251231'` 永久固定
|
|
|
-- 跑一次写入后永远不动
|
|
|
-- 落 `manual/backfill/{yyyymmdd}_tdm_usr_tag_y2025_o.sql` 一次性 SQL,不挂日调度
|
|
|
+- 按凝固年份 `dt='{yyyy}1231'`(25 年 = `dt='20251231'`,26 年 = `dt='20261231'`),永久固定
|
|
|
+- 每个 dt 分区跑一次写入后永远不动;新年凝固落新 dt 分区,旧分区不动
|
|
|
+- 落 `manual/backfill/{yyyymmdd}_tdm_usr_tag_o_y{yyyy}.sql` 一次性 SQL,不挂日调度
|
|
|
+- 业界 Kimball 周期快照事实表标准做法:单表 + insert-only 时间分区(粒度是周期不是事务,多年数据 `WHERE dt IN (...)` 切片即可)
|
|
|
|
|
|
### 3.6 行数估算
|
|
|
|
|
|
-30 万用户 × ~5 活跃品类 × 2 度量 ≈ 300 万行(永久),ORC 压缩后 < 100 MB。
|
|
|
+30 万用户 × ~5 活跃品类 × 2 度量 ≈ 300 万行 / 凝固年,ORC 压缩后 < 100 MB / 分区。N 年累积 N × 300 万行单表 OK。
|
|
|
|
|
|
---
|
|
|
|
|
|
@@ -167,14 +168,14 @@
|
|
|
|
|
|
## 5. 跨年扩张规则
|
|
|
|
|
|
-每年 1-1 凝固上一年累计为新表:
|
|
|
+每年 1-1 凝固上一年累计为 `tdm_usr_tag_o` 新 dt 分区(**不新建表**):
|
|
|
|
|
|
| 时点 | 动作 |
|
|
|
|---|---|
|
|
|
-| 2027-01-01 | 新建 `tdm_usr_tag_y2026_o`(凝固 26 年累计);`tdm_usr_tag_d` 移除 y2026 偏好 tag_code + 新增 y2027 tag_code |
|
|
|
-| 2028-01-01 | 新建 `tdm_usr_tag_y2027_o`;同理 |
|
|
|
+| 2027-01-01 | `tdm_usr_tag_o` 新落 `dt='20261231'` 分区(凝固 26 年累计);`tdm_usr_tag_d` 移除 y2026 偏好 tag_code + 新增 y2027 tag_code |
|
|
|
+| 2028-01-01 | `tdm_usr_tag_o` 新落 `dt='20271231'` 分区;同理 |
|
|
|
|
|
|
-`_o` 表数据永久保留。下游想看历年总额按 `dt='{凝固年}1231'` 查对应 `_o` 表。
|
|
|
+`_o` 表数据永久保留。下游想看历年总额按 `WHERE dt IN ('20251231', '20261231', ...)` 或 `dt='{凝固年}1231'` 查 `tdm_usr_tag_o` 一张表。
|
|
|
|
|
|
---
|
|
|
|