|
@@ -568,7 +568,7 @@
|
|
|
|
|
|
|
|
### ADR-14 小表小文件治理:全量快照(类 1)vs 增量 + raw TTL(类 2)分治
|
|
### ADR-14 小表小文件治理:全量快照(类 1)vs 增量 + raw TTL(类 2)分治
|
|
|
|
|
|
|
|
-- **状态**:草案(方向记录,待实施)
|
|
|
|
|
|
|
+- **状态**:被 ADR-15 取代(病灶定位错误)
|
|
|
|
|
|
|
|
- **背景**:raw 层小文件累积。查证实况:DataX 每分区落 **1 个文件**(`channel=10` 未 fan-out,并非"每 channel 一文件"),两大交易表分区 ~400KB、fillback 历史大分区 `dt=20211027` 114MB 均健康;碎点集中在**低量小表(panini KB 级)× 按天分区无限增长**。按 ADR-03,raw 是落地暂存、ods 是历史真源(跨 dt 多版本),且 ods 每日只读 `raw.dt IN (${dt}, ${pdt})` 两天——更老的 raw 日分区对日常链路是死重。
|
|
- **背景**:raw 层小文件累积。查证实况:DataX 每分区落 **1 个文件**(`channel=10` 未 fan-out,并非"每 channel 一文件"),两大交易表分区 ~400KB、fillback 历史大分区 `dt=20211027` 114MB 均健康;碎点集中在**低量小表(panini KB 级)× 按天分区无限增长**。按 ADR-03,raw 是落地暂存、ods 是历史真源(跨 dt 多版本),且 ods 每日只读 `raw.dt IN (${dt}, ${pdt})` 两天——更老的 raw 日分区对日常链路是死重。
|
|
|
|
|
|
|
@@ -603,3 +603,21 @@
|
|
|
- 类 1 表出现需按天增量的下游 → 转类 2
|
|
- 类 1 表出现需按天增量的下游 → 转类 2
|
|
|
- 迁 Iceberg / Hudi(原生小文件合并 + MERGE INTO + 分区生命周期)→ 快照 / TTL 两套方案可简化统一
|
|
- 迁 Iceberg / Hudi(原生小文件合并 + MERGE INTO + 分区生命周期)→ 快照 / TTL 两套方案可简化统一
|
|
|
- 表数据量级或变更率变化使 df / di 判据失效 → 重新分类
|
|
- 表数据量级或变更率变化使 df / di 判据失效 → 重新分类
|
|
|
|
|
+
|
|
|
|
|
+- **2026-07-10 实测证伪**(本 ADR 因此被 ADR-15 取代):
|
|
|
|
|
+
|
|
|
|
|
+ 按库分解 `/user/hive/warehouse/` 文件分布:
|
|
|
|
|
+
|
|
|
|
|
+ | 库 | 文件数 | 总量 | 平均文件 | 小文件占比 |
|
|
|
|
|
+ |---|---|---|---|---|
|
|
|
|
|
+ | `ods.db` | 337,092 | 48.6 GB | 0.14 MB | 99.9% |
|
|
|
|
|
+ | `dwd.db` | 312,363 | 6.7 GB | 0.02 MB | 100.0% |
|
|
|
|
|
+ | `dws.db` | 46,151 | 183 MB | 0.004 MB | 100.0% |
|
|
|
|
|
+ | `raw.db` | 2,446 | 156 GB | 63.87 MB | 87.2% |
|
|
|
|
|
+ | `tdm.db` | 1,467 | 64 MB | 0.04 MB | 100.0% |
|
|
|
|
|
+ | `dim.db` | 715 | 2.2 GB | 3.02 MB | 83.9% |
|
|
|
|
|
+
|
|
|
|
|
+ - `raw.db` 是全仓库**最健康**的库(均值 63.87 MB,文件数占全仓 0.35%、数据量占 96%)。本 ADR 整条决策治的是 raw,靶子打偏。
|
|
|
|
|
+ - 真实小文件在 `ods` + `dwd`(合计占全仓文件数 92.8%)。病因不是本 ADR 认定的「raw 分区数无限增长」,而是**动态分区写入的每分区文件数**(见 ADR-15)。
|
|
|
|
|
+ - 本 ADR §候选方案里「分区内 `concatenate` 压实——每分区已 1 文件,无可合」这条否决,对 `raw` 成立、对 `ods`/`dwd` 不成立:后者每分区躺着几十上百个 KB 级文件,正是压实的适应症。
|
|
|
|
|
+ - 类 1 四表(panini ×2 / prd_checklist / tzy_merchant)全部零下游,止于 ods;其全量快照改造与小文件无关,若要做只应出于建模语义,不在本轮。类 2 的 raw TTL 唯一驱动力是小文件,前提消失,一并作废。
|