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. 01MotherDuck データパイプラインの計画
  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 データをランディング
  • raw -> staging -> analytics の境界を明確化
  • 1 行ずつの書き込みより一括取り込みを優先
  • スケジュール自動化の前に、べき等なステージ再構築または追記の契約を定める
  • upstream のみで利用できる書き込み、チェックポイント、レイクハウス機能を推奨する前に、MotherDuck がサポートする DuckDB クライアントのバージョンを確認
  • DuckLake が明示的に必要な場合を除き、MotherDuck のネイティブストレージを使用
  • エージェントがシェルを利用できる場合は、Flight のソースや大容量のファイル形式の出力に MotherDuck CLI を使用。チャットのみの操作では MCP を使用
  • 組織に再利用可能なスケジュール、命名、シークレット、取り込みの規約がある場合は、flights Guide を利用
  • Flight は Python の処理量に合わせてサイズを設定(ジョブの大半が SQL の実行であれば F4)。また、Flight Explainer で各実行のステップ状態と失敗したステップを確認できるよう、計測を設定
  • AI エンリッチメント(prompt_jev() による分類、prompt() による抽出)は、結果をテーブルに書き込む増分変換ステップとして実行し、読み取り時に再計算しない

ワークフロー

  1. 利用可能な MotherDuck サーバー、または提供されたソースとターゲットのコンテキストを確認します。
  2. 現在のワークスペースとターゲットのデータモデルを確認します。
  3. raw、staging、analytics の境界を定義します。
  4. raw データを取り込みます。
  5. 重複を除去し、型を設定して、staging に昇格させます。
  6. 分析に対応した出力をマテリアライズします。
  7. 下流のアセットを公開する前に、件数、鮮度、一意性、ビジネスメトリクスを検証します。
  8. 成果物に永続的なコンテキストが含まれる場合は、参照先の Guide に安定したビジネス定義と運用上の注意点を記録します。実行可能な変換ロジックはソース管理に保持します。

実行内容は依頼に合わせます。回答、レビュー、計画の作業では、求められたパイプライン成果物を返します。構築や変更の作業では、依頼の対象範囲内にあるファイルとウェアハウスオブジェクトを作成し、検証します。破壊的な操作、無関係な外部への書き込み、または対象範囲の大幅な拡大を行う前に確認します。

このスキルでネイティブの 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 -- オープンテーブル形式のストレージが実際に必要な場合にのみ使用する

コメント