Lakebase SQL 編輯器查詢

Lakebase SQL 編輯器會直接從 Lakebase 應用程式對你的 Lakebase 資料庫執行查詢。 它提供 Postgres 原生功能,如 EXPLAIN/ANALYZEpsql-style 元指令,以及將結果匯出為 CSV/JSON/XLSX。

備註

你也可以在 Lakehouse 的 SQL 編輯器查詢你的 Lakebase 資料庫,該編輯器提供視覺化、儀表板、協作功能,並能將 Lakebase 資料與其他 Unity 目錄資料表合併。 請參考 SQL 編輯器查詢(Lakehouse)。

使用 Lakebase SQL 編輯器

使用 SQL 編輯器:

  1. 打開 Lakebase 應用程式並選擇你的專案。
  2. 從側邊欄選擇 SQL 編輯器 ,然後選擇分支和資料庫。
  3. 在編輯器中輸入查詢,並點擊 執行 即可查看結果。

LKB 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 編輯器具備 解釋分析 功能。

LKB SQL 編輯器 解釋與分析

  • Explain 功能會用 Postgres EXPLAIN 指令執行指定的查詢,該指令會回傳查詢的執行計畫。 「解釋」功能只會回傳帶有估算的計畫。 它不會執行查詢。
  • Analyze 功能會用 EXPLAIN ANALYZE 執行指定的查詢。 參數 ANALYZE 執行查詢,並回傳計畫節點的實際列數與執行時間,以及估計值 EXPLAIN

理解 Explain and Analyze 功能所提供的資訊,需要熟悉 Postgres EXPLAIN 指令及其 ANALYZE 參數。 請參閱 EXPLAIN 文件,以及 PostgreSQL 文件中的 Using EXPLAIN

匯出資料為 CSV、JSON 和 XLSX

Lakebase SQL 編輯器支援將資料匯出為 JSONCSVXLSX和 。 請從 SQL 編輯器 頁面右下角的下載按鈕操作。 當有可供下載的結果集時,下載按鈕才會出現。

LKB SQL 編輯器匯出

SQL 編輯器視窗中的展開結果區塊

SQL 編輯器 頁面右下角選擇展開視窗按鈕,展開結果區塊。

LKB SQL 編輯器展開

元指令

Lakebase SQL 編輯器支援使用 Postgres 元指令,這些指令就像是與資料庫互動的捷徑。 如果你已經熟悉從命令列介面使用元指令 psql ,可以在 Lakebase SQL 編輯器中使用許多相同的指令。

元指令能加快您的工作流程,提供快速存取資料庫結構及其他關鍵資訊,無需撰寫完整的 SQL 查詢。

以下是 Lakebase SQL 編輯器中常用的一些元指令:

  • \dt — 列出目前資料庫中的所有資料表
  • \d [table_name] — 描述表格結構
  • \l — 列出所有資料庫
  • \? — 可用的 meta 指令速查表
  • \h [NAME] — 尋求任何Postgres指令的協助(例如, \h SELECT

備註

並非所有 psql 元指令都支援 SQL 編輯器。 要取得支援指令清單,請使用 \?.

關於完整的元指令及其使用方式,請參見 psql 中的元指令

如何使用元指令

若要在 SQL 編輯器中使用 meta-command,請在編輯器中輸入 meta-command(就像 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、數值、時間戳、布林值)
  • 查詢結果與錯誤訊息

無法運作的項目:

Feature 限度
交易 BEGINCOMMITROLLBACK以及SAVEPOINT都無法如預期運作。 每個語句會獨立自動提交,且沒有原子性保證。
會話狀態 SETSET LOCAL 僅適用於目前的申請。 後續帳單中不再提供臨時表格、預備報表、游標及諮詢鎖。
監聽/通知 需要持續連線以發送非同步通知,但代理伺服器不支援此連線。
從 STDIN 複製 無法透過代理伺服器串流用戶端資料。
\watch 無法透過無狀態代理定期重新執行查詢。
取消查詢 取消只是盡力而為。 查詢可在取消請求後繼續在後端執行。
多陳述式指令碼 陳述式會在未共用交易的情況下執行。 部分腳本失敗會導致部分提交。
結果大小限制 查詢結果限制為 32 MB。

對於需要交易或會話狀態的工作負載,請直接使用 Postgres 用戶端連接到你的資料庫。 請參見 Connect with psql

Troubleshoot

如果 SQL 編輯器顯示「Failed to get 」或「Unknown error」的訊息,而你的工作區使用 Private Link,請確認入站的 Private Link(工作區層級,埠號 443)是否正確設定。 請參見 私人連接疑難排解 (Troubleshoot Private Link connectivity)