Databricks

加密網路流量

最佳做法是加密 Looker 應用程式與資料庫之間的網路流量。請考慮使用「啟用安全資料庫存取權」說明文件頁面所述的其中一個選項。

建立 Looker 使用者

Looker 會透過個人存取權杖向 Databricks 進行驗證。請按照 Databricks 說明文件,為 Databricks 使用者建立個人存取權杖,以便在 Looker 中使用。

使用 GRANT 為這個使用者新增權限。

Looker 使用者至少應具備 SELECTREAD_METADATA 權限。

GRANT SELECT ON DATABASE <YOUR_DATABASE> TO `<looker>@<your.databricks.com>`
GRANT READ_METADATA ON DATABASE <YOUR_DATABASE> TO `<looker>@<your.databricks.com>`

伺服器資訊

請參閱 Databricks 說明文件,找出 Databricks 叢集的 HTTP 路徑。本頁面會將此稱為 <YOUR_HTTP_PATH>

設定永久衍生資料表

如要使用永久衍生資料表,請建立個別資料庫。

CREATE DATABASE <YOUR_SCRATCH_DATABASE>

此外,您也必須授予額外的寫入權限。

GRANT SELECT CREATE MODIFY ON DATABASE <YOUR_SCRATCH_DATABASE> TO `<looker>@<your.databricks.com>`
GRANT READ_METADATA ON DATABASE <YOUR_SCRATCH_DATABASE> TO `<looker>@<your.databricks.com>`

建立 Looker 資料庫連線

在 Looker 的「管理」部分中,選取「連線」,然後按一下「新增連線」

填寫連線詳細資料。在這些設定中,有絕大部分都是多數資料庫方言的常用設定。詳情請參閱「將 Looker 連線至資料庫」說明文件頁面。以下說明部分設定:

  • 名稱:指定連線名稱。您會在 LookML 專案中參照這個連線。
  • 方言:指定 Databricks 方言。
  • 主機:指定 Databricks 工作區網址。例如:dbc-xxxxxxxx.cloud.databricks.com/
  • 「Port」(通訊埠):指定資料庫通訊埠。預設值為 443。
  • 資料庫:指定要用於 Looker 查詢的資料庫名稱。預設值為 default
  • 目錄:如果 Databricks 資料庫已啟用 Unity Catalog,請指定要用於 Looker 查詢的目錄名稱。如果未指定目錄,Looker 只會存取預設目錄中的結構定義。詳情請參閱「Looker functionality with Databricks Unity Catalog」。
  • 驗證:選取「資料庫帳戶」或「OAuth」
    • 使用「資料庫帳戶」指定要用於連線至 Looker 的 Databricks 個人存取權杖 (如需操作說明,請參閱「建立 Looker 使用者」一節)。
      • 在「Username」(使用者名稱) 中輸入值 token (請勿在此欄位中輸入 Databricks 使用者電子郵件地址)。
      • 在「Password」(密碼) 中,輸入 Databricks 個人存取權杖。
    • 使用 OAuth 設定連線的 OAuth。詳情請參閱「設定 Databricks 連線的 OAuth」一節。
  • 啟用 PDT:使用這個切換按鈕啟用永久衍生資料表。啟用 PDT 後,「連線」視窗會顯示其他 PDT 設定和「PDT 覆寫」部分。 注意:使用 OAuth 的 Databricks 連線不支援 PDT。
  • 暫存資料庫:輸入要用來儲存 PDT 的資料庫。
  • PDT 建構工具連線數量上限:指定此連線可並行建構 PDT 的數量。如果這個值設得太高,可能會對查詢時間造成負面影響。詳情請參閱「將 Looker 連線至資料庫」說明文件頁面。
  • 其他 JDBC 參數:新增其他 Spark JDBC 參數

  • 維護時間表cron 運算式,指出 Looker 應在何時檢查資料群組和永久衍生資料表。如要進一步瞭解這項設定,請參閱「維護時間表」說明文件。

  • SSL:勾選這個選項即可使用 SSL 連線。

  • 驗證 SSL:勾選這個選項可強制執行嚴格的 SSL 憑證驗證。

  • 每個節點的連線數上限:一開始可以保留預設值。如要進一步瞭解這項設定,請參閱「將 Looker 連線至資料庫」說明頁面的「每個節點的連線數上限」一節。

  • 連線集區逾時:一開始可以保留預設值。如要進一步瞭解這項設定,請參閱「將 Looker 連線至資料庫」說明頁面的「連線集區逾時」一節。

  • SQL Runner 預先快取:如要讓 SQL Runner 不要預先載入資料表資訊,只在選取資料表時載入資料表資訊,請取消勾選這個核取方塊。如要進一步瞭解這項設定,請參閱「將 Looker 連線至資料庫」說明頁面的「SQL Runner 預先快取」一節。

  • 資料庫時區:指定要在資料庫中使用的時區。如不想轉換時區,請將這個欄位留空。詳情請參閱「使用時區設定」說明文件頁面。

按一下「測試」,測試連線並確認設定正確無誤。如果看到「可以連線」,請按下「連線」。這會執行其餘的連線測試,確認服務帳戶已正確設定,且具備適當角色。如需疑難排解資訊,請參閱「測試資料庫連線」說明文件頁面。

搭配 Databricks Unity Catalog 使用 Looker 功能

Looker 支援連線至已啟用 Unity Catalog 的 Databricks 資料庫。建立 Looker 資料庫連線時,或編輯現有 Looker 連線至 Databricks 資料庫時,您可以在 Looker「連線」視窗的「目錄」欄位中指定目錄名稱。

如果 Databricks 資料庫已啟用 Unity Catalog,您可以在 Looker 連線的「目錄」欄位中指定 Databricks 目錄。指定 Databricks 目錄後,Looker 會在下列情況使用該目錄:

如果 Databricks 資料庫已啟用 Unity Catalog,且 Looker 連線的「Catalog」欄位沒有值,則大多數 Looker 功能只會存取預設目錄中的結構定義,例如在下列情況:

  • 從資料庫產生新的 LookML 專案時,Looker 會根據 Unity Catalog 預設目錄中的資料表建立專案檔案。
  • 如果是現有專案,使用 Looker IDE 從資料表建立檢視區塊時,Looker 只能從 Unity Catalog 預設目錄中的資料表建立檢視區塊檔案。
  • 使用 SQL Runner 時,您只能從 Unity Catalog 預設目錄選取結構定義。

為 Databricks 連線設定 OAuth

Looker 支援 Databricks 連線的 OAuth,也就是說,每位 Looker 使用者都會驗證資料庫,並授權 Looker 使用自己的 OAuth 使用者帳戶在資料庫中執行查詢。

資料庫管理員可透過 OAuth 執行下列工作:

  • 稽核哪些 Looker 使用者對資料庫執行查詢
  • 使用資料庫層級權限,強制執行角色型存取權控管
  • 針對存取資料庫的所有程序和動作使用 OAuth 權杖,而不是在多個位置嵌入資料庫 ID 和密碼
  • 直接透過資料庫撤銷特定使用者的授權

如果 Databricks 連線使用 OAuth,使用者必須在 OAuth 權杖到期時重新登入。

請注意資料庫層級 OAuth 連線的下列事項:

  • 如果使用者的 OAuth 權杖過期,使用者擁有的任何 Looker 排程或快訊都會受到影響。為防範這種情況,Looker 會在目前有效的 OAuth 權杖到期前,傳送通知電子郵件給每個排程和快訊的擁有者。Looker 會在權杖到期前 14 天、7 天和 1 天,傳送這些通知電子郵件。使用者可以前往 Looker 使用者頁面,重新授權 Looker 存取資料庫,避免排程和快訊中斷。詳情請參閱「個人化使用者帳戶設定」說明文件頁面。
  • 由於使用 OAuth 的資料庫連線是「每個使用者」專屬,因此快取政策也是每個使用者專屬,而不只是每個查詢專屬。也就是說,如果同一位使用者在快取期間內執行相同查詢,Looker 才會使用快取結果,而不是在快取期間內執行相同查詢時一律使用快取結果。如要進一步瞭解快取,請參閱「快取查詢」說明文件頁面。
  • 使用 OAuth 的 Databricks 連線不支援持續衍生資料表 (PDT)
  • 當 Looker 管理員以其他使用者身分執行 sudo 時,管理員會使用該使用者的 OAuth 存取權杖。如果使用者的存取權杖已過期,管理員就無法代表該使用者建立新權杖。如要瞭解如何使用 sudo 指令,請參閱「使用者」文件頁面。
  • 使用者透過 OAuth 從 Looker 登入 Databricks 時,Looker 不會顯示明確的使用者同意聲明對話方塊。透過 Looker 設定 OAuth 時,您會隱含同意 Looker 執行個體存取 Databricks 資料庫。
  • 如要為 Databricks 連線使用 OAuth,您必須有可用於 Looker 查詢的 Databricks使用者服務主體,並為使用者和服務主體提供 Looker 存取資料來源所需的 Databricks 權限,以及在 Databricks 中執行必要動作的權限。

如要使用 OAuth 建立 Databricks 與 Looker 的連線,請執行下列一般步驟 (詳情請參閱後續章節):

  1. 在 Databricks 中啟用自訂 OAuth 應用程式
  2. 在 Looker 中設定連線

在 Databricks 中啟用自訂 OAuth 應用程式

如要透過 OAuth 將 Looker 連線至 Databricks,請按照下列步驟操作,將 Looker 設為 Databricks 資料庫的自訂 OAuth 應用程式:

  1. 登入 Databricks 帳戶控制台
  2. 按一下側邊面板中的「設定」圖示。
  3. 在「設定」視窗中,按一下「應用程式連結」分頁標籤。
  4. 在「應用程式連結」分頁中,按一下「新增連結」
  5. 在 Databricks 的「Add connection」對話方塊中輸入下列值:

    • 應用程式名稱:提供描述性名稱,例如「Looker Integration」。
    • 重新導向網址:輸入 Databricks 在授權成功後將使用者重新導向的 Looker 網址,格式如下 (請將 example.looker.com 替換為 Looker 執行個體的網址):

      https://example.looker.com/external_oauth/redirect
      
    • 存取範圍:選取「SQL」,允許 Looker 透過 SQL 查詢資料。

    • 產生用戶端密鑰:啟用這個選項。

  6. 在 Databricks「新增連線」對話方塊中,按一下「新增」

  7. 複製並妥善保存 Databricks 產生的「Client ID」(用戶端 ID) 和「Client Secret」(用戶端密鑰)

在 Databricks 資料庫中註冊 OAuth 應用程式最多可能需要 30 分鐘。詳情請參閱官方 Databricks 說明文件

在 Looker 中設定連線

在 Databricks 資料庫中將 Looker 設定為自訂 OAuth 應用程式後,即可設定 Looker 與 Databricks 的連線,並使用 OAuth。

  1. 在 Looker 的「管理」部分中,選取「連線」,然後按一下「新增連線」
  2. 填寫連線詳細資料,如本頁「建立 Looker 資料庫連線」一節所述。
  3. 在「Authentication」欄位中選取「OAuth」選項。
  4. 選取「OAuth」選項後,Looker 會顯示「OAuth 用戶端 ID」和「OAuth 用戶端密鑰」欄位。請輸入您在 Databricks 中啟用 Looker 做為自訂 OAuth 應用程式時,Databricks 產生的「用戶端 ID」和「用戶端密鑰」
  5. 選取「連線設定」頁面底部的「測試」按鈕,確保 Looker 可以順利建立 OAuth 流程,並連線至 Databricks 執行個體。

功能支援

如要讓 Looker 支援某些功能,資料庫方言也必須支援這些功能。

自 Looker 25.10 起,Databricks 支援下列功能:

功能 是否支援?
支援級別
支援
Looker (Google Cloud Core)
對稱式匯總函式
衍生資料表
永久 SQL 衍生資料表
永久原生衍生資料表
穩定版檢視畫面
終止查詢
以 SQL 為基礎的樞紐
時區
SSL
小計
JDBC 其他參數
區分大小寫
位置類型
名單類型
百分位數
不重複值的百分位數
SQL Runner 顯示程序
SQL Runner 說明資料表
SQL Runner 顯示索引
SQL Runner 選取 10
SQL Runner 計數
SQL 說明
OAuth 2.0 憑證
背景資訊註解
連線集區
HLL 草圖
匯總知名度
增量 PDT
毫秒
微秒
具體化檢視表
與前一段時期相比的指標
不重複值的概略計數