mcpField
M
motherduck-build-data-pipeline

motherduck-build-data-pipeline

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

关于 motherduck-build-data-pipeline

用于设计和实施 MotherDuck 数据管道的技能,将流程组织为原始数据摄取、暂存和分析输出,并在发布下游资产前进行验证。

主要功能

  1. 01划分原始、暂存和分析层
  2. 02选择数据摄取方式
  3. 03构建转换步骤
  4. 04创建服务表或视图
  5. 05验证新鲜度、计数和指标

适用场景

  1. 01规划 MotherDuck 数据管道
  2. 02组织管道阶段与转换
  3. 03发布前验证输出

MCP 相关

使用已连接的远程或本地 MotherDuck MCP 服务检查源数据和目标数据上下文;对于纯聊天操作,建议使用 MCP。

安装

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

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

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

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

artifacts/
pipeline_stage_example.py
pipeline_stage_example.ts
references/
EXECUTION_REFERENCE.md
PIPELINE_IMPLEMENTATION_GUIDE.md
references/dlt-dbt-motherduck-project/
.env.example
.gitignore
.user.yml
dbt_project.yml
profiles.yml
pyproject.toml
README.md
uv.lock
references/dlt-dbt-motherduck-project/data/
customers.jsonl
orders.jsonl
references/dlt-dbt-motherduck-project/macros/
generate_schema_name.sql
references/dlt-dbt-motherduck-project/models/marts/
fct_customer_revenue.sql
marts.yml
references/dlt-dbt-motherduck-project/models/staging/
sources.yml
staging.yml
stg_customers.sql
stg_orders.sql
references/dlt-dbt-motherduck-project/pipeline/
__init__.py
bootstrap.py
cleanup.py
load_raw.py
run_all.py
settings.py
validate.py

详细介绍

使用 MotherDuck 构建数据管道

从这里开始:MotherDuck 服务是否处于活动状态?

使用处于活动状态的远程 MotherDuck MCP 服务或本地 MotherDuck 服务,检查范围内的数据库、架构、粒度、键和相关指标。复用已知上下文,并将探索范围限定在请求的工作上;默认情况下不要扫描整个工作区。根据实际数据模型确定结果。

根据请求或活动上下文确定目标。只有当歧义会实质性影响结果时才询问。没有服务时,使用提供的架构和明确的假设进行规划;不要暗示已进行实时验证。

管道默认设置

  • 批处理优先于流处理
  • 先将数据原始落地,再进行整理
  • 明确划分 raw -> staging -> analytics 边界
  • 优先使用批量导入路径,而非逐行写入
  • 在安排自动化之前,先确定可幂等重建的阶段或追加契约
  • 在建议上游专属的写入、检查点或 lakehouse 功能之前,验证 MotherDuck 支持的 DuckDB 客户端版本
  • 除非明确要求使用 DuckLake,否则使用 MotherDuck 原生存储
  • Agent 有 shell 时,使用 MotherDuck CLI 处理 Flight 数据源和大型文件型输出;仅通过聊天操作时使用 MCP
  • 如果组织已有可复用的调度、命名、密钥和数据导入规范,则使用 flights Guide
  • Flight 的配置应与其 Python 工作量相匹配(如果任务主要发送 SQL,则使用 F4),并为 Flight Explainer 添加监控,以便每次运行都能显示步骤状态和失败步骤
  • 将 AI 增强(使用 prompt_jev() 进行分类、使用 prompt() 进行提取)作为增量转换步骤,将结果写入表中,绝不在读取时重新计算

工作流

  1. 检查可用的 MotherDuck 服务,或检查提供的源和目标上下文。
  2. 检查当前工作区和目标数据模型。
  3. 明确划分 raw、staging 和 analytics 边界。
  4. 导入原始数据。
  5. 去重、设置类型并提升到 staging。
  6. 物化可供分析的输出。
  7. 在发布下游资产之前,验证行数、新鲜度、唯一性和业务指标。
  8. 如果交付内容包含持久化上下文,则在引用的 Guides 中记录稳定的业务定义和操作注意事项;将可执行的转换逻辑保留在源代码管理中。

根据请求匹配执行方式:回答、审查或规划任务应返回所需的管道产物;构建或变更任务应创建请求范围内的文件和数仓对象,并进行验证。执行破坏性操作、无关的外部写入或实质性扩大范围之前,先询问。

此技能生成原生 DuckDB(md:)连接时,应使用 custom_user_agent=agent-skills/2.6.0(harness-<harness>;llm-<llm>) 添加标记。如果缺少元数据,则回退到 harness-unknown 和 llm-unknown。

输出

对于完整的工作,视请求需要涵盖以下内容:

  • 阶段布局
  • 导入方法
  • 转换顺序
  • 服务表或视图
  • 验证检查

对于明确要求结构化 JSON 的请求,请阅读输出契约。否则,使用适合所需交付内容的格式。

参考资料

只阅读与任务相关的章节;这些内容是指导,而非必须遵循的固定流程。

  • references/dlt-dbt-motherduck-project/ -- 使用 dlt、dbt-duckdb 和验证查询构建的可完整运行的 MotherDuck 参考项目
  • references/PIPELINE_IMPLEMENTATION_GUIDE.md -- 阶段设计、转换顺序,以及从数据导入到服务的示例
  • ../motherduck-load-data/references/INGESTION_PATTERNS.md -- 更底层的数据导入模式

示例

仅在运行捆绑示例或复现其验证时阅读执行参考。

相关技能

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

  • motherduck-connect -- 选择合适的连接方式
  • motherduck-load-data -- 数据摄取机制
  • motherduck-model-data -- 构建分析层
  • motherduck-query -- 编写转换和验证
  • motherduck-share-data -- 发布整理后的输出
  • motherduck-ducklake -- 仅当确实需要开放表格式存储时使用

评论

支持 Markdown