將 Power BI 連線至 Azure Databricks

Microsoft Power BI 是一項商務分析服務,可提供互動式視覺效果與自助商業智慧功能,讓使用者不需要依賴資訊技術人員或資料庫管理員,自行建立報表和儀錶板。

當您搭配Power BI使用 Azure Databricks 做為數據源時,您可以將 Azure Databricks 效能和技術的優點帶到數據科學家和數據工程師以外的所有商務使用者。

從 Azure Databricks 發佈至 Power BI Online

使用 Azure Databricks 作為 Power BI Online 的數據源時,您可以直接從 Databricks UI 從數據表或架構建立 PowerBI 數據集。

需求

  • 您的數據必須位於 Unity 目錄上,且計算(叢集)必須啟用 Unity 目錄。 目前不支援Hive中繼存放區。
  • 您必須擁有進階版(進階容量或進階每個用戶授權)Power BI 授權。
  • 您必須在 [工作區設定] 和 [數據模型設定] 底下啟用 [使用者可以編輯數據模型在 Power BI 服務 中編輯數據模型] ,才能在發行后編輯語意模型。 您也可以使用表格式編輯器編輯語意模型,方法是使用 XMLA 端點建立連接。
  • 如果您需要在PowerBI工作區中啟用 XML 寫入,請遵循此 連結 以取得指示。
  • 如果您的工作區位於私人連結之下,您必須在 Power BI 中手動更新數據集的數據源認證。

如何使用

將 Azure Databricks 數據表發佈至 Power BI 數據集

  1. 登入您的 Databricks 工作區,並流覽至目錄總管。 選取要發佈的架構/數據表。 請勿從Hive中繼存放區或範例目錄選取。
  2. 從計算下拉式清單中,選取您想要在此Power BI發佈中使用的數據倉儲。
  3. 在目錄總管中開啟所需的數據表/架構時,按下右上方的 [搭配BI工具使用] 按鈕。
  4. 在開啟的下拉式清單中,按兩下 [發佈至 Power BI 工作區] 選項。

此時,功能表將會在視窗右側開啟。 請遵循功能表所提供的提示,詳述如下:

  1. 按兩下 [連線 至 Microsoft Entra ID] 以向 Microsoft 帳戶進行驗證。
  2. 在下列功能表中,選取 [Power BI 工作區] 下拉式清單中要發佈的所需工作區。 在 [數據集模式] 下拉式清單中,選取 [DirectQuery] 或 [匯入] 模式。
  3. 點擊選單底部的藍色 [發佈至 Power BI] 按鈕。
  4. 等候數據集發佈。 這通常需要大約 10 到 20 秒的時間。
  5. 發佈數據集時,藍色按鈕會有標示為「開啟 Power BI」的連結。 按兩下此選項,即可在新索引標籤中開啟新的Power BI資料集。

功能和附注

  • 發佈包含多個數據表的架構時,將會發佈具有數據行的所有數據表。 如果沒有任何數據行存在於任何數據表中,將不會執行發佈。
  • Databricks 中數據表數據行的批注會複製到 Power BI 中對應數據行的描述。
  • 外鍵關聯性會保留在已發佈的數據集中。 不過,Power BI 只支援任兩個數據表之間的一個作用中關聯性路徑。 因此,當 Databricks 架構中有多個路徑時,Power BI 中的一些對應關聯性將會設定為非使用中。 您稍後可能會在 Power BI 的數據模型檢視中變更作用中/非作用中的關聯性。
  • 系統會代表您建立個人存取令牌 (PAT),以允許Power BI存取語意模型。 稍後可以在Power BI資料源設定中變更此驗證方法。

連線 Power BI Desktop 至 Azure Databricks

您可以將 Power BI Desktop 連線到 Azure Databricks 叢集和 Databricks SQL 倉儲。 您也可以將 Power BI 報表發佈至 Power BI 服務,並讓使用者使用單一登錄 (SSO) 存取基礎 Azure Databricks 數據,並傳遞他們用來存取報表的相同 Microsoft Entra ID(先前稱為 Azure Active Directory) 認證。

需求

  • Power BI Desktop 2.85.681.0 或更新版本。 若要搭配 Power BI 使用 Unity 目錄所管理的數據,您必須使用 Power BI Desktop 2.98.683.0 或更新版本(2021 年 10 月版本)。

    注意

    Power BI Desktop 需要 Windows。 其他操作系統的替代方法是在實體主機或 Windows 型虛擬機上執行 Power BI Desktop,然後從您的操作系統連線到它。

    如果您使用低於 2.85.681.0 的 Power BI Desktop 版本,您也必須在與 Power BI Desktop 相同的環境中安裝 Databricks ODBC 驅動程式

  • Azure Databricks 個人存取令牌 或您的 Microsoft Entra ID 帳戶認證。

    注意

    當您使用個人存取令牌進行驗證時,Databricks 建議您使用屬於 服務主體 的個人存取令牌,而不是工作區使用者。 若要建立服務主體的令牌,請參閱 管理服務主體的令牌。

  • Azure Databricks 叢集 或 Databricks SQL 倉儲

使用合作夥伴 連線 將 Power BI Desktop 連線 至 Azure Databricks

只要按幾下滑鼠,您就可以使用合作夥伴 連線 從 Power BI Desktop 連線到叢集或 SQL 倉儲。

  1. 請確定您的 Azure Databricks 帳戶、工作區和已登入的使用者符合合作夥伴 連線 的需求

  2. 在提要欄位中,按兩下 合作夥伴 連線 按鈕[合作夥伴 連線]。

  3. 按兩下 [Power BI] 圖格。

  4. 在 [連線 至合作夥伴] 對話框中,針對 [計算],選擇您想要連線的 Azure Databricks 計算資源名稱。

  5. 選擇 [ 下載連線檔案]。

  6. 開啟下載的連線檔案,以啟動Power BI Desktop。

  7. 在 Power BI Desktop 中,輸入您的驗證認證:

    • 個人存取令牌:輸入您的 Azure Databricks 個人存取令牌。
    • Microsoft Entra ID:按兩下 [登入 ],然後遵循畫面上的指示。
    • 使用者名稱/密碼:不適用。
  8. 按一下 連線

  9. 從 Power BI 導覽器選取要查詢的 Azure Databricks 數據。

    Power BI 導覽器

手動將 Power BI Desktop 連線 至 Azure Databricks

根據您選擇的驗證方法,遵循這些指示,使用 Power BI Desktop 連線到叢集或 SQL 倉儲。 在 DirectQuery 模式中使用 Power BI 時,建議使用 Databricks SQL 倉儲。

注意

若要使用 Power BI Desktop 更快速地連線,請使用 Partner Connect。

  1. 取得伺服器主機名和 HTTP 路徑

  2. 啟動 Power BI Desktop。

  3. 按兩下 [取得數據] 或 [檔案>取得數據]。

  4. 按兩下 [ 取得資料] 以開始使用

  5. 搜尋 Databricks,然後按兩下連接器:

    • Azure Databricks
  6. 按一下 連線

  7. 輸入伺服器主機名HTTP 路徑

  8. 選取您的資料 連線 連線 模式。 如需 Import 和 DirectQuery 之間差異的詳細資訊,請參閱在 Power BI Desktop 中使用 DirectQuery

  9. 按一下 [確定]

  10. 按下您的驗證方法:

    • 個人存取令牌:輸入您的 Azure Databricks 個人存取令牌。
    • Microsoft Entra ID:按兩下 [登入 ],然後遵循畫面上的指示。
    • 使用者名稱/密碼:不適用。
  11. 按一下 連線

  12. 從 Power BI 導覽器選取要查詢的 Azure Databricks 數據。 如果已啟用工作區的 Unity 目錄,請先選取目錄,再選取架構和數據表。

    Power BI 導覽器

使用自訂 SQL 查詢

Databricks 連接器提供 Databricks.Query 數據源,可讓使用者提供自定義 SQL 查詢。

  1. 請遵循使用Power BI Desktop 連線 中所述的步驟,使用匯入作為數據連線模式來建立連線。

  2. 在 [導覽器] 中,以滑鼠右鍵按兩下包含所選主機名和 HTTP 路徑的最上層專案,然後按兩下 [轉換資料] 以開啟 Power Query 編輯器。

    點選單擊 [導覽器] 中的 [轉換資料]

  3. 在函式列中,將函式名稱 Databricks.Catalogs 取代為 Databricks.Query ,並套用變更。 這會建立採用 SQL 查詢做為參數的 Power Query 函式。

  4. 在參數位段中輸入所需的 SQL 查詢,然後按兩下 [ 用]。 這會執行查詢,並使用查詢結果作為其內容來建立新的數據表。

使用 Power BI 服務 存取 Azure Databricks 數據源

當您將報表發佈至 Power BI 服務 時,您會使用個人存取令牌連線到 Azure Databricks。 在 Power BI 服務 中,您也可以啟用單一登錄 (SSO),讓使用者可以藉由將 Microsoft Entra ID 認證傳遞至 Azure Databricks,來存取使用 DirectQuery 儲存模式所建置的報告。

  1. 將 Power BI 報表從 Power BI Desktop 發佈至 Power BI 服務。

  2. 啟用報表和基礎數據源的單一登錄 (SSO) 存取權。

    1. 移至 Power BI 服務 中報表的基礎 Azure Databricks 數據集,展開 [數據源認證],然後按兩下 [編輯認證]。
    2. 在 [組態] 對話框中,選取 [報表查看器] 只能使用自己的 Power BI 身分識別來存取此數據源, 然後按兩下 [ 登入]。

    啟用 Databricks 資料存取的 SSO

    選取此選項後,會使用 DirectQuery 來處理數據源的存取權,並使用存取報表之使用者的 Microsoft Entra 標識符身分識別進行管理。 如果您未選取此選項,只有身為發佈報表的使用者,才能存取 Azure Databricks 數據源。

自動化 HTTP Proxy 偵測

Power BI Desktop 2.104.941.0 版和更新版本(2022 年 5 月版本)內建支持偵測 Windows 全系統的 HTTP Proxy 設定。

Power BI Desktop 可以自動偵測及使用您的 Windows 全系統 HTTP Proxy 設定。

如果 Proxy 伺服器未提供 CRL 發佈點 (CDP),Power BI 可能會顯示下列錯誤訊息:

Details: "ODBC: ERROR [HY000] [Microsoft][DriverSupport] (1200)
-The revocation status of the certificate or one of the certificates in the certificate chain is unknown."

若要修正此錯誤,請完成下列步驟:

  1. 如果檔案不存在, C:\Program Files\Microsoft Power BI Desktop\bin\ODBC Drivers\Simba Spark ODBC Driver\microsoft.sparkodbc.ini 請建立檔案。

  2. 將下列組態新增至您的 microsoft.sparkodbc.ini 檔案:

    [Driver]
    CheckCertRevocation=0
    

Power BI Delta 共用連接器

Power BI Delta Sharing 連接器可讓使用者透過 Delta Sharing 開啟通訊協定來探索、分析及可視化與其共用的數據集。 此通訊協定可利用 REST 和雲端記憶體,在產品和平台之間安全地交換數據集。

如需連線指示,請參閱 Power BI:讀取共享數據

限制

  • Azure Databricks 連接器支援 Web Proxy。 不過,不支援 .pac 檔案中定義的自動 Proxy 設定。
  • 在 Azure Databricks 連接器中, Databricks.Query 不支援數據源與 DirectQuery 模式搭配使用。
  • Delta Sharing 連接器載入的數據必須符合您電腦的記憶體。 為了確保這一點,連接器會將匯入的數據列數目限制為稍早設定的數據 列限制

其他資源

支援