- Instant SQLは、SQLクエリの作成中に結果をリアルタイムでプレビューし、クエリ作成とデバッグを高速化するツール
- 複雑なCTEやカラム式を簡単に分解・分析でき、AIベースの編集提案も即座にプレビューできるため、クエリの作成と修正がより効率的
- MotherDuckとDuckDB Local UIで利用でき、DuckDBを基盤としてさまざまな外部データソースまでリアルタイムに探索可能
- DuckDBのローカルファースト設計と性能最適化、キャッシュ戦略、ASTベースのカーソルマッピングなどの高度な技術の組み合わせによって実現
- MotherDuckは、データ分析向けのさまざまなツールを提供するマネージドDuckDBクラウドサービス
Instant SQLの紹介
- Instant SQLは、SQLクエリの結果を入力と同時にリアルタイムで更新する新機能
- 別途実行ボタン(run button)を押さなくても、**待ち時間0秒(zero-latency)**で結果をプレビューできる
- 現在はMotherDuckプラットフォームとDuckDB Local UIで利用可能
なぜInstant SQLが必要なのか
- SQL作成で重要なのは構文ではなく、データを理解し、問いを組み立てる過程
- 従来はテキストエディタにクエリを書き、実行ボタンを押し、結果を待つという遅い反復作業が不可欠だった
- Instant SQLはこの流れを、即時かつ自然に探索できる体験へと変える
主な機能
-
書きながらリアルタイムで結果をプレビュー
- SQLクエリを入力するたびに、結果セットのプレビューがリアルタイムで更新される
- シンプルな変換から複雑な集計まで、データ探索を途切れなく進められる
-
CTE(共通テーブル式)のリアルタイムデバッグ
- CTEをクリックして即座に可視化できる
- 変更内容が即時にすべての依存ノードへ反映されるため、CTEのデバッグが非常に簡単になる
-
複雑なカラム式の分解
- カラム式のエラーを素早く見つけられるよう、結果テーブル上で式を分解できる
- 式のロジックやデータの問題を即座に特定できる
-
多様なデータソースをサポート
- DuckDBが対応するすべてのソース(DuckDBテーブル、S3上のparquetファイル、Postgres、SQLite、MySQL、Iceberg、Deltaなど)をプレビューできる
- 外部データのモデリングと探索を非常に高速に行えるようになる
-
最終実行前の高速なクエリ検証
- プレビューでクエリを磨き込み、満足できたら最終実行できる
- SQL作成-実行-待機のサイクルを大幅に短縮してくれる
-
AI機能との組み合わせ
- 選択したテキストに対して自然言語の命令を入力すると、AIが修正提案を行う
- 提案結果を即座にプレビューできるため、ミスのリスクなく修正を受け入れられる
どうやって実現したのか
-
超低遅延クエリ実行技術
- DuckDBのローカルファースト設計により、PC上で直接すばやく結果を得られる
- MotherDuckのデュアル実行アーキテクチャが、大規模データでも低遅延を支える
-
クエリ書き換え技術
- DuckDB JSON拡張機能を活用して、SELECTクエリの**AST(構文木)**を抽出・活用する
- クエリの一部をローカルキャッシュのサンプルデータに置き換えることで、高速なプレビューを可能にした
-
スマートキャッシュシステム
- 事前に予測したデータキャッシュを使い、キー入力と同時に結果をレンダリングする
- さまざまなキャッシュ戦略により、ユーザーが指を離す前に結果が表示される
-
カーソル-構文木マッピング
- ユーザーのカーソル位置をAST内の特定のSELECTノードへ正確にマッピングする機能を開発した
- 複雑なクエリ内でも、ユーザーが作業中のSELECT文だけを選んでプレビューを提供できる
Instant SQLの利用方法
- MotherDuckまたはDuckDB Local UIで「公開プレビュー」として利用可能
- 新しいプロンプトベースの修正機能もMotherDuckユーザーに提供される
2件のコメント
これは本当にすごく不思議ですね
Hacker Newsのコメント
select * from table limit 10;をさっと実行してから列や結合を追加している