tianyu.chu 6936460ac3 chore: 新增 io/ops/pm/dq/sync/tests 占位骨架;删 bin/excel_to_hive.py;publish.sh 挪入 bin hai 2 semanas
..
db 6936460ac3 chore: 新增 io/ops/pm/dq/sync/tests 占位骨架;删 bin/excel_to_hive.py;publish.sh 挪入 bin hai 2 semanas
file 6936460ac3 chore: 新增 io/ops/pm/dq/sync/tests 占位骨架;删 bin/excel_to_hive.py;publish.sh 挪入 bin hai 2 semanas
hdfs 6936460ac3 chore: 新增 io/ops/pm/dq/sync/tests 占位骨架;删 bin/excel_to_hive.py;publish.sh 挪入 bin hai 2 semanas
README.md 6936460ac3 chore: 新增 io/ops/pm/dq/sync/tests 占位骨架;删 bin/excel_to_hive.py;publish.sh 挪入 bin hai 2 semanas
__init__.py 6936460ac3 chore: 新增 io/ops/pm/dq/sync/tests 占位骨架;删 bin/excel_to_hive.py;publish.sh 挪入 bin hai 2 semanas

README.md

dw_base/io — I/O 层

职责

外部系统通信的边界。所有跨进程/跨主机的读写在这里封装,避免业务代码直接依赖 driver / 网络协议。

划分准则(与 common/ / utils/ / ops/ 的区别):

语义
连接工厂、读写封装(有 I/O) io/
纯函数、无状态工具(字符串/日期/哈希) utils/
跨模块常量、配置、context、DI container common/
数据湖运维操作(compaction / 分区清理 / 小文件合并) ops/

子包

  • db/ —— 数据库连接工厂与读写封装(MySQL / PostgreSQL / Hive / MongoDB 等)
  • file/ —— 文件格式读写(csv / txt / json / excel)
  • hdfs/ —— HDFS 文件读写(纯 I/O;compaction/合并属于 ops/

对外接口概要(规划中)

  • db.MySQLHandler(conf) -> Connection-like
  • db.PGHandler(conf) / db.HiveHandler(conf) / db.MongoHandler(conf)
  • file.read_csv(path, **opts) / file.write_csv(df, path, **opts)
  • file.read_excel(path, sheet=None) / file.write_excel(df, path)
  • file.read_json(path) / file.write_json(obj, path)
  • hdfs.read(path) / hdfs.write(path, content) / hdfs.ls(path)

依赖

  • configparser(读 conf/ 配置)
  • 按子包按需:pymysql / psycopg2 / openpyxl / HDFS 客户端等
  • datasource/*.ini 读取账密(高敏不入库)

状态

骨架(未启动)。本批仅建目录。后续 B2 阶段搬入:

  • dw_base/database/mysql_utils.pyio/db/mysql.py
  • dw_base/utils/file_utils.pyio/file/
  • dw_base/utils/hdfs_dir_file_coalesce.py / hdfs_merge_small_file.pyops/(不是 io/hdfs/)

kb/90-重构路线.md 聚簇 B。