mcpField
M
motherduck-model-data

motherduck-model-data

github.com/motherduckdb数据与数据库62421 次安装3 天前更新
代码仓库

关于 motherduck-model-data

用于在 MotherDuck 中设计和实现分析数据模型的技能。它优先沿用现有项目规范,并将多模型工作组织为便于审查的 SQL,同时记录依赖关系和物化方式。

主要功能

  1. 01检查源表结构和列类型
  2. 02按粒度和阶段设计分析表
  3. 03编写独立 SQL 模型文件
  4. 04记录依赖关系和物化方式
  5. 05验证模型与行数

适用场景

  1. 01构建分阶段分析模型
  2. 02向现有项目添加建模表
  3. 03审查模型粒度和依赖关系

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/motherduckdb/agent-skills --skill motherduck-model-data

安装后在 Claude Code 中输入/motherduck-model-data确认已加载。

附带文件references/MODELING_PLAYBOOK.md

详细介绍

MotherDuck 中的模型数据

核心行为

对于多模型工作,应将转换逻辑保存在便于审查的 SQL 文件中,并遵循项目现有的 dbt、SQLMesh 或本地约定。如果没有现成约定,请使用分阶段目录,并通过 model_manifest.yml 记录依赖关系、物化方式和目标数据库。单表请求只需提供所请求的 SQL 或修改。

前提条件

使用已知的源架构和连接。实现之前,先查明缺失的类型、粒度和连接键;规划时可以使用已提供的架构,无需实时连接。

默认原则

  • 面向分析型读取设计,而非事务型写入。
  • 优先使用宽表和预聚合的服务表,而不是高度规范化的 OLTP 风格架构。
  • 使用完全限定名称,并为表和列添加注释。保留稳定的对象名称,以便 Guides 能够可靠地引用目标目录对象。
  • 积极使用 NOT NULL;不要假设主键或外键会强制执行。
  • 如果已有 dbt、SQLMesh 或仓库本地建模约定,就沿用该约定;只有在没有既定项目结构时,才创建轻量级脚手架。
  • 项目并非简单项目时,将生命周期阶段划分为 raw、staging 和 analytics。

工作流

  1. 在设计新模型之前,检查当前源表及实际列类型。
  2. 为每个建模表选择目标生命周期阶段和粒度,并梳理模型之间的依赖关系。
  3. 将 SQL 放入现有项目;对于新的多模型项目,则使用脚手架参考方案。
  4. 将每个模型编写为独立的 SQL 文件。明确指定类型、可空性、注释和完全限定名称。根据数据新鲜度和成本,决定使用表、CTAS 重建还是视图。
  5. 在项目所用的框架或轻量级清单中记录依赖关系和物化方式,不要两者都用。
  6. 实施时,运行涉及的模型并验证粒度和行数;MCP DDL 和 CTAS 需要 query_rw。如果任务是答复、审查或规划,则返回所需的说明或 SQL;除非用户要求,否则不要创建项目或修改数据仓库。

参考资料

只阅读当前任务所需的参考资料章节。

  • 阅读 references/MODELING_PLAYBOOK.md,了解架构模式、数据类型指南、CTAS/视图选择、复杂类型、约束、项目脚手架约定和常见建模错误。

相关技能

仅在缺少相关能力时加载相关技能;复用已有上下文。

  • motherduck-duckdb-sql:了解类型语法和函数详情
  • motherduck-query:执行 DDL、重建和验证查询
  • motherduck-explore:重建模型前了解源架构
  • motherduck-load-data:了解为模型表提供数据的摄取路径
  • motherduck-manage-guides:管理不属于转换代码的持久业务定义和连接规则

评论

支持 Markdown