motherduck-migrate-to-motherduck について
範囲を定めた MotherDuck 移行の計画と実行を支援するスキルです。移行元と移行先の評価、SQL とモデルの変換、検証、段階的な切り替え、検証済み定義の記録を扱います。
主な機能
- 01移行元と移行先の状況確認
- 02接続と取り込み経路の選定
- 03SQL と型の非互換項目の調査
- 04DuckDB SQL による分析モデルの再構築
- 05移行元と移行先の検証
- 06段階的な切り替えとロールバックの計画
活用シーン
- 01MotherDuck へのデータベース移行の評価
- 02分析 SQL とデータ型の変換
- 03切り替え前の移行結果の検証
- 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.pymigration_validation_example.tsreferences/EXECUTION_REFERENCE.mdMIGRATION_PLAYBOOK.mdMIGRATION_VALIDATION.md詳細
MotherDuck への移行
まず確認すること:MotherDuck サーバーは稼働していますか?
稼働中のリモート MotherDuck MCP サーバーまたはローカル MotherDuck サーバーを使って、対象範囲内のデータベース、スキーマ、粒度、キー、関連するメトリクスを調べます。既知のコンテキストを再利用し、調査範囲を依頼された作業に絞ります。既定ではワークスペース全体をスキャンしないでください。実際のデータモデルに沿って結果を作成します。
依頼またはアクティブなコンテキストから対象を特定します。曖昧さが結果に大きく影響する場合に限り、質問してください。サーバーがない場合は、提示されたスキーマと明示した前提を使って計画を立てます。ライブ検証を行ったかのように示してはいけません。
移行時の既定方針
- まずネイティブの MotherDuck ストレージを使用します
- 既存の PostgreSQL 環境を拡張する場合、変更を最小限に抑えられる方法として
pg_duckdbを使用します - 切り替え前に検証します
- パフォーマンスのチューニングより先に、SQL 方言とデータ型を意図的に移植します
- 一括置き換えではなく、段階的に切り替えます
- ソースがすでにクラウドストレージ上にパッケージ化されている場合は、リモート DuckDB データベースファイルのインポート(
CREATE DATABASE ... FROM 's3://...')を使用します - 開発、ステージング、本番環境間で再作成する必要がある場合は、対象環境(データベース、ロール、共有、サービスアカウント)を Terraform で定義します
- レガシーなデータウェアハウスで行アクセス制御ポリシー、列マスキング、セキュアビューが適用されていた場合は、Shares 上のセキュアビューを使用します。各ポリシーを対応付け、影響を受ける利用者としてテストします
- 対象モデルが安定したら、検証済みのビジネス定義、結合ルール、切り替え時の注意事項を Guides に記録します
ワークフロー
- 利用可能な MotherDuck サーバー、または提示されたソースと対象のコンテキストを確認します。
- ソースシステムと対象の提供パターンを分類します。
- 利用可能であれば、対象側の MotherDuck の構成を確認します。
- 接続方法と取り込み方法を選択します。
- 互換性のない SQL、関数、データ型、運用上の前提を洗い出します。
- 分析モデルを DuckDB SQL で再構築します。
- ソースと対象の検証を実施します。
- 関連する MotherDuck Guides を作成または更新し、切り替え後のエージェントが検証済みの対象定義を使用できるようにします。
- ワークロードを一つずつ切り替えます。
実行内容は依頼に合わせてください。回答、レビュー、計画の依頼では、求められた移行成果物を返します。構築や変更の依頼では、依頼された対象範囲内の移行部分のみを実行して検証します。切り替え、破壊的なソース変更、または事前に許可されていない外部への書き込みには、確認を求めます。
このスキルがネイティブ 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-- 検証済みの対象セマンティクスと移行時の注意点を維持します