# dw_base/ops — 数据湖运维操作 ## 职责 对**已存在数据**做运维类操作。与 `io/`(读写 I/O)的区别:`io/` 是数据进出,`ops/` 是对湖内数据的后置处理。 典型场景: - 小文件合并 / compaction - 按 N 天保留清分区(`DROP PARTITION`) - 表级 vacuum / stats 刷新 - 跨分区数据校对 / 修复(非一次性 backfill,那是 `manual/`) ## 对外接口概要(规划中) - `coalesce_hdfs_dir(path, target_size_mb)` —— HDFS 目录小文件合并 - `merge_small_files(table, partition)` —— Hive 表分区 `concatenate` 压实 - `drop_partitions(table, keep_days, exceptions=None)` —— 按天保留清分区(元表驱动或参数化,见 `kb/92` 阶段 4 规划) - `refresh_table_stats(table)` —— 刷新 Hive 表/分区统计 ## 依赖 - PySpark(HiveContext)用于 compaction / stats - `io/hdfs/` 用于 HDFS 目录操作 - `conf/alerter.ini` 用于失败告警 - 元表(按天保留工具用):schema 在 `kb/11-数据资产.md` 或 `kb/20-数仓分层与建模.md` 定义(待补) ## 状态 **骨架(未启动)**。后续搬入 / 重写的内容: - `dw_base/utils/hdfs_dir_file_coalesce.py` → `ops/coalesce.py`(B2 搬家 + 剥离老业务耦合) - `dw_base/utils/hdfs_merge_small_file.py` → `ops/merge.py`(B2 同上) - **重写**:原 `dw_base/scheduler/drop_partitions.py` + `drop_daily_full_snapshot_tbls.py`(2026-04-20 已删),阶段 4 新版——元表驱动 + 参数化天数 + 例外白名单 - **重写**:原 `dw_base/utils/hive_file_merge.py`(2026-04-20 已删),阶段 4 新版——通用化 HiveServer 连接 / 剥离 `cts_*_ex/_im` 表名假设 见 `kb/90-重构路线.md` 聚簇 B + 阶段 4 重写任务。