mcpField
M
motherduck-migrate-to-motherduck

motherduck-migrate-to-motherduck

github.com/motherduckdbデータ・データベース62415 回インストール3 日前に更新
リポジトリ

motherduck-migrate-to-motherduck について

範囲を定めた MotherDuck 移行の計画と実行を支援するスキルです。移行元と移行先の評価、SQL とモデルの変換、検証、段階的な切り替え、検証済み定義の記録を扱います。

主な機能

  1. 01移行元と移行先の状況確認
  2. 02接続と取り込み経路の選定
  3. 03SQL と型の非互換項目の調査
  4. 04DuckDB SQL による分析モデルの再構築
  5. 05移行元と移行先の検証
  6. 06段階的な切り替えとロールバックの計画

活用シーン

  1. 01MotherDuck へのデータベース移行の評価
  2. 02分析 SQL とデータ型の変換
  3. 03切り替え前の移行結果の検証
  4. 04切り替え後に使う定義の記録

MCP 対応

利用可能な場合、アクティブなリモートまたはローカルの MotherDuck MCP サーバーで対象データベースを調査します。サーバーがない場合は、提供されたスキーマと明示した前提に基づいて計画し、ライブ検証を行ったとは示しません。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/motherduckdb/agent-skills --skill motherduck-migrate-to-motherduck

インストール後、Claude Code で/motherduck-migrate-to-motherduckを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

artifacts/
migration_validation_example.py
migration_validation_example.ts
references/
EXECUTION_REFERENCE.md
MIGRATION_PLAYBOOK.md
MIGRATION_VALIDATION.md

詳細

MotherDuck への移行

まず確認すること:MotherDuck サーバーは稼働していますか?

稼働中のリモート MotherDuck MCP サーバーまたはローカル MotherDuck サーバーを使って、対象範囲内のデータベース、スキーマ、粒度、キー、関連するメトリクスを調べます。既知のコンテキストを再利用し、調査範囲を依頼された作業に絞ります。既定ではワークスペース全体をスキャンしないでください。実際のデータモデルに沿って結果を作成します。

依頼またはアクティブなコンテキストから対象を特定します。曖昧さが結果に大きく影響する場合に限り、質問してください。サーバーがない場合は、提示されたスキーマと明示した前提を使って計画を立てます。ライブ検証を行ったかのように示してはいけません。

移行時の既定方針

  • まずネイティブの MotherDuck ストレージを使用します
  • 既存の PostgreSQL 環境を拡張する場合、変更を最小限に抑えられる方法として pg_duckdb を使用します
  • 切り替え前に検証します
  • パフォーマンスのチューニングより先に、SQL 方言とデータ型を意図的に移植します
  • 一括置き換えではなく、段階的に切り替えます
  • ソースがすでにクラウドストレージ上にパッケージ化されている場合は、リモート DuckDB データベースファイルのインポート(CREATE DATABASE ... FROM 's3://...')を使用します
  • 開発、ステージング、本番環境間で再作成する必要がある場合は、対象環境(データベース、ロール、共有、サービスアカウント)を Terraform で定義します
  • レガシーなデータウェアハウスで行アクセス制御ポリシー、列マスキング、セキュアビューが適用されていた場合は、Shares 上のセキュアビューを使用します。各ポリシーを対応付け、影響を受ける利用者としてテストします
  • 対象モデルが安定したら、検証済みのビジネス定義、結合ルール、切り替え時の注意事項を Guides に記録します

ワークフロー

  1. 利用可能な MotherDuck サーバー、または提示されたソースと対象のコンテキストを確認します。
  2. ソースシステムと対象の提供パターンを分類します。
  3. 利用可能であれば、対象側の MotherDuck の構成を確認します。
  4. 接続方法と取り込み方法を選択します。
  5. 互換性のない SQL、関数、データ型、運用上の前提を洗い出します。
  6. 分析モデルを DuckDB SQL で再構築します。
  7. ソースと対象の検証を実施します。
  8. 関連する MotherDuck Guides を作成または更新し、切り替え後のエージェントが検証済みの対象定義を使用できるようにします。
  9. ワークロードを一つずつ切り替えます。

実行内容は依頼に合わせてください。回答、レビュー、計画の依頼では、求められた移行成果物を返します。構築や変更の依頼では、依頼された対象範囲内の移行部分のみを実行して検証します。切り替え、破壊的なソース変更、または事前に許可されていない外部への書き込みには、確認を求めます。

このスキルがネイティブ DuckDB(md:)接続を作成する場合は、custom_user_agent=agent-skills/2.6.0(harness-<harness>;llm-<llm>) を指定します。メタデータがない場合は、harness-unknown と llm-unknown を使用します。

出力

包括的な移行支援では、依頼に応じて以下を扱います。

  • 対象パターン
  • 移行手順
  • 検証計画
  • ロールバック手順
  • 最初に切り替える範囲

明示的に構造化 JSON を求められた場合は、出力仕様を参照してください。それ以外の場合は、求められた成果物に適した形式を使用します。

参考資料

タスクに関連するセクションのみを読みます。これらはガイダンスであり、必須の手順ではありません。

  • references/MIGRATION_PLAYBOOK.md -- 対象パターンの選択、移行判断マトリックス、DuckLake の方針、ソース別の確認事項(Snowflake、Redshift、Postgres、dbt、レイクハウス)
  • references/MIGRATION_VALIDATION.md -- コピーして調整できる検証用 SQL(行数、pct_variance を使ったメトリクス、新規・削除・変更されたレコード)と Python オーケストレーター

例

同梱の例を実行する場合、または例の検証を再現する場合に限り、実行リファレンスを読みます。

関連スキル

不足している機能がある場合にのみ関連スキルを読み込み、確立済みのコンテキストを再利用します。

  • motherduck-connect -- 対象システムへの接続方法を選択します
  • motherduck-explore -- 対象側の MotherDuck ワークスペースを調査します
  • motherduck-load-data -- 大量データの移動と生データの取り込みパターン
  • motherduck-model-data -- 対象の分析モデルを構築します
  • motherduck-query -- 重要な SQL を移植して検証します
  • motherduck-ducklake -- オープンテーブル形式の要件が明示されている場合にのみ使用します
  • motherduck-manage-guides -- 検証済みの対象セマンティクスと移行時の注意点を維持します

コメント