dbt-osmosis 模式同步器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md 安装 @user_3c6cb52e/sync-dbt-schema-yaml-and-inherited-column-metadata-before-docs-drift-accumulates-with-dbt-osmosis
技能介绍
问题:文档漂移如何积累
在 dbt 项目中,当你修改模型、重命名字段或调整继承关系时,schema.yml 和列文档往往不会自动更新。时间一长,文档与实际模型结构逐渐偏离,出现所谓的文档漂移。继承的列元数据尤其容易过时,因为手动维护很难跟上频繁的模型迭代。这些陈旧的元数据会让新团队成员难以理解数据血缘,也会误导下游消费方。
技能如何工作
这个技能基于 dbt-osmosis,它是一个面向 dbt 开发工作流的 Python CLI 和包。核心目标是让 schema.yml 与列文档保持与项目当前状态一致,从而防止漂移累积。具体能力包括:
- 分析模型变更,同步
schema.yml中的字段描述 - 同步继承的列元数据,确保文档反映最新的模型结构
- 提供 ad-hoc SQL 编译与运行辅助,支持开发中的快速验证
适用边界与注意点
使用前需要满足一些条件:Python 版本需在 3.10 至 3.13 之间,环境中要有 dbt Core 及兼容的适配器,并能访问目标 dbt 项目仓库。对于文档站点相关命令,还需在 docs/ 目录下使用 Node 工具链。技能侧重于元数据同步,不替代数据库迁移或测试流程。
使用场景
- dbt 项目迭代后 `schema.yml` 与模型实际字段描述不一致,需要批量同步更新
- 模型字段通过继承复用,父级列文档变更后需刷新子模型的元数据
- 团队接手历史 dbt 项目,发现文档严重滞后,想重建文档与模型的一致性
- 发布 dbt 文档站点前,需要确认 YAML 中的字段描述与当前模型结构匹配
适合人员
- dbt 数据工程师,负责维护模型文档与代码同步,避免文档随迭代漂移
- 数据分析团队负责人,需要确保下游消费方看到的列描述准确无误
- 刚接手 dbt 项目的新成员,想快速理解模型结构与列继承关系
- 技术文档维护者,需要定期校验 YAML 元数据与模型代码是否一致