关于 motherduck-build-data-pipeline
用于设计和实施 MotherDuck 数据管道的技能,将流程组织为原始数据摄取、暂存和分析输出,并在发布下游资产前进行验证。
主要功能
- 01划分原始、暂存和分析层
- 02选择数据摄取方式
- 03构建转换步骤
- 04创建服务表或视图
- 05验证新鲜度、计数和指标
适用场景
- 01规划 MotherDuck 数据管道
- 02组织管道阶段与转换
- 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.pypipeline_stage_example.tsreferences/EXECUTION_REFERENCE.mdPIPELINE_IMPLEMENTATION_GUIDE.mdreferences/dlt-dbt-motherduck-project/.env.example.gitignore.user.ymldbt_project.ymlprofiles.ymlpyproject.tomlREADME.mduv.lockreferences/dlt-dbt-motherduck-project/data/customers.jsonlorders.jsonlreferences/dlt-dbt-motherduck-project/macros/generate_schema_name.sqlreferences/dlt-dbt-motherduck-project/models/marts/fct_customer_revenue.sqlmarts.ymlreferences/dlt-dbt-motherduck-project/models/staging/sources.ymlstaging.ymlstg_customers.sqlstg_orders.sqlreferences/dlt-dbt-motherduck-project/pipeline/__init__.pybootstrap.pycleanup.pyload_raw.pyrun_all.pysettings.pyvalidate.py详细介绍
使用 MotherDuck 构建数据管道
从这里开始:MotherDuck 服务是否处于活动状态?
使用处于活动状态的远程 MotherDuck MCP 服务或本地 MotherDuck 服务,检查范围内的数据库、架构、粒度、键和相关指标。复用已知上下文,并将探索范围限定在请求的工作上;默认情况下不要扫描整个工作区。根据实际数据模型确定结果。
根据请求或活动上下文确定目标。只有当歧义会实质性影响结果时才询问。没有服务时,使用提供的架构和明确的假设进行规划;不要暗示已进行实时验证。
管道默认设置
- 批处理优先于流处理
- 先将数据原始落地,再进行整理
- 明确划分 raw -> staging -> analytics 边界
- 优先使用批量导入路径,而非逐行写入
- 在安排自动化之前,先确定可幂等重建的阶段或追加契约
- 在建议上游专属的写入、检查点或 lakehouse 功能之前,验证 MotherDuck 支持的 DuckDB 客户端版本
- 除非明确要求使用 DuckLake,否则使用 MotherDuck 原生存储
- Agent 有 shell 时,使用 MotherDuck CLI 处理 Flight 数据源和大型文件型输出;仅通过聊天操作时使用 MCP
- 如果组织已有可复用的调度、命名、密钥和数据导入规范,则使用
flightsGuide - Flight 的配置应与其 Python 工作量相匹配(如果任务主要发送 SQL,则使用
F4),并为 Flight Explainer 添加监控,以便每次运行都能显示步骤状态和失败步骤 - 将 AI 增强(使用
prompt_jev()进行分类、使用prompt()进行提取)作为增量转换步骤,将结果写入表中,绝不在读取时重新计算
工作流
- 检查可用的 MotherDuck 服务,或检查提供的源和目标上下文。
- 检查当前工作区和目标数据模型。
- 明确划分 raw、staging 和 analytics 边界。
- 导入原始数据。
- 去重、设置类型并提升到 staging。
- 物化可供分析的输出。
- 在发布下游资产之前,验证行数、新鲜度、唯一性和业务指标。
- 如果交付内容包含持久化上下文,则在引用的 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-- 仅当确实需要开放表格式存储时使用