Lakebase SQL エディターは、Lakebase アプリから直接、Lakebase データベースに対してクエリを実行します。
EXPLAIN
/
ANALYZE、psql-styleメタ コマンド、CSV/JSON/XLSX への結果のエクスポートなどの Postgres ネイティブ機能が提供されます。
注
Lakehouse の SQL エディターから Lakebase データベースのクエリを実行することもできます。このエディターでは、視覚化、ダッシュボード、コラボレーション機能、および Lakebase データを他の Unity カタログ テーブルと組み合わせる機能が提供されます。 「SQL エディターからのクエリ (Lakehouse)」を参照してください。
Lakebase SQL エディターを使用する
SQL エディターを使用するには:
- Lakebase アプリを開き、プロジェクトを選択します。
- サイドバーから SQL エディター を選択し、ブランチとデータベースを選択します。
- エディターにクエリを入力し、[ 実行 ] をクリックして結果を表示します。
SQL エディターを試すには、次のクエリを使用します。 このクエリでは、テーブルを作成し、データを追加し、テーブルからデータを取得します。
CREATE TABLE IF NOT EXISTS playing_with_lakebase(id SERIAL PRIMARY KEY, name TEXT NOT NULL, value REAL);
INSERT INTO playing_with_lakebase(name, value)
SELECT LEFT(md5(i::TEXT), 10), random() FROM generate_series(1, 10) s(i);
SELECT * FROM playing_with_lakebase;
複数のクエリ ステートメントを一度に実行すると、ステートメントごとに個別の結果セットが返されます。 結果セットは別々のタブに表示され、実行順に番号が付けられます。
エディターをクリアするには、テキスト ボックスの内容を選択して削除します。
説明と分析
Lakebase SQL エディターには、 Explain 機能と Analyze 機能があります。
- Explain 機能は、Postgres EXPLAIN コマンドを使用して指定されたクエリを実行し、クエリの実行プランを返します。 Explain 機能は、見積もりを含むプランのみを返します。 クエリは実行されません。
-
分析機能は、EXPLAIN ANALYZE を使用して指定されたクエリを実行します。
ANALYZEパラメーターはクエリを実行し、プラン ノードの実際の行数と実行時間を、EXPLAINの見積もりと共に返します。
Explain および Analyze 機能によって提供される情報を理解するには、Postgres EXPLAIN コマンドとそのANALYZE パラメーターに関する知識が必要です。 PostgreSQL ドキュメントの EXPLAIN ドキュメントと EXPLAIN の使用を参照してください。
CSV、JSON、および XLSX にデータをエクスポートする
Lakebase SQL エディターでは、 JSON、 CSV、および XLSXへのデータのエクスポートがサポートされています。
SQL エディター ページの右下隅にあるダウンロード ボタンにアクセスします。 ダウンロード ボタンは、ダウンロードする結果セットがある場合にのみ表示されます。
SQL エディター ウィンドウの [結果] セクションを展開する
SQL エディター ページの右下隅にある展開ウィンドウ ボタンを選択して、 SQL エディター ウィンドウの結果セクションを展開します。
メタコマンド
Lakebase SQL エディターでは、Postgres メタ コマンドの使用がサポートされています。これは、データベースを操作するためのショートカットのように機能します。
psqlコマンド ライン インターフェイスからのメタ コマンドの使用に既に慣れている場合は、Lakebase SQL エディターで同じコマンドの多くを使用できます。
メタ コマンドを使用すると、完全な SQL クエリを記述しなくても、データベース スキーマやその他の重要な情報にすばやくアクセスできるため、ワークフローを高速化できます。
Lakebase SQL エディター内で一般的に使用されるメタ コマンドを次に示します。
-
\dt— 現在のデータベース内のすべてのテーブルを一覧表示する -
\d [table_name]— テーブルの構造を記述する -
\l— すべてのデータベースを一覧表示する -
\?— 使用可能なメタコマンドのチートシート -
\h [NAME]— Postgres コマンドのヘルプを取得する (例:\h SELECT)
注
SQL エディターでは、すべての psql メタ コマンドがサポートされているわけではありません。 サポートされているコマンドの一覧を取得するには、 \?を使用します。
メタコマンドとその使用方法の完全な一覧については、 psql のメタコマンドを参照してください。
メタコマンドの使用方法
SQL エディターでメタ コマンドを使用するには、エディターで (SQL クエリと同様に) メタ コマンドを入力し、[ 実行] をクリックします。 結果が出力ペインに表示されます。
パブリック アクセスが無効になっている場合の SQL エディターの制限事項
ワークスペースでパブリック アクセスを無効にした Private Link が構成されている場合、SQL エディターはデータベースへの直接接続ではなく、Lakebase バックエンドを介してクエリを中継します。 ほとんどのクエリは直接接続と同じように機能しますが、プロキシはステートレスであり、各ステートメントを独立した HTTP 要求として実行します。これにより、次の制限が発生します。
機能:
- 単一ステートメント クエリ (SELECT、 INSERT、 UPDATE、DELETE、UPSERT)
- DDL ステートメント (CREATE、ALTER、 DROP TABLE、CREATE INDEX など)
-
EXPLAIN および DESCRIBE コマンド (
\d、\dt、\di) - Postgres の完全なデータ型のサポート (配列、JSON/JSONB、数値、タイムスタンプ、ブール値)
- クエリ結果とエラー メッセージ
動作しない機能:
| 特徴 | 制限 |
|---|---|
| Transactions |
BEGIN、 COMMIT、 ROLLBACK、および SAVEPOINT は想定どおりに機能しません。 各ステートメントは、アトミック性の保証なしで個別に自動コミットします。 |
| セッションの状態 |
SET
SET LOCAL現在の要求にのみ適用されます。 一時テーブル、準備済みステートメント、カーソル、およびアドバイザリロックは、以降のステートメントでは使用できません。 |
| LISTEN/NOTIFY | プロキシがサポートしていない非同期通知の永続的な接続が必要です。 |
| STDIN からのコピー | プロキシを介してクライアント側のデータをストリーミングすることはできません。 |
\watch |
定期的なクエリの再実行は、ステートレス プロキシでは使用できません。 |
| クエリの取り消し | キャンセルは、ベスト エフォートのみです。 取り消し要求の後も、バックエンドでクエリが実行され続ける場合があります。 |
| 複数ステートメント スクリプト | ステートメントは、共有トランザクションなしで実行されます。 部分的なスクリプトエラーが発生すると、部分的なコミットが発生します。 |
| 結果のサイズ制限 | クエリ結果は 32 MB に制限されます。 |
トランザクションまたはセッション状態を必要とするワークロードの場合は、Postgres クライアントを使用してデータベースに直接接続します。 psql を使用した接続を参照してください。
トラブルシューティング
SQL エディターに "フェッチに失敗しました" または "不明なエラー" メッセージが表示され、ワークスペースでPrivate Linkが使用されている場合は、受信Private Link (ワークスペース レベル、ポート 443) が正しく構成されていることを確認します。 Private Link のトラブルシューティングを参照してください。