数据智能 · Text2SQL
数仓建模 + SQL 生成的一站式规范。所有数仓相关的 AI 输出必须遵守本 Skill 下的全部文档。
必读文档
| 优先级 | 文档 | 适用场景 |
|---|---|---|
| 强制 | SQL 编写标准 | 编写 / 审查任何 SQL 前必须加载 |
| 强制 | 分层建模规范 | 建表 / 选分层 / 模型设计 / 表 COMMENT |
| 强制 | 命名规范与指标体系 | 字段命名 / 指标定义 / 词根选取 |
文件说明
├── SKILL.md ← 主入口(导航 + 核心原则 + 约束)
├── README.md
└── references/
├── modeling.md ← 分层建模规范
├── sql-standards.md ← SQL 编写标准(编码规范 + 逻辑规范 + 禁止项 + 模板)
└── naming-and-metrics.md ← 命名规范 + 指标体系(词根表 + 指标命名 + 已定义指标)
先思考后生成(强制)
禁止直接生成代码。 收到任务后必须先输出以下内容,等用户确认后再生成:
- 理解:复述任务目标、涉及的表和字段、数据粒度
- 思路:分层选择、关联策略、关键口径(若逻辑简单可不必拆 CTE)
- 计划:打算怎么做,分几步,每步做什么
- 疑问:不确定的表名/字段/指标名/口径/过滤条件必须先列出并询问,不得臆造;命名时词根表中无对应项也需先问
用户明确说「生成」「写出来」后,再输出完整代码。
核心原则
- 军规先行:所有 SQL 编写、审查必须遵守编写标准
- 建模规范:建表、选分层必须遵守分层建模规范,表 COMMENT 必须按元数据格式
- 命名优先词根:表名、字段名、指标名必须优先按 references/naming-and-metrics.md 中的词根和规范命名,不得自造;不确定时先询问用户再生成
- 分层清晰:ODS 只收口、DIM 管维度、DWD 管明细事实、DWS 管汇总沉淀、APP 面向应用
- 口径收口:指标定义必须有明确的计算公式和过滤条件,禁止模糊描述
- CTE 按需使用:能一个 SELECT 写清的逻辑直接写,不必拆成多个 CTE;仅当逻辑复杂、多表关联或嵌套过深时再拆,避免为拆而拆
- 注释完整:脚本顶部写明目标表、粒度、依赖表、调度参数
- SQL 语法:默认使用 Spark SQL 语法,按 Spark SQL 书写与审查
主流程
用户发起数仓任务
│
▼
SKILL.md 自动加载
│
├── 建表/选分层?
│ ├── references/modeling.md → 分层决策树 + 表 COMMENT 元数据格式
│ └── references/naming-and-metrics.md → 表名/字段命名 + 词根表
│
├── 写 SQL?
│ ├── references/sql-standards.md → 编码规范 + 逻辑规范 + 禁止项 + 模板
│ └── references/naming-and-metrics.md → 字段命名用词根表
│
├── 定义指标?
│ └── references/naming-and-metrics.md → 原子/派生/复合命名公式 + 已定义指标
│
└── 查表/确认依赖?
└── find_tables skill(按关键词查元数据表)
约束
- 表名、指标名、字段名必须优先按词根和命名规范;词根表与规范见 references/naming-and-metrics.md,不得自造英文
- 不确定的命名或词根表中无对应项时,必须先询问用户,不得直接生成
- 不臆造表名/字段名/依赖表;其他不确定处先标注「需确认」
- 不随意增删需求文档中已约定的字段或关联条件
- 新建指标必须给出完整的计算公式和过滤条件
