motherduck-query について
MotherDuck 向けの分析 SQL を作成・検証するスキルです。データ分析担当者がスキーマを確認し、DuckDB SQL でクエリを設計して結果を検証できます。
主な機能
- 01スキーマとデータ粒度の確認
- 02MotherDuck クエリガイドの活用
- 03DuckDB SQL の作成と検証
- 04AI 関数のコスト管理
活用シーン
- 01MotherDuck のデータで業務上の問いに回答
- 02結合とクエリ結果の形を検証
- 03AI 関数による分類や抽出
MCP 対応
MotherDuck MCP サーバーが利用できる場合、クエリガイドを参照します。許可された書き込みには `query_rw` ツールを使います。
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ motherduckdb/ agent-skills --skill motherduck-queryインストール後、Claude Code で/motherduck-queryを入力して読み込まれたか確認します。
同梱ファイルreferences/AI_FUNCTIONS.mdreferences/QUERY_PLAYBOOK.md
詳細
MotherDuck のクエリ
前提条件
- MotherDuck への接続が確立されていること(または MotherDuck MCP サーバーが稼働していること)
- 対象のデータベースとテーブルが特定されていること
基本方針
- MotherDuck MCP が利用可能で、クエリがビジネス上の質問に答える場合は、SQL を書く前に
get_query_guideを呼び出します。関連するトピックのみをたどり、Guide の記載内容をライブスキーマと照合して確認します。 - PG エンドポイントを使用する場合でも、PostgreSQL SQL ではなく DuckDB SQL を記述します。
"database"."schema"."table"の完全修飾名を優先します。複数のデータベースまたは共有がアタッチされている場合は、完全修飾名が必須です。- クエリを最適化またはマテリアライズする前に、結果の粒度を維持し、結合のカーディナリティを確認します。
- 早い段階でフィルター処理と集計を行い、繰り返し読み込む場合は提供用テーブルまたはサマリーを優先します。
- SQL は分かりやすい複数行形式にし、粒度、フィルター、出力形式を明示します。
- DDL、DML、
ATTACH、DETACH、CREATE SNAPSHOT、ALTER DATABASE ... SET SNAPSHOT、UNDROP DATABASEなどの復旧コマンド、およびSHUTDOWNなどのライフサイクルコマンドは書き込みとして扱います。ユーザーの変更依頼で書き込みが許可されている場合は、MotherDuck MCP のquery_rwツールを使用します。操作が破壊的な場合、外部から確認可能な場合、または依頼された範囲外の場合にのみ、確認を求めます。 - 接続経路が対応している場合は、長期間使用するインテグレーションに
custom_user_agentを設定します。このタグは Duckling Overview とクエリ履歴にクエリごとに表示されます。 - テキストや画像の分類、スコアリング、ルーティング、はい/いいえの判定には
prompt_jev()を使用します。型付きの確率とラベルを返し、入力トークン分のみが課金され、行をまとめて処理します。生成テキストや、structまたはjson_schemaを用いた自由形式の抽出にはprompt()を使用します。どちらも行ごとに課金される呼び出しです。小さなLIMITでテストし、結果をテーブルに保存して、NULLの行のみを再実行します。
ワークフロー
- SQL を書く前に、実際のテーブル、列、粒度を確認します。
- MCP が利用可能な場合は、スキーマの確認の代わりにすることなく、関連する Guide のコンテキストを読み込みます。
- まず SQL でクエリを記述し、必要な場合にのみ Python または TypeScript でラップします。
- クエリが簡潔になる場合は DuckDB ネイティブのパターンを使用します。単純な参照に CTE やマテリアライズは不要です。
- 結果の形式と主要な集計値を検証します。パフォーマンスが依頼内容に含まれている場合、または実行に問題が発生した場合は、実行計画を確認します。
- 必要に応じて、コストの高い繰り返しクエリを提供用テーブルまたは軽量なビューにマテリアライズします。
参考資料
現在のタスクに必要な参考資料のセクションのみを読みます。
- DuckDB のクエリパターン、探索用 SQL、パフォーマンスのルール、一般的な分析パターン、よくある間違いについては、
references/QUERY_PLAYBOOK.mdを読みます - クエリで
prompt_jev()、prompt()、またはembedding()を呼び出す場合は、references/AI_FUNCTIONS.mdを読みます
関連スキル
不足している機能を補う場合にのみ関連スキルを読み込み、確立済みのコンテキストを再利用します。
- セッション設定には
motherduck-connect - 構文と関数のリファレンスには
motherduck-duckdb-sql - クエリ作成前のソーススキーマの理解には
motherduck-explore - セマンティックな定義や再利用可能なクエリルールの確認・管理には
motherduck-manage-guides
コメント
Markdown 対応