將 Power BI 連接至 Azure Databricks
Microsoft Power BI 是一種商務分析服務,其使用自助商業智慧功能提供互動式視覺效果,可讓終端使用者自行建立報表和儀表板,而無需依賴資訊技術人員或資料庫管理員。
將 Azure Databricks 作為資料來源與 Power BI 搭配使用時,你可以將 Azure Databricks 效能和技術的優勢帶給所有商務使用者 (而不是僅帶給資料科學家和資料工程師)。
從 Azure Databricks 發佈至 Power BI 線上
將 Azure Databricks 作為資料來源與 Power BI Online 搭配使用時,你可以直接透過 Databricks UI 從資料表或結構描述建立 Power BI 資料集。
需求
你的資料必須位於 Unity Catalog 中,並且計算 (叢集) 必須啟用 Unity Catalog。 目前不支援 Hive 中繼存放區。
你必須具有 Premium (Premium 容量或 Premium Per User 授權) Power BI 授權。
您必須將下列許可權授與已註冊的 Entra ID 應用程式 Databricks 數據集發佈整合,您用來從 Databricks 發佈至 Power BI:
Content.Create
Dataset.ReadWrite.All
Workspace.Read.All
如需更多資訊,請參閱 Microsoft Entra 權限。
注意
這些權限通常需要 Entra 管理員同意,尤其是 Power BI 中工作區和資料集層級的存取。 如需指示,請參閱檢閱管理員同意要求。
在 Power BI 工作區設定中,你必須啟用 [使用者可以在 Power BI 服務中編輯資料模型 (預覽版)],以在發佈語意模型後對其進行編輯。 你也可以使用 Tabular Editor 編輯語意模型,方法是使用 XMLA 端點建立連線。
如果你需要在 Power BI 工作區中啟用 XML 寫入,請遵循此 連結以取得相關指示。
如果 Power BI 工作區使用私人連結,你必須在 Power BI 中手動更新資料集的資料來源認證。
將 Azure Databricks 資料表發佈至 Power BI 資料集
在側邊欄中,登入 Databricks 工作區並按下 [目錄],以開啟 [目錄總管]。
從右上角的下拉式清單中選取計算資源。
開啟目錄,然後選取要發佈的結構描述或資料表。 請勿從 Hive 中繼存放區或範例目錄中選取。
在右上方,按下結構描述的 [與 BI 工具搭配使用] 或資料表的 [在儀表板中開啟]。
選取 [發佈至 Power BI 工作區]。
在 [連線至合作夥伴] 對話方塊中,按一下 [連線至 Microsoft Entra ID] 進行驗證。
在 [Power BI 工作區] 中,選取 Power BI 工作區。
在 [資料集模式] 中,選取 [DirectQuery] 或 [匯入]。
在 [Power BI 中的驗證方法] 中,選取 [OAuth] 或 [PAT (個人存取權杖)]。
Databricks 建議使用 OAuth,因為它允許更細緻的存取控制和使用者層級稽核。 你可能需要在 [資料來源認證] 下的 [Power BI 資料集設定] 頁面上設定 OAuth 認證。 如果你選取 [個人存取權杖 (PAT)],則會代表你建立 PAT,以允許 Power BI 存取語意模型。
在 [資料集名稱] 中,選取 [發佈為新的資料集] 或 [使用現有的資料集]。
當你選擇 [使用現有的資料集] 時,將符合下列條件:
- 如果資料集已存在,則不會覆寫上去。 更新只會在指定的結構描述中附加新記錄。
- 如果選取的資料表不是現有資料集的一部分,則會新增。
- 如果資料表已在資料集中,且上次更新之後新增了新的資料列,則會自動新增這些資料列。
- 你可以為新資料表選擇不同的儲存模型,以建立複合語意模型。
如果你有想要更新的現有語意模型,同時保留現有的數據連線,請選擇 [使用現有的資料集]。 如果你想要使用新的語意模型建立新的資料集,請選擇 [發佈為新資料集]。
- 如果資料集已存在,則不會覆寫上去。 更新只會在指定的結構描述中附加新記錄。
按一下 [發佈至 Power BI]。
在資料集發佈後的 10 至 20 秒內,按一下 [開啟 Power BI] 以在新索引標籤中開啟 Power BI 資料集。
功能和附註
- 發佈包含多個資料表的結構描述時,將發佈包含資料行的所有資料表。 不會發佈沒有資料行的資料表。
- Azure Databricks 中資料表資料行的註解將複製到 Power BI 中對應資料行的描述。
- 已發佈的資料集中將保留外部索引鍵關聯性。 但是,Power BI 在任何兩個資料表之間都僅支援一個作用中的關聯性路徑。 當 Azure Databricks 中的結構描述中存在多個路徑時,Power BI 中的一些對應關聯性將設定為作用中。 你稍後可以在 Power BI 的資料模型檢視中變更哪些關聯性是作用中或非作用中狀態。
- 在使用 OAuth 或內部部署的資料閘道時,你可能需要在 Power BI 資料集設定頁面上的 [資料來源認證] 下設定認證。
- 目前,使用者只能直接發佈至其主租使用者中的Power BI工作區。 不支援在來賓使用者所在的租用戶中發佈。
疑難排解
錯誤 | 備註 |
---|---|
第一次啟動 [發佈至 Power BI] 時顯示 [需要核准] | 如果看到此訊息,你需要先取得 Entra 系統管理員核准,然後才能將權限授與此整合功能。 請連絡 Entra 系統管理員來核准要求。 遵循此連結以取得相關指示。 |
PowerBINotLicensedException | 確保你具有 Power BI Premium 授權。 |
我們無法部署此資料集。 請連絡容量系統管理員,以確保在 Power BI Premium 容量上的容量設定中啟用了 XMLA 讀寫支援,然後再試一次。 如需其他資訊,請參閱產品文件中的「XMLA 讀寫支援」。 | 請連絡 Power BI 容量系統管理員,以在容量設定中的 [XMLA 端點] 下啟用 [讀取和寫入] 功能。 遵循此連結以取得相關指示。 |
XMLA 端點功能已停用。 在 PowerBI.com 中開啟 [在 Excel 中進行分析] 功能,以啟用此功能。 | 請連絡 Power BI 容量系統管理員,以在容量設定中的 [XMLA 端點] 下啟用 [讀取和寫入] 功能。 遵循此連結以取得相關指示。 |
CapacityNotActive | 你的容量可能會暫停。 請連絡你的容量系統管理員以檢查容量狀態。 |
名稱為 ‘<ccon> ***</ccon> ’ 的資料庫已存在於 ‘<ccon> workspace </ccon> ’ *** 中。 |
確保你有權建立語意模型。 然後,重試 [發佈至 Power BI] 以使用遞增版本號碼發佈語意模型。 |
你無法在相同的模型中將 Direct Lake 模式與其他儲存模式一起使用。 複合模型不支援 Direct Lake 模式。 移除不支援的資料表,或將其切換至 Direct Lake 模式。 | 由於 [發佈至 Power BI] 會建立具有 [匯入] 或 DirectQuery 模式的語意模型,因此無法用來發佈至使用 Direct Lake 模式的現有資料集。 請遵循此連結以深入了解。 |
'<euii> * </euii> ' 使用者沒有呼叫探索方法的權限。 |
請確定你發行至具有進階版授權模式的 Power BI 工作區。 你無法發佈至具有 Pro 授權模式的工作區。 |
‘<euii> </euii> ’ 使用者無權在 ‘**’ 中建立新物件,或者該物件不存在。 |
你可能在 Power BI 工作區中具有檢視者角色。 檢查你是否有權建立語意模型。 如需詳細資訊,請遵循此連結。 |
「無法更新資料來源認證:[Microsoft][ThriftExtension] (14) HTTP 連線期間伺服器出現意外回應:傳回『未授權/禁止』錯誤回應,但未收到權杖過期訊息。」 在 Power BI 上編輯資料來源認證時 | 檢查你的 Databricks 工作區是否可公開存取。 如果工作區正在使用私人連結或 IP 存取清單,你可能需要設定 Power BI 內部部署閘道。 |
將 Power BI Desktop 連線至 Azure Databricks
你可以將 Power BI Desktop 連線至 Azure Databricks 叢集和 Databricks SQL 倉儲。 你也可以將 Power BI 報表發佈至 Power BI 服務,並讓使用者使用單一登入 (SSO) 來存取基礎 Azure Databricks 資料,並傳遞用來存取報表的相同 Microsoft Entra ID 認證。
需求
Power BI Desktop 2.85.681.0 或更新版本。 如果要將 Unity Catalog 管理的資料與 Power BI 搭配使用,你必須使用 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 帳戶認證。
使用 Partner Connect 將 Power BI Desktop 連線至 Azure Databricks
只要按幾下滑鼠,你就可以使用 Partner Connect 從 Power BI Desktop 連線至叢集或 SQL 倉儲。
確定你的 Azure Databricks 帳戶、工作區和已登入的使用者符合 Partner Connect 的需求。
在側邊欄中,按一下 [Partner Connect]。
按一下 [Power BI] 磚。
在 [連線至合作夥伴] 對話方塊中,針對 [計算] 選擇你要連線的 Azure Databricks 計算資源名稱。
選擇 [下載連線檔案]。
開啟下載的連線檔案,這將啟動 Power BI Desktop。
在 Power BI Desktop 中,輸入你的驗證認證:
- 個人存取權杖:輸入你的 Azure Databricks 個人存取權杖。
- Microsoft Entra ID:按一下 [登入],然後遵循畫面上的指示。
- 使用者名稱/密碼:不適用。
按一下 [連線]。
從 Power BI 導覽選取要查詢的 Azure Databricks 資料。
手動將 Power BI Desktop 連線至 Azure Databricks
根據你選擇的驗證方法,遵循這些指示,來使用 Power BI Desktop 連線至叢集或 SQL 倉儲。 在 [DirectQuery] 模式中使用 Power BI 時,建議使用 Databricks SQL 倉儲。
注意
如果要使用 Power BI Desktop 更快速地連線,請使用 Partner Connect。
開啟 Power BI Desktop。
按一下 [取得資料] 或 [檔案] > [取得資料]。
按一下 [取得資料以開始使用]。
搜尋 Databricks,然後按一下連接器:
- Azure Databricks
按一下 [連線]。
輸入 [伺服器主機名稱] 和 [HTTP 路徑]。
選取你的 [資料連線模式]。 如需有關 [匯入] 與 [DirectQuery] 之間差異的資訊,請參閱在 Power BI Desktop 中使用 DirectQuery。
按一下 [確定]。
按一下你的驗證方法:
- 個人存取權杖:輸入你的 Azure Databricks 個人存取權杖。
- Microsoft Entra ID:按一下 [登入],然後遵循畫面上的指示。
- 使用者名稱/密碼:不適用。
按一下 [連線]。
從 Power BI 導覽選取要查詢的 Azure Databricks 資料。 如果為工作區啟用了 Unity Catalog,請先選取目錄,然後再選取結構描述和資料表。
使用自訂 SQL 查詢
Databricks 連接器提供 Databricks.Query
資料來源,可讓使用者提供自訂 SQL 查詢。
遵循使用 Power BI Desktop 進行連線中所述的步驟建立連線,並使用 [匯入] 作為資料連線模式。
在 [導覽] 中,以滑鼠右鍵按一下包含所選主機名稱和 HTTP 路徑的最上面的項目,然後按一下 [轉換資料] 以開啟 Power Query 編輯器。
在函式列中,將函式名稱
Databricks.Catalogs
取代為Databricks.Query
,並套用變更。 這會建立將 SQL 查詢用作參數的 Power Query 函式。在參數欄位中輸入的 SQL 查詢,然後按下 [叫用]。 這會執行查詢,並使用查詢結果作為內容來建立新的資料表。
使用 Power BI 服務存取 Azure Databricks 資料來源
將報表發佈至 Power BI 服務時,你會使用個人存取權杖連線至 Azure Databricks。 在 Power BI 服務中,你也可以啟用單一登入 (SSO),以便使用者可以透過將 Microsoft Entra ID 認證傳遞至 Azure Databricks,來存取使用 DirectQuery 儲存模式組建的報表。
將 Power BI 報表從 Power BI Desktop 發佈至 Power BI 服務。
啟用對報表和基礎資料來源的單一登入 (SSO) 存取。
- 移至 Power BI 服務 中報表的基礎 Azure Databricks 資料集,展開 [資料來源認證],然後按一下 [編輯認證]。
- 在 [組態] 對話方塊中,選取 [報表檢視者只能使用直接查詢透過自己的 Power BI 身分識別存取此資料來源],然後按一下 [登入]。
選取此選項後,將使用 DirectQuery 處理對資料來源的存取,並使用存取報表的使用者的 Microsoft Entra ID 身分識別進行管理。 如果未選取此選項,則只有你 (已發佈報表的使用者) 才能存取 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."
如果要修正此錯誤,請完成下列步驟:
如果檔案
C:\Program Files\Microsoft Power BI Desktop\bin\ODBC Drivers\Simba Spark ODBC Driver\microsoft.sparkodbc.ini
不存在,請加以建立。將下列組態新增至你的
microsoft.sparkodbc.ini
檔案:[Driver] CheckCertRevocation=0
Power BI Delta Sharing 連接器
Power BI Delta Sharing 連接器可讓使用者透過 Delta Sharing 開放式通訊協定來探索、分析和視覺化與其共用的資料集。 此通訊協定可透過利用 REST 和雲端儲存,跨產品和平台安全地交換資料集。
如需連線指示,請參閱 Power BI:讀取共用資料。
限制
- Azure Databricks 連接器支援 Web Proxy。 不過,不支援 .pac 檔案中定義的自動 Proxy 設定。
- 在 Azure Databricks 連接器中,不支援結合 DirectQuery 模式使用
Databricks.Query
資料來源。 - Delta Sharing 連接器載入的資料必須裝入電腦的記憶體。 為確保這一點,連接器會將匯入的資料列數限制為稍早設定的 [資料列限制]。