共用方式為


將 Tableau 連線至 Azure Databricks

本文說明如何將 Azure Databricks 連線至 Tableau Desktop,並包含其他 Tableau 版本的相關信息。 您可以透過 合作夥伴連線 進行連線,也可以手動連線。

當您搭配 Tableau 使用 Azure Databricks 作為數據源時,您可以提供功能強大的互動式分析,藉由調整至大型數據集,將數據科學家和數據工程師的貢獻帶入商務分析師。

若要瞭解如何將Tableau線上至 Azure Databricks,請參閱 Tableau Databricks 檔

需求

使用合作夥伴連線連線到Tableau Desktop

只要按幾下滑鼠,您就可以使用 Partner Connect 將計算或 SQL 倉儲與 Tableau Desktop 連線。

  1. 請確定您的 Azure Databricks 帳戶、工作區和已登入的使用者都符合 Partner Connect 的需求
  2. 在提要欄位中,按兩下 [合作夥伴連線按鈕合作夥伴連線]。
  3. 按兩下 [Tableau] 圖格。
  4. 在 [ 連接到合作夥伴] 對話框中,針對 [計算] 選擇您想要連線的 Azure Databricks 計算資源名稱。
  5. 選擇 [ 下載連線檔案]。
  6. 開啟下載的連線檔案,以啟動TableauDesktop。
  7. 在 Tableau Desktop 中,輸入您的驗證認證,然後按兩下 [ 登入]:
    • 若要使用Microsoft Entra ID 令牌,請輸入 Username的令牌,以及您Microsoft Password 的 Entra 識別碼令牌。
    • 若要使用 Azure Databricks 個人存取令牌,請在 [用戶名稱] 輸入令牌,併為 [密碼] 輸入個人存取令牌。
    • 若要使用您的Microsoft Entra ID 認證,請按兩下 [編輯連線],按兩下 [資料] 索引標籤中的資料庫,然後在 [驗證] 清單中選取 [Microsoft Entra ID]。
      • 針對 Tableau Desktop 2021.1 和更新版本:

        1. 如果您 在 Azure Government 上使用 Microsoft Entra 識別碼 (先前稱為 Azure Active Directory) B2B 來賓帳戶 或 Azure Databricks,您可以直接輸入 https://login.microsoftonline.com/common 作為 OAuth 端點

        設定驗證

        1. 如果您在 Azure Government 上使用Microsoft Entra ID B2B 來賓帳戶或 Azure Databricks,請連絡系統管理員以取得專用的Microsoft Entra ID 倉儲。

        注意

        如果您不是系統管理員,則會 顯示 [需要管理員核准 ] 錯誤。 要求雲端應用程式管理員或應用程式管理員授與您連線至Tableau的許可權,然後再次嘗試登入。

        如果您的Microsoft Entra ID 帳戶已啟用管理員同意工作流程,Tableau Desktop 會提示您要求存取 Tableau。 雲端應用程式管理員或應用程式管理員核准要求之後,請嘗試再次登入。

成功與Tableau Desktop 連線之後,您可以在這裡停止。 本文的其餘資訊涵蓋 Tableau 的其他資訊,例如手動與 Tableau Desktop 聯機、在 Linux 上設定 Tableau Server、如何使用 Tableau Online,以及使用 Tableau 的最佳做法和疑難解答。

手動聯機到 Tableau Desktop

請遵循這些指示,使用Tableau Desktop 連線到計算或 SQL 倉儲。

注意

若要更快與 Tableau Desktop 連線,請使用合作夥伴連線。

  1. 啟動Tableau Desktop。

  2. 按兩下 [ 檔案 > 新增]。

  3. 在 [ 數據] 索引標籤上,按兩下 [ 連線到數據]。

  4. 在連接器清單中,按兩下 [Databricks]。

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

  6. 針對 [ 驗證],選擇您的驗證方法,輸入您的驗證認證,然後按兩下 [ 登入]。

    • 若要使用Microsoft Entra 標識符令牌,請選取 [個人存取令牌],然後輸入您的 Microsoft [輸入密碼標識符] 令牌

    • 若要使用 Azure Databricks 個人存取令牌,請選取 [個人存取令牌],然後輸入您的個人存取令牌 作為 [密碼]。

    • 若要使用您的 Microsoft Entra 識別符認證,請選取 [Microsoft Entra ID]。

      針對 Tableau Desktop 2021.1 和更新版本:

      注意

      如果您不是系統管理員,則會 顯示 [需要管理員核准 ] 錯誤。 要求雲端應用程式管理員或應用程式管理員授與您連線至Tableau的許可權,然後再次嘗試登入。

      如果您的Microsoft Entra ID 帳戶已啟用管理員同意工作流程,Tableau Desktop 會提示您要求存取 Tableau。 雲端應用程式管理員或應用程式管理員核准要求之後,請嘗試再次登入。

    如果您的工作區已啟用 Unity 目錄,請另外設定預設目錄。 在 [進階] 索引標籤的 [連線] 屬性中,新增 Catalog=<catalog-name>。 若要變更預設目錄,請在 [ 初始 SQL ] 索引標籤中輸入 USE CATALOG <catalog-name>

成功與Tableau Desktop 連線之後,您可以在這裡停止。 本文的其餘資訊涵蓋 Tableau 的其他資訊,例如在 Linux 上設定 Tableau Server、如何使用 Tableau Online,以及使用 Tableau 的最佳做法和疑難解答。

Linux 上的 Tableau Server

編輯 /etc/odbcinst.ini 以包含下列專案:

[Simba Spark ODBC Driver 64-bit]
Description=Simba Spark ODBC Driver (64-bit)
Driver=/opt/simba/spark/lib/64/libsparkodbc_sb64.so

注意

Linux 上的 Tableau Server 建議使用 64 位處理架構。

在 Tableau Online 上發佈和重新整理活頁簿

本文說明如何將活頁簿從Tableau Desktop 發佈至 Tableau Online ,並在數據源變更時保持更新。 您需要Tableau Desktop和Tableau Online 帳戶中的活頁簿

  1. 從Tableau Desktop擷取活頁簿的數據:在Tableau Desktop中,顯示您要發佈的活頁簿,按兩下 [數據><data-source-name>>擷取數據]。
  2. 在 [擷 取數據] 對話框中,按兩下 [ 擷取]。
  3. 流覽至您想要儲存所擷取數據之本機計算機上的位置,然後按兩下 [ 儲存]。
  4. 將活頁簿的數據源發佈至Tableau Online:在Tableau Desktop中,按兩下 [伺服器發佈數據源<data-source-name>>]。>
  5. 如果 [Tableau Server 登入] 對話框顯示,請按兩下 [Tableau Online] 連結,然後依照畫面上的指示登入Tableau Online。
  6. 在 [將數據源發佈至 Tableau Online] 對話框中,按兩下 [重新整理未啟用] 旁[編輯] 連結。
  7. 在顯示的飛出視窗方塊中,針對 [驗證],將 [未啟用重新整理] 變更[允許重新整理存取]。
  8. 按兩下此飛出視窗以外的任何位置來隱藏它。
  9. 選取 [ 更新活頁簿] 以使用已發佈的數據源
  10. 按一下發行。 數據源會顯示在Tableau Online 中。
  11. 在Tableau Online的 [ 發佈完成 ] 對話框中,按兩下 [排程],然後遵循螢幕上的指示。
  12. 將活頁簿發佈至Tableau Online:在Tableau Desktop中,顯示您要發佈的活頁簿,按兩下 [ 伺服器 > 發布活頁簿]。
  13. 在 [ 將活頁簿發佈至 Tableau Online ] 對話框中,按兩下 [ 發佈]。 活頁簿會顯示在Tableau Online 中。

Tableau Online 會根據您設定的排程檢查數據源的變更,並在偵測到變更時更新已發佈的活頁簿。

如需詳細資訊,請參閱Tableau網站上的下列內容:

最佳做法和疑難排解

優化Tableau查詢的兩個基本動作如下:

  • 減少在單一圖表或儀錶板中查詢和可視化的記錄數目。
  • 減少Tableau在單一圖表或儀錶板中傳送的查詢數目。

決定要先嘗試哪一個取決於您的儀錶板。 如果您有數個不同的圖表供相同儀錶板中的個別使用者使用,則Tableau可能會傳送太多查詢給 Azure Databricks。 如果您只有數個圖表,但它們需要很長的時間才能載入,Azure Databricks 可能會傳回太多記錄,才能有效地載入。

Tableau Desktop 和 Tableau Server 皆提供 Tableau 效能錄製,可協助您瞭解效能瓶頸的位置,方法是識別執行特定工作流程或儀錶板時造成延遲的程式。

啟用效能錄製以偵錯任何Tableau問題

例如,如果查詢執行是問題,您知道它必須與數據引擎進程或您要查詢的數據源有關。 如果視覺效果配置執行速度緩慢,您就知道它是 VizQL。

如果效能記錄指出延遲在執行查詢時,Azure Databricks 可能會傳回結果或 ODBC/Connector 重疊將數據處理至 VizQL 的 SQL 所花費太多時間。 發生此情況時,您應該分析所傳回的內容,並嘗試變更分析模式,讓每個群組、區段或發行項擁有儀錶板,而不是嘗試將所有專案塞進一個儀錶板,並依賴快速篩選。

如果效能不佳是因為排序或視覺效果配置所造成,問題可能是儀錶板嘗試傳回的標記數目。 Azure Databricks 可以快速傳回一百萬筆記錄,但Tableau可能無法計算配置並排序結果。 如果這是問題,請匯總查詢並向下切入至較低層級。 您也可以嘗試更大的計算機,因為Tableau只會受限於其執行所在的機器上的實體資源。

如需效能錄製器的深入教學課程,請參閱 建立效能錄製

Tableau Server 與 Tableau Desktop 的效能

一般而言,在Tableau Desktop上執行的工作流程在Tableau Server 上不會更快。 在 Tableau Desktop 上未執行的儀錶板將不會在 Tableau Server 上執行。

使用桌面是較佳的疑難解答技術,因為Tableau Server在疑難解答時有更多的程式需要考慮。 如果專案在 Tableau Desktop 中運作,但不在 Tableau Server 中運作,您可以安全地將問題縮小到 Tableau Server 中不在 Tableau Desktop 中的程式。

組態

根據預設,來自連線 URL 的參數會覆寫 Simba ODBC DSN 中的參數。 有兩種方式可以從Tableau自定義 ODBC 組態:

  • .tds 單一數據源的檔案:

    1. 請遵循儲存數據源中的指示,匯出.tds數據源的檔案。
    2. 在檔案中.tds尋找屬性行odbc-connect-string-extras=''並設定參數。 例如,若要啟用 AutoReconnectUseNativeQuery,您可以將行變更為 odbc-connect-string-extras='AutoReconnect=1,UseNativeQuery=1'
    3. 重新連線以 .tds 重載檔案。

    計算資源已優化,以使用較少的堆積記憶體來收集大型結果,因此每個擷取區塊的數據列數目會比 Simba ODBC 的預設值多。 附加 RowsFetchedPerBlock=100000' 至 屬性的值 odbc-connect-string-extras

  • .tdc 所有資料源的檔案:

    1. 如果您從未建立檔案.tdc,您可以將 TableauTdcExample.tdc 新增至資料夾 Document/My Tableau Repository/Datasources
    2. 將檔案新增至所有開發人員的TableauDesktop安裝,以便在共用儀錶板時運作。

優化圖表 (工作表)

有許多戰術圖表優化可協助您改善Tableau工作表的效能。

對於不會經常變更且不打算與其互動的篩選,請使用可加速運行時間的內容篩選。 另一個良好的經驗法則是使用 if/else 語句, case/when 而不是查詢中的語句。

Tableau 可以將篩選向下推入數據源,以提升查詢速度。 如需數據源下推篩選的詳細資訊,請參閱 使用參數 篩選多個數據源和 篩選多個數據源 的數據。

嘗試避免數據表計算,因為它們會掃描完整的數據集。 如需數據表計算的詳細資訊,請參閱 使用數據表計算轉換值。

優化儀錶板

以下是您可以套用以改善Tableau儀錶板效能的一些秘訣和疑難解答練習。

使用Tableau儀錶板連線到 Azure Databricks,個別儀錶板上的快速篩選可提供數個不同的使用者、函式或區段,可能是常見的問題來源。 您可以將快速篩選附加至儀錶板上的所有圖表。 有五個圖表的儀錶板上,有一個快速篩選會導致至少 10 個查詢傳送至 Azure Databricks。 當新增更多篩選時,這可能會增加至較大的數位,而且可能會造成效能問題,因為Spark不是為了處理相同時間點開始的許多並行查詢而建置。 當您使用的 Azure Databricks 叢集或 SQL 倉儲不足以處理大量查詢時,這會變得更加有問題。

作為第一個步驟,我們建議您使用Tableau效能錄製來針對可能造成問題的原因進行疑難解答。

如果效能不佳是因為 排序視覺效果配置所造成,問題可能是儀錶板嘗試傳回的標記數目。 Azure Databricks 可以快速傳回一百萬筆記錄,但Tableau可能無法計算配置並排序結果。 如果這是問題,請匯總查詢並向下切入至較低層級。 您也可以嘗試更大的計算機,因為Tableau只會受限於其執行所在的機器上的實體資源。

如需有關在 Tableau 中向下切入的資訊,請參閱 向下切入至詳細數據

一般而言,看到許多細微標記通常是分析模式不佳,因為它不提供深入解析。 從較高層級的匯總向下切入更有意義,並減少需要處理和可視化的記錄數目。

使用動作將儀錶板優化

使用Tableau _actions按鍵標記(例如地圖上的狀態),並傳送至另一個儀錶板,根據您按兩下的狀態進行篩選。 這可減少在一個儀錶板上有多個篩選的需求,並減少需要產生的記錄數目。 (您要將動作設定為在取得要篩選的述詞之前,才會產生記錄。

如需詳細資訊,請參閱 動作6 個秘訣,讓您的儀錶板更具效能

快取功能

快取數據是改善工作表或儀錶板效能的好方法。

Tableau 中的快取

Tableau 有四層快取,再回到數據,無論是在即時連線或擷取中:

  • 圖格:如果有人正在載入完全相同的儀錶板且沒有任何變更,Tableau 會嘗試針對圖表重複使用相同的磚。 這類似於Google Maps 圖格。
  • 模型:有數學計算可用來在無法使用磚的事件中產生視覺效果。 Tableau Server 會嘗試使用相同的模型。
  • 抽象:查詢的匯總結果也會儲存。 這是第三個「防禦」層級。 如果查詢傳回 Sum(Sales)、Count(orders)、Sum(Cost),在先前的查詢和未來的查詢只想要 Sum(Sales),則 Tableau 會擷取該結果並使用它。
  • 原生快取:如果查詢與另一個查詢完全相同,Tableau 會使用相同的結果。 這是快取的最後一個層級。 如果失敗,Tableau 會移至數據。

Tableau 中的快取頻率

Tableau 有系統管理設定,可快取或多或少地快取。 如果伺服器設定為 [較不常重新整理],Tableau 會將數據保留在快取中長達 12 小時。 如果設定為 [ 更經常重新整理],Tableau 會回到每個頁面重新整理的數據。

再次使用相同儀錶板的客戶,例如「星期一上午管線報表」,應該在設定為 [較不常重新整理] 的伺服器上,讓儀錶板全都使用相同的快取。

Tableau 中的快取變暖

在Tableau中,您可以設定儀錶板的訂用帳戶,讓儀錶板在檢視儀錶板之前,將快取暖。 這是因為必須轉譯儀錶板,才能產生訂用帳戶電子郵件的影像。 請參閱 使用訂用帳戶將Tableau Server快取變暖。

Tableau Desktop:錯誤 The drivers... are not properly installed 會顯示

問題:當您嘗試將Tableau Desktop 連線到 Databricks 時,Tableau 會在連線對話框中顯示錯誤訊息,其中包含驅動程式下載頁面的連結,您可以在其中找到驅動程式連結和安裝指示。

原因:您的 Tableau Desktop 安裝未執行支持的驅動程式。

解決方案:下載 Databricks ODBC 驅動程式 2.6.15 版或更新版本。

請參閱: 錯誤「驅動程式...在 Tableau 網站上未正確安裝

主要/外鍵條件約束

若要將主鍵 (PK) 和外鍵 (FK) 條件約束從 Databricks 傳播至 Tableau,您必須瞭解這兩個平臺在條件約束方面的功能和限制。

瞭解 Azure Databricks 條件約束

Databricks 支援從 Databricks Runtime 15.2 開始的主要和外鍵條件約束。 這些條件約束是參考性的,預設不會強制執行,這表示它們不會防止數據完整性違規,但可用來優化查詢並提供數據關聯性的元數據。 請參閱 宣告主鍵和外鍵關聯性

瞭解Tableau會使用條件約束來建立數據表關聯性

Tableau 不會直接強制執行主鍵和外鍵條件約束,而是使用關聯性來建立數據連線模型。 若要在 Tableau 中使用條件約束,您必須瞭解 Tableau 的數據模型提供 2 層的模型:邏輯層和實體層。 請參閱 Tableau數據模型。 下面將討論此兩層數據模型在 Azure Databricks 條件約束上被辨識為關聯性的含意。

將 Azure Databricks 連線至 Tableau

當您將 Azure Databricks 連線至 Tableau 時,Tableau 會嘗試根據現有的索引鍵條件約束和比對字段,在數據表之間的實體層建立關聯性。 Tableau 會根據 Azure Databricks 中定義的主鍵和外鍵條件約束,自動嘗試在實體層偵測及建立關聯性。 如果未定義任何索引鍵條件約束,Tableau 會使用相符的數據行名稱來自動產生聯結。 在邏輯層中,只會使用單一數據行名稱比對來判斷關聯性。 在實體層中,此數據行名稱比對會偵測簡單(單一數據行)和複合式(多數據行)索引鍵關聯性。

如果 Tableau 無法判斷相符字段,您必須藉由提供數據行、條件和條件約束類型,手動指定兩個數據表在物理層的聯結關聯性。 若要從 UI 中的邏輯層移至實體層,請按兩下邏輯層上的數據表。

其他資源