從工作區的 SQL 編輯器查詢

本頁說明如何透過分析與 AI 工作區的 SQL 編輯器查詢 Lakebase 專案中的資料庫,使用兩種不同的連線方式。

工作區中的 SQL 編輯器是一個協作式的 SQL 工作區,你可以在這裡撰寫查詢、尋找資料目錄、建立視覺化,並與同事分享結果。 它具備先進的分析、協作與自動化功能。

備註

對於 Postgres 原生功能,如 EXPLAIN/ANALYZE meta-command\dt(, \d\l),請使用 Lakebase SQL 編輯器。 請參考 Lakebase SQL 編輯器的查詢

欲了解 SQL 編輯器功能的完整資訊,請參閱 「撰寫查詢並在 SQL 編輯器中探索資料」。

連接方法

你可以用兩種方法從 SQL 編輯器連接到你的 Lakebase 資料庫:

  1. 直接運算連線:直接連接你的 Lakebase 運算,即可立即查詢特定專案與分支。
  2. Unity 目錄註冊:將您的資料庫註冊到 Unity 目錄,以啟用聯邦查詢、統一治理及跨來源分析。

選擇你的連接方式

特徵 / 功能 直接計算連線 Unity Catalog 註冊
數據存取 對您的 Lakebase 資料庫提供完整讀寫權限 透過 Unity Catalog 的唯讀存取
適用對象 主要使用 Lakebase 資料,不結合其他資料來源 在聯邦查詢中將 Lakebase 資料與其他 Unity 目錄資料表結合
設定複雜度 無需註冊即可即時查詢特定資料庫 需要目錄註冊及 Unity 目錄權限
治理 沒有 Unity 目錄治理功能 統一治理控制(權限、血統、稽核日誌)
存取控制 Postgres 僅支援基於角色的權限 跨多個資料來源進行集中式發現與存取控制
應用案例 直接資料庫操作與修改 整合交易與分析資料的儀表板與應用程式

方法一:直接連接到 Lakebase 計算

使用此方法直接連接您的 Lakebase 運算,以便立即查詢存取。

開始之前

如果你不是專案擁有者,請確認你擁有:

  • Postgres 角色:對應的 Postgres 角色用於存取資料庫。 請參閱 管理 Postgres 角色
  • 資料庫權限:存取資料庫、結構或資料表所需的權限。 請參見 管理權限

如果你缺乏必要的角色或權限,請聯絡專案負責人申請存取權限。

備註

Lakebase 的運算必須處於主動狀態才能連接到它。 如果運算處於閒置狀態,你就無法連接。 當啟用「scale to zero」且沒有資料庫活動時,運算資源通常會變得不活躍。

要啟用閒置運算,請在 Lakebase SQL 編輯器中執行查詢,或關閉「縮放至零」以確保運算持續活躍。 參見 「縮放到零」。

要直接連接到你的 Lakebase 運算器:

  1. 用應用程式切換器切換到 分析和人工智慧
  2. 在側邊欄點選 SQL 編輯器圖示SQL 編輯器
  3. 從計算下拉選單中,選擇 「更多...」

連接選單

  1. 附加到現有的計算資源 對話框中,選擇 Lakebase Postgres,選擇 自動調整 選項,然後選擇你的 專案分支

附加至 LKB 專案與分支

  1. 點擊 「附加 」以連接。

直接連結的查詢範例

連線後,你可以對 Lakebase 資料庫執行標準的 Postgres 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;

查詢特定表格:

SELECT * FROM public.playing_with_lakebase;

這很重要

直接連接的限制:

  • 不支援聯邦查詢:你只能查詢連接的 Lakebase 專案和分支。 你無法在單一查詢中將 Lakebase 資料和其他 Unity 目錄資料表合併。
  • Postgres 元指令不支援:在 Lakebase SQL 編輯器中運作的 Postgres 元指令 (如 \dt\d\l)在 SQL 編輯器(Lakehouse)中無法使用。

方法二:在 Unity 目錄中登錄資料庫

使用此方法在 Unity 目錄中註冊您的 Lakebase 資料庫,實現聯合查詢與跨資料來源的統一治理。

開始之前

請確認您已經具備:

  • Postgres 角色:對應的 Postgres 角色用於存取資料庫。 請參閱 管理 Postgres 角色
  • 資料庫權限:存取資料庫、結構或資料表所需的權限。 請參見 管理權限
  • Unity Catalog 權限CREATE CATALOG 在 Unity Catalog metastore 中註冊資料庫的權限
  • SQL 倉庫無伺服器 SQL 倉庫。 Pro 與 Classic SQL 倉庫不受支援,並會傳回 PERMISSION_DENIED 錯誤。

如果你缺乏必要的角色或權限,請聯絡專案負責人申請存取權限。

這很重要

Lakebase 目錄需要 無伺服器 SQL 倉庫。 如果查詢時看到 PERMISSION_DENIED 錯誤,請檢查 SQL 編輯器中選擇的倉庫是否為無伺服器。 打開倉庫下拉選單,切換到無伺服器倉庫。

註冊您的資料庫

要在 Unity 目錄中註冊 Lakebase 資料庫:

  1. 用應用程式切換器切換到 分析和人工智慧
  2. 在目錄檔案總管中,點擊加號按鈕並 建立目錄
  3. 輸入目錄名稱(例如)。 lakebase_catalog
  4. 選擇 Lakebase Postgres 作為目錄類型,然後選擇 自動縮放 選項。
  5. 選擇你的專案、分支和 Postgres 資料庫。
  6. 點擊 建立

目錄會出現在目錄總管中,你可以找到結構圖、資料表和檢視圖。

透過 Unity 目錄查詢

註冊後,使用 SQL 倉庫或任何連接 Unity 目錄的工具查詢你的 Lakebase 資料庫。

查詢註冊資料庫:

-- Query a registered Lakebase database
SELECT * FROM chatbot_catalog.public.conversations
WHERE created_at >= current_date - INTERVAL 7 DAYS;

結合湖底與湖屋資料:

-- Join Lakebase and Unity Catalog data
SELECT
  c.conversation_id,
  c.user_id,
  c.agent_response,
  u.user_name,
  u.subscription_tier
FROM chatbot_catalog.public.conversations c
JOIN main.user_analytics.users u
  ON c.user_id = u.user_id;

關於 Unity 目錄權限及授權其他使用者存取權的資訊,請參見 權限與存取控制

這很重要

Unity 目錄註冊的限制:

  • 唯讀存取:從 Lakebase 資料庫註冊的目錄通過 Unity Catalog 實現唯讀。 若要修改資料,請使用 Lakebase SQL 編輯器或直接連接您的資料庫。
  • 每個目錄單一資料庫:每個 Unity 目錄代表一個 Lakebase 資料庫。 要公開多個資料庫,請分別註冊每一個資料庫。
  • 元資料同步:Unity 目錄會快取元資料以減少 Postgres 請求。 新物件可能不會立即出現。 點擊 「重新整理結構圖示 」即可觸發完整刷新。
  • 分支資料庫註冊:目前尚未支援將分支資料庫註冊為獨立目錄。 分支會從其父分支繼承 Unity Catalog 註冊中繼資料,因而導致新的 Catalog 註冊失敗。

欲了解在 Unity 目錄中註冊資料庫的完整資訊,請參閱 在 Unity 目錄中註冊湖基資料庫

其他資源