CLAUDE.md 3.3 KB

a# CLAUDE.md

本项目是数据仓库工程 poyee-data-warehouse,当前处于从老项目 tendata-warehouse-release 原地渐进式重构的阶段。

开始任何任务前必读

  1. 先读 kb/README.md —— 这是项目的权威知识库入口,包含项目现状、文档分组、阅读路径
  2. 冷启动重点文档
    • kb/README.md —— 项目现状速读(老新项目共存、launch-pad 定位、当前进度)
    • kb/00-项目架构.md —— 目标态目录结构、模块职责、执行时序
    • kb/90-重构路线.md —— P0-P3 重构清单与硬编码清单
    • kb/92-重构进度.md —— 重构任务 checklist 与当前状态
  3. 写建表 SQL / DataX ini 前必读kb/21-命名规范.md(五段式命名、业务域代码、字段词根字典)
  4. 写加工 SQL 前必读kb/20-数仓分层与建模.md + kb/00-项目架构.md §9 样板 job 结构

项目关键事实

  • 项目根目录 = 本文件所在目录kb/ 是文档,其余大部分目录(tendata/launch-pad/bin/publish.sh 等)都是老项目代码
  • 重构模式:原地改造,不是新建空目录
  • launch-pad/ 不做业务迁移:里面是上个项目(与当前业务无关)的历史代码,仅作样板 SQL / DataX ini 写法的参考,新业务 SQL 全部从零开发,完成后 launch-pad/ 整体删除
  • tendata/dw_base/:核心模块重命名,涉及模块改名 + 所有 from tendata ... import + SQL 中的 ADD FILE tendata/... + tendata.zip 打包命令的全局替换
  • DDL 与计算 SQL 物理分离,DDL 单一来源manual/ddl/所有 DDL 的唯一来源(首次建表 + 后续 ALTER),采用 migration 模式 —— 每次 DDL 操作是一个不可变文件,绝不回头改老文件jobs/ 只写 INSERT OVERWRITE,不写 CREATE TABLE。不存在第二个 ddl 目录(不要建顶层 ddl/)。详见 kb/00-项目架构.md §9.1 / §9.6
  • 存储格式:所有分层一律 STORED AS ORC + orc.compress=NONE(不压缩)
  • raw 层契约:全字段 STRING,同步任务不做类型转换,类型化交给 ods 层(详见 kb/20-数仓分层与建模.md §8)。一次性历史导入用 his 快照类型 + o 周期,表名形如 raw_xxx_his_o,不分区,CTAS 一步建表(详见 kb/00-项目架构.md §9.3 / §9.3.1)
  • 部署:项目仓库名 = 部署目录名 = poyee-data-warehouse,部署路径 /home/bigdata/release/poyee-data-warehouse/,部署用户 bigdata
  • 敏感数据源配置:不入仓库,由运维维护在 /home/bigdata/release/datasource/{db_type}/{env}/{instance}.ini(按环境 dev/test/prod 分子目录;执行时由命令行 -env <name>conf/env.sh 默认值注入,ini 里 dataSource = {db_type}/{instance} 不含环境)

协作约定

  • 不要擅自创建新目录
  • 不要迁移 launch-pad/ 的内容:它的业务与新项目完全无关
  • 所有建表、字段、文件命名必须符合 kb/21-命名规范.md,没有例外
  • 所有重构操作前先查 kb/92-重构进度.md,避免重复做已完成的工作或越过未完成的前置任务
  • 修改 kb/ 文档时同步更新 kb/README.md 的索引和 kb/92-重构进度.md 的状态