motherduck-duckdb-sql について
MotherDuck で使う DuckDB SQL のリファレンススキルです。開発者がクエリを作成・修正し、MotherDuck 固有の構文や接続上の制約を確認できます。
主な機能
- 01DuckDB SQL 構文の説明
- 02他エンジンのクエリ変換
- 03MotherDuck の機能対応確認
- 04SQL と接続制約の確認
活用シーン
- 01他のデータベースから SQL を移行
- 02MotherDuck の構文問題を解決
- 03新しい DuckDB 機能の対応状況を確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ motherduckdb/ agent-skills --skill motherduck-duckdb-sqlインストール後、Claude Code で/motherduck-duckdb-sqlを入力して読み込まれたか確認します。
同梱ファイルreferences/SYNTAX_REFERENCE.md
詳細
MotherDuck の DuckDB SQL リファレンス
信頼できる情報源
- 言語機能と関数の意味については、最新の DuckDB SQL ドキュメントを優先してください。
- 共有、シークレット、スナップショット、Dive 操作など、MotherDuck 固有のコマンドについては、最新の MotherDuck SQL ドキュメントを参照してください。
- クライアントとの互換性のため、MotherDuck の対応状況は上流の DuckDB リリースより遅れる場合があります。新しくリリースされた DuckDB の構文や型が利用可能だと案内する前に、MotherDuck のバージョンライフサイクルに関するドキュメントを確認してください。
- 接続経路が関係する場合は、サーバーモードへの対応を案内する前に、最新の Postgres エンドポイントのドキュメントに照らして動作を確認してください。
基本方針
- クライアントが Postgres エンドポイント経由で接続している場合でも、PostgreSQL SQL ではなく DuckDB SQL を記述してください。
"database"."schema"."table"のように完全修飾名を使ってください。複数のデータベースや共有がアタッチされている場合は、完全修飾名が必須です。- クエリを簡潔にできる場合は、
GROUP BY ALL、QUALIFY、UNION BY NAME、arg_max、EXCLUDE、REPLACEなどの DuckDB ネイティブ構文を優先してください。 - 別のエンジンの SQL を移植する場合は、互換性があると決めつけず、関数、日付演算、識別子の引用、型キャストを明示的に変換してください。
VARIANT、ネイティブのGEOMETRY、MERGE INTO、date_truncの戻り値の型変更など、最近リリースされた上流 DuckDB の機能を利用する前に、MotherDuck が現在対応しているか確認してください。- MotherDuck で動作すると案内する前に、ステートメントがローカルファイル、拡張機能のインストール/ロード、一時テーブルの動作、その他のクライアント専用機能に依存しているかを確認してください。
- スナップショット、復元、
UNDROP DATABASEの各ステートメントは、プランごとに保持動作が異なる運用 SQL として扱い、通常の分析用構文とは区別してください。 INCLUDE_PATTERNは Share 全体でテーブル/ビューをフィルタリングする機能として扱ってください。行フィルター、非表示列、マスキングには、Share のセキュアビュー(WITH SECURE VIEW ... REPLACES <table> AS (SELECT ...)、ALTER SHARE ... ADD|DROP SECURE VIEW)を使用します。これは、DuckDB のCREATE SECURE VIEWにおけるオプティマイザーのバリアとは無関係です。- 物理インポート(クラウドストレージ上の DuckDB ファイル(
's3://bucket/app.db'など)を含む、CREATE DATABASE ... FROM '<file-url>')と、ゼロコピーのクローン元を区別してください。フィルターが適用された Share、およびセキュアビューを含む Share はクローン元として認められません。代わりにCOPY FROM DATABASEを使用してください。 - 管理されたアクセスにはロール/権限付与 SQL を使用し、
SHOW ...ステートメントで監査してください。推奨される RBAC の方法としてACCESS ORGANIZATIONを使い続けないでください。 - MotherDuck SQL は DuckDB SQL の代替ではなく、その上に追加された機能として扱ってください。
- MotherDuck には SQL AI 関数として、生成テキストや構造化テキスト用の
prompt()、ベクトル用のembedding()、型付き分類、スコアリング、はい/いいえの確率、画像のバウンディングボックス用のprompt_jev()があります。使用方法とコストのルールについては、motherduck-queryを参照してください。
ワークフロー
- 接続経路と、質問が構文、機能の対応状況、特定のエラーのどれに関するものかを確認します。
- まず DuckDB SQL でステートメントを記述するか、修正します。
- MotherDuck 固有のコマンドやサーバーモードの制限について、最新のドキュメントで確認します。
- 正確な構文や関数の詳細が必要な場合は、
references/SYNTAX_REFERENCE.mdを開きます。
リファレンス
現在のタスクに必要なリファレンスのセクションのみを読みます。
- DuckDB のデータ型、使いやすい SQL 機能、関数、複合型、MotherDuck 固有のよくある注意点については、
references/SYNTAX_REFERENCE.mdを読みます。
関連スキル
不足している機能がある場合にのみ関連スキルを読み込み、確立済みのコンテキストを再利用します。
- ライブの MotherDuck データに対する分析 SQL の作成と検証には、
motherduck-query - 構文の対応状況が PG エンドポイントとネイティブ DuckDB の動作によって異なる場合は、
motherduck-connect - 問題が構文の知識不足ではなく、スキーマのコンテキスト不足による場合は、
motherduck-explore
コメント
Markdown 対応