メインコンテンツまでスキップ

Lakebase SQL エディターからのクエリ

Lakebase SQL エディターは、Lakebase アプリから直接 Lakebase データベースに対してクエリを実行します。EXPLAIN / ANALYZEpsql-styleメタコマンド、CSV/JSON/XLSX への結果のエクスポートなどの Postgres ネイティブ機能を提供します。

注記

また、Lakehouse のSQLエディターから Lakebase データベースをクエリすることもできます。これにより、視覚化、ダッシュボード、コラボレーション機能、Lakebase データを他のUnity Catalogテーブルと組み合わせる機能が提供されます。 SQLエディターからのクエリ (レイクハウス)」を参照してください。

Lakebase SQL エディターを使用する

SQL エディタを使用するには:

  1. Lakebase アプリを開き、プロジェクトを選択します。
  2. サイドバーから SQL エディターを 選択し、ブランチとデータベースを選択します。
  3. エディターにクエリを入力し、 「実行」 をクリックして結果を表示します。

Lakebase SQLエディタ

次のクエリを使用して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 機能があります。

LKB SQLエディタの説明および分析

  • Explain 機能は、指定されたクエリを Postgres EXPLAIN コマンドで実行し、クエリの実行プランを返します。 Explain 機能は、推定値を含むプランのみを返します。クエリは実行されません。
  • 分析 機能は、EXPLAIN ANALYZEを使用して指定されたクエリを実行します。ANALYZEパラメーターによりクエリが実行され、プラン ノードの実際の行数と実行時間がEXPLAIN推定値とともに返されます。

Explain および Analyze 機能によって提供される情報を理解するには、Postgres EXPLAINコマンドとそのANALYZEパラメーターに精通している必要があります。EXPLAINドキュメントおよびPostgreSQLドキュメントのEXPLAINの使用を参照してください。

データをCSV、JSON、XLSXにエクスポート

Lakebase SQLエディタは、JSONCSVXLSXへのデータのエクスポートをサポートしています。 **SQLエディタ**ページの右下隅からダウンロードボタンにアクセスしてください。 ダウンロードする結果セットがある場合にのみ、ダウンロードボタンが表示されます。

LKB SQLエディタのエクスポート

SQLエディタウィンドウの結果セクションを展開します。

SQL Editor ページの右下にあるウィンドウ展開ボタンを選択して、SQL Editorウィンドウの結果セクションを展開します。

LKB SQLエディタの展開

メタコマンド

Lakebase SQL エディターは、データベースを操作するためのショートカットのように機能する Postgres メタコマンドの使用をサポートしています。psqlコマンドライン インターフェースからのメタコマンドの使用にすでに慣れている場合は、Lakebase SQLエディターで同じコマンドの多くを使用できます。

メタコマンドを使用すると、完全な SQL クエリを記述することなく、データベース スキーマやその他の重要な情報にすばやくアクセスできるようになり、ワークフローを高速化できます。

Lakebase SQL エディター内でよく使用されるメタコマンドを次に示します。

  • \dt — 現在のデータベース内のすべてのテーブルを一覧表示します
  • \d [table_name] — テーブルの構造を説明する
  • \l — すべてのデータベースを一覧表示する
  • \? — 利用可能なメタコマンドのチートシート
  • \h [NAME] — 任意の Postgres コマンドのヘルプを取得します (例: \h SELECT )
注記

すべてのpsqlメタコマンドが SQL エディターでサポートされているわけではありません。サポートされているコマンドのリストを取得するには、 \?を使用します。

メタコマンドとその使用法の完全なリストについては、 「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、数値、タイムスタンプ、ブール値)
  • クエリー結果とエラーメッセージ

動作しないこと:

機能

制限事項

トランザクション

BEGIN``COMMITROLLBACK、およびSAVEPOINTは期待どおりに動作しません。各ステートメントは原子性の保証なしに個別に自動コミットされます。

セッションの状態

SET SET LOCALは現在のリクエストにのみ適用されます。一時テーブル、プリペアドステートメント、カーソル、アドバイザリロックは、後続のステートメントでは利用できません。

LISTEN/NOTIFY

非同期通知には永続接続が必要ですが、プロキシはそれをサポートしていません。

COPY FROM STDIN

プロキシ経由でクライアント側のデータをストリームできません。

\watch

定期的なクエリーの再実行は、ステートレスプロキシを介しては利用できません。

クエリのキャンセル

キャンセルはベストエフォートのみです。キャンセルリクエスト後も、クエリーはバックエンドで実行を続ける可能性があります。

マルチステートメントスクリプト

ステートメントは共有トランザクションなしで実行されます。スクリプトの部分的な失敗は、部分的なコミットになります。

結果サイズの上限

クエリー結果は32 MBに制限されます。

トランザクションまたはセッションステートを必要とするワークロードの場合は、Postgresクライアントを使用してデータベースに直接接続してください。psqlで接続するを参照してください。

トラブルシューティング

SQLエディターに「Failed to fetch」または「Unknown error」メッセージが表示され、ワークスペースでPrivate Linkを使用している場合は、インバウンドPrivate Link(ワークスペースレベル、ポート443)が正しく構成されていることを確認してください。「Private Link接続のトラブルシューティング」を参照してください。