dbt 项目提交前检查
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/gate-dbt-projects-with-pre-commit-checks-from-dbt-checkpoint。
技能介绍
要解决的问题
dbt 项目的模型规模膨胀后,命名不规范、引用缺失、依赖顺序错误、元数据缺失等问题会逐步积累。这些问题往往在 merge request 评审阶段才被发现,返工成本高;更糟的是,某些模型校验缺失会直接流入生产环境,影响下游数据消费。
技能如何工作
该技能把 dbt-checkpoint 挂载到本地的 pre-commit 钩子上,在 git commit 触发时自动执行一系列检查:
- 语法检查:调用
dbt parse校验项目 DAG 是否能正常编译 - SQL 格式化:确保模型 SQL 风格统一,避免格式化噪音混入提交
- 代码质量检查:校验模型命名规范、缺失的 description、存在未解析引用的模型等问题
- 模型卫生验证:检查文档完整性、标签配置、owner 元数据等
核心步骤是把对应钩子写入 .pre-commit-config.yaml,之后每次提交都会自动触发。检查结果不通过时,提交会被拦截,问题在本地修复即可。
适用边界与注意点
- 该技能依赖本地已安装 Python、
pre-commit、dbt-checkpoint以及可正常解析的 dbt 项目 - 钩子只在本地提交时生效,无法覆盖团队成员漏跑
pre-commit的情况,因此 CI 侧仍需独立配置校验 - 检查项以静态规则为主,无法替代
dbt test的数据质量校验 - 项目结构特殊的团队可能需要调整钩子参数或跳过部分检查
使用场景
- 提交 dbt 模型前在本地校验命名与引用,避免把编译不过的模型推到远端
- 团队 SQL 风格不一致时,希望在 commit 阶段自动统一格式化
- 代码评审前想在本地快速跑一遍语法与模型验证,拦截 description 缺失的模型
适合人员
- 数据工程师:需要在合并前拦截 dbt 模型命名与依赖问题的数据工程师
- dbt 项目维护者:希望统一 SQL 风格并补全模型元数据的项目维护者
- 平台工程师:想在本地快速跑一遍模型卫生检查、减轻 CI 压力的平台工程师