Databricks Apps 讓你能直接在 Azure Databricks 工作空間中建立並部署互動式應用程式。 將 Lakebase 加入資源,讓你的應用程式擁有完整管理的 Postgres 後端。 Azure Databricks 會為你的應用程式建立一個服務主體,賦予它匹配的 Postgres 角色,並將連線細節注入為環境變數。 你的應用程式連接到一個完全管理的 Postgres 資料庫,但不需要管理憑證或連線字串。
這個教學會帶你如何部署一個連接到 Lakebase 資料庫的模板應用程式。 最後,你將擁有一個正在運行的應用程式,可以直接從 Lakebase 檢查和查詢數據,也可以選擇註冊到 Unity Catalog,與你的湖屋數據一起管理。
先決條件
開始之前,請確定您具備下列項目:
- 可以存取具備 Lakebase 和serverless compute功能的 Azure Databricks 工作空間。 如有需要,請聯絡你的工作空間管理員。
- 建立運算資源與應用程式的權限。
步驟 1:配置 Lakebase 實例
Lakebase 專案是一個受管理的 Postgres 實例,你的應用程式會作為資源連接它。 專案組織成分支,每個 分支代表一個獨立的資料庫環境。
要建立 Lakebase 專案,請參閱 取得 Postgres 資料庫。 Lakebase 會以production 分支和databricks_postgres 資料庫建立你的專案。
步驟 2:建立 Databricks 應用程式
Azure Databricks 提供三個自動縮放應用程式範本,示範使用 Todos 應用程式整合 Lakebase:Dash、Flask 和 Streamlit。 要從範本建立應用程式:
- 在 Azure Databricks 工作區中,點擊
開關,然後選擇 Databricks 應用程式。
- 點擊 + 建立應用程式。
- 從資料庫標籤中選擇您偏好的範本。
步驟 3:設定資料庫資源
將 Lakebase 加入資源後,會建立一個擁有正確資料庫權限的服務主體,並將你的連線細節以 環境變數 形式注入應用程式中。 這樣範本就能自動連接到你的資料庫,程式碼中不需要任何連接字串。
在 配置 步驟中,請設定以下設定。
- 對於 應用程式資源,請選擇你的 Lakebase 專案、分支和資料庫。 分會名稱以識別碼形式出現。 若要將 ID 與名稱對應,請參閱您專案的 分支頁面。
- 對於計算大小,請選擇中等。 這控制 應用程式伺服器的運算,與 Lakebase 資料庫的運算是分開的,且可獨立擴展。
欲了解更多資訊,請參閱 「新增 Lakebase 資源至 Databricks 應用程式」。
步驟四:審查授權
每個 Databricks 應用程式都以其自己的 服務主體執行,是獨立於任何個別使用者之外的專用身份。 當你將 Lakebase 作為資源連接時,Azure Databricks會為該服務主體建立一個匹配的 Postgres role,並授予該服務主體完整的資料庫存取權。 不需要手動設定角色。
步驟五:命名你的應用程式並安裝
Lakebase 使用應用程式名稱來產生格式中的 {app-name}_schema_{service-principal-id} 結構名稱(從 ID 中移除連字號)。 建立後無法更改應用程式名稱,但之後可以重新命名結構。 模板預設為 lakebase-autoscaling-app。
點擊 建立應用程式 以建立應用程式。
步驟 6:部署應用程式
建立應用程式後,運算會自動啟動,應用程式大約在 2-3 分鐘內部署,無需其他操作。 當應用程式狀態顯示 為執行中時,點擊旁邊的網址即可開啟你的應用程式。
步驟7:驗證整合
在你的應用程式裡新增幾個待辦事項。 在你的 Lakebase 專案中,打開 資料表 ,並選擇應用程式架構中的 todos 表。 應用程式的服務主體利用步驟 3 注入的連線細節來寫入這些列。
若要直接查詢資料,請使用你 Lakebase 專案中的 SQL 編輯器。 因為 Lakebase 在閒置時會縮放到零,長時間停頓後的第一個查詢可能需要幾秒鐘才回應。 關於其他連線選項,請參見 「連接至您的資料庫」。
步驟八:透過 Unity 目錄查詢(可選)
預設情況下,你的應用程式 Lakebase 資料可直接透過 Postgres 連線存取。 在 Unity Catalog 註冊後,可以用標準 Databricks SQL 查詢湖屋資料。 接著你可以在同一查詢中將應用程式的交易表與 Delta 資料表結合。
要註冊,請開啟目錄探索器並建立新的目錄。 選擇 Lakebase Postgres 作為目錄類型,選擇 自動縮放,並選擇與你的應用程式相同的專案和分支。 完整詳情請參閱「 在 Unity 目錄中註冊 Lakebase 資料庫 」。
請注意,Unity Catalog 中的結構名稱會保留應用程式名稱的連字號。 目錄名稱與結構名稱皆需使用反引號(`)進行引用:
SELECT * FROM `your-catalog-name`.`lakebase-autoscaling-app_schema_aeb6ff9198ff4752af7dfc6d4cf570d0`.todos;