关于 motherduck-model-data
用于在 MotherDuck 中设计和实现分析数据模型的技能。它优先沿用现有项目规范,并将多模型工作组织为便于审查的 SQL,同时记录依赖关系和物化方式。
主要功能
- 01检查源表结构和列类型
- 02按粒度和阶段设计分析表
- 03编写独立 SQL 模型文件
- 04记录依赖关系和物化方式
- 05验证模型与行数
适用场景
- 01构建分阶段分析模型
- 02向现有项目添加建模表
- 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。
工作流
- 在设计新模型之前,检查当前源表及实际列类型。
- 为每个建模表选择目标生命周期阶段和粒度,并梳理模型之间的依赖关系。
- 将 SQL 放入现有项目;对于新的多模型项目,则使用脚手架参考方案。
- 将每个模型编写为独立的 SQL 文件。明确指定类型、可空性、注释和完全限定名称。根据数据新鲜度和成本,决定使用表、CTAS 重建还是视图。
- 在项目所用的框架或轻量级清单中记录依赖关系和物化方式,不要两者都用。
- 实施时,运行涉及的模型并验证粒度和行数;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