SAP HANA

本文介紹如何將 Tableau 連線到 SAP HANA 資料庫並設定資料來源。

附註:此連接器會使用適用於 Mac、Linux 和 Windows 的 JDBC 驅動程式。適用於 Windows 的 JDBC 驅動程式是 Tableau 版本 2021.1 中的新增功能。建議的 JDBC 驅動程式版本為 2.3.4。

開始之前

在開始之前,請收集以下連線資訊:

  • 您是在建立單一節點還是多節點連線?
    • SingleNode:資料庫伺服器名稱和連接埠號碼。
    • MultiNode:資料庫伺服器名稱、主機名稱和連接埠號碼。
  • 驗證:
    • Windows 驗證(僅限 Windows)
    • Kerberos(僅限 Mac)
    • 使用者名稱和密碼
    • OAuth 2.0/OIDC。有關如何設定此功能的更多資訊,請參閱 適用於 SAP HANA 的外部 OAuth
  • 是否要連線到 SSL 伺服器?
  • (可選)要在每次 Tableau 連線時執行的初始 SQL 陳述式

需要驅動程式

此連接器需要驅動程式才能與資料庫通訊。如果電腦上未安裝該驅動程式,Tableau 會在連線對話方塊中顯示一條訊息,其中包含指向驅動程式下載(連結在新視窗開啟)頁面的連結,您可在該頁面中找到驅動程式連結和安裝說明。

進行連線並設定資料來源

  1. 啟動 Tableau,並在「連線」下選取「SAP HANA」

    1. 選取連線的類型:

      • 單一節點 - 輸入為要與之連線的資料庫提供主機服務的伺服器名稱,如果使用的是非預設連接埠,則還需要輸入連接埠號碼。

      • MultiNode : 輸入每個伺服器的主機名稱和連接埠號碼,用逗號分隔。例如:

        host1:30015,host2:30015,host3:30015

    2. 選取登入到伺服器的方式:

      Windows

      • 若您的環境支援單一登入 (SSO),請選取「使用 Windows 驗證」
      • 若伺服器使用密碼保護,且您不在 Kerberos 環境中,且必須輸入使用者名稱和密碼,則請選取「使用特定使用者名稱和密碼」
      • 選取「使用 OAuth 登入」使用 OAuth 2.0/OIDC 將外部 IdP 的身份聯合到 HANA,然後選取您設定的「OAuth 提供者」。有關如何設定此功能的更多資訊,請參閱 適用於 SAP HANA 的外部 OAuth

      Mac:

      • 選取「Kerberos」
      • 選取「使用特定使用者名稱和密碼」
      • 選取「使用 OAuth 登入」使用 OAuth 2.0/OIDC 將外部 IdP 的身份聯合到 HANA,然後選取您設定的「OAuth 提供者」。有關如何設定此功能的更多資訊,請參閱 適用於 SAP HANA 的外部 OAuth
    3. 連線到 SSL 伺服器時選取「需要 SSL」選項。

    4. (選擇性)選取「初始 SQL」以指定要在每次連線開始時(例如開啟工作簿、重新整理擷取、登入到 Tableau Server 或發佈到 Tableau Server 時)執行的 SQL 命令。有關詳情,請參閱執行初始 SQL

    5. 選取「登入」

      如果 Tableau 無法建立連線,請驗證您的認證是否正確。如果仍然無法連線,則說明您的電腦在定位伺服器時遇到問題。請聯絡網路管理員或資料庫管理員以取得更多協助。

  2. 在資料來源頁面上,執行下列操作:

    1. (可選)在頁面頂端選取預設資料來源名稱,然後輸入要在 Tableau 中使用的唯一資料來源名稱。舉例來說,使用可幫助其他資料來源使用者推斷出要連線的資料來源的資料來源命名約定。

    2. 「結構描述」下拉式清單中,選取搜尋圖示,或在文字方塊中輸入結構描述名稱並選取搜尋圖示,然後選取結構描述。

    3. 「表」文字方塊中,選取搜尋圖示,或輸入表名稱並按一下搜尋圖示,然後選取表。

      Tableau Desktop 還支援連線到 SAP HANA 表函數,這些函數出現在「資料來源」頁面左側窗格中的「預存程序」下。

    4. 將表拖曳至畫布,然後選取工作表索引標籤開始分析。

      預設顯示為欄標籤。

      使用自訂 SQL 連線到特定查詢,而非整個資料來源。有關詳情,請參閱連線到自訂 SQL 查詢

      附註:使用分析檢視建立自我聯結後,如果其中一個表包含變數,請確保包含變數的表位於左側。否則,聯接可能無法返回預期結果。

登入到 Mac

如果在 Mac 上使用 Tableau Desktop,則在輸入伺服器名稱進行連線時,請使用完整網域名稱(例如 mydb.test.ourdomain.lan)而不是相對的網域名稱(例如 mydb 或 mydb.test)。

或者,可以將網域新增到 Mac 電腦的「搜尋網域」的清單中,以便在您連線時,只需要提供伺服器名稱。若要更新「搜尋網域」的清單,請轉到「系統喜好設定」>「網路」>「進階」,然後開啟「DNS」索引標籤。

將 SAP HANA 層級階層轉換為使用者階層

建立 SAP HANA 資料來源或工作簿時,可以在 Tableau 中建立僅用於 Tableau 的個人專屬階層。從版本 2019.4 開始,Tableau 支援在 SAP HANA 中建立的級別層次階層。當您將 Tableau 連線至具有層級階層的 SAP HANA 計算檢視時,SAP HANA 層級階層的結構就會出現在「資料」窗格中。如果要修改 Tableau 中的 SAP HANA 層次階層,必須將 SAP HANA 層次階層轉換為使用者階層。

警告:將 SAP HANA 層次階層轉換為使用者階層後,將無法反轉此程序。如果決定要使用 SAP HANA 層次階層,而不是使用者階層,則必須重新執行一次。

要轉換為使用者階層,請依照下列步驟操作:

  1. 「資料」窗格中,選取層次階層。
  2. 在下拉式功能表中,選取「轉換為使用者階層」

自訂 JDBC 連線

在 Mac 和 Linux 中,SAP HANA 使用 JDBC 連線。可以使用 .properties 檔案自訂 JDBC 連線。有關詳細資訊,請參閱 Tableau 社群中的使用 .properties 檔案自訂 JDBC 連線(連結在新視窗開啟)

在 Mac 上安裝受信任的 SSL 憑證

如果要使用 SSL/TLS 對 Tableau Desktop 和資料庫之間的通訊進行加密,則必須在 Java 憑證信任存放區新增憑證。如果資料庫使用自簽名憑證,則必須這樣做。要使用 SSL/TLS 將 Tableau Desktop 連線至資料庫,請按照以下步驟操作:

  1. 啟動 Terminal 應用程式並導覽至您的 Java 主目錄。它位於 /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home,除非您已安裝 JDK 或設定 JAVA_HOME 環境變量。

  2. 執行以下命令:

    bin/keytool -importcert -keystore cacerts -alias <certificate name>  -file <path to certificate file>

附註:從 Tableau 版本 2020.2 開始,您可以將自訂憑證匯入至「系統」的金鑰鏈中。有關詳細資訊,請參閱「用於 JDBC 連線的單向 SSL」

選取變數和輸入參數

如果您使用的表包括必需或可選的變數或參數,則「變數和輸入參數」對話方塊將開啟。

  • 必需的變數和參數將顯示其目前值或「*必要項」

  • 可選的變數和參數顯示其目前值或顯示為空白。

  • 透過選中「提示」下的核取方塊,在工作簿開啟時提示輸入變數。

選取一個變數或參數並為其鍵入或選取值。為所有必要項值和您要包括的任何可選值重複此步驟,然後選取「確定」

附註:您可以使用以 SQL 查詢為基礎的 SAP HANA 提示。

支援 SAP HANA 單一登入 (SSO)

將 SAP HANA 設定為支援單一登入 (SSO) 後,即可存取資料、發佈資料來源並將工作簿發佈到 Tableau Server,而無需重新輸入您的使用者名稱和密碼。要使用 SSO,需要使用Viewer 認證驗證,將資料來源和工作簿發佈至 Tableau Server。要啟用Viewer 認證驗證,您必須使用 Windows 電腦上的 Windows 驗證連線至 SAP HANA,或在 Mac 上使用 Kerberos。有關詳情,請參閱發佈至 Server

登入到伺服器

您可以輸入伺服器名稱登入 SAP HANA 伺服器。也可以在 Windows 計算機上選取「使用 Windows 身份驗證」或在 Mac 中選取「Kerberos」。要完成,請選取「登入」

發佈至 Server

在啟用了 SSO 的環境中,將其發佈至 Tableau Server 時不必輸入認證即可存取資料來源或工作簿。要在將資料來源或工作簿發佈到 Tableau Server 時啟用 SSO,請執行以下步驟:

  1. 選取「伺服器」>「發佈資料來源」「伺服器」>「發佈工作簿」
  2. 「資料來源」中按一下「編輯」

  3. 在「管理資料來源」對話方塊中,執行以下操作:

    • 選取「發佈類型」「嵌入工作簿中」「單獨發佈」

    • 「驗證」選取「Viewer(檢視器)認證」

  4. 選擇「發佈」

如何在使用 SSO 時重新整理 HANA 擷取

您可以使用 Tableau 資料擷取公用程式來自動執行擷取重新整理工作。例如,以下命令可重新整理名為「mydatasource」的已發布 SAP HANA 擷取。此命令指定以下內容:

  • Tableau Server 的名稱

  • 要重新整理的資料來源的名稱

C:\Program Files\Tableau\Tableau 10.2\bin>tableau refreshextract --server https://mytableauserver --datasource mydatasource

有關該公用程式的詳情,請參閱Tableau 資料擷取命令列公用程式

效能提示

您可以通過啟用查詢參數繫結來提高效能。

使用繫結變數

要提高效能,Tableau 可針對您的 SAP HANA 查詢使用繫結變數。

  • 查詢:HANA 可以編譯查詢一次並多次執行。
  • 如果是多節點 HANA 部署:參數化查詢會以最佳化的路由傳送至正確節點。

如要啟用此功能,Tableau Server 管理員可以在 TDC 檔案中新增 CAP_ODBC_QUERY_USE_PREPARE_PARAMETER_MARKER 功能。

附註:此功能需要 Tableau 2018.3 或更高版本。
可以將 CAP_ODBC_QUERY_USE_PREPARE_PARAMETER_MARKER 與 JDBC 和 ODBC 一起使用。

使用欄中繼資料收集

Tableau 支援欄中繼資料收集,從而改善某些檢視的載入時間。

當 Tableau 讀取表或檢視的欄中繼資料時,依預設會使用表上的已準備查詢。

附註:欄中繼資料收集通常是最準確的選項,但處理時間可能更長。

您可以使用 TDC 檔案停用已準備查詢的中繼資料。使用欄中繼資料收集時,Tableau 會使用 ODBC API、SQLColumns。雖然此方法速度更快,但可能不太準確。使用此選項時應謹慎小心,而且只有在看起來適合您資料的情況下才採用。使用以下功能通過 SQLColumns 啟用欄中繼資料:

  • CAP_ODBC_METADATA_SUPPRESS_EXECUTED_QUERY
  • CAP_ODBC_METADATA_SUPPRESS_PREPARED_QUERY

 

附註:若要將這些功能應用於臨時表,則必須安裝 Tableau Server 2019.3.6 或更新版本。

SAP HANA 的 TDC 範例

您的 TDC 檔案看起來可能類似於以下範例。

<?xml version='1.0' encoding='utf-8' ?>
<connection-customization class='saphana' enabled='true' version='9.3'>
<vendor name='saphana' />
<driver name='saphana' />
<customizations>
<customization name='CAP_ODBC_QUERY_USE_PREPARE_PARAMETER_MARKER' value='yes' />
</customizations>
</connection-customization>

有關使用 TDC 檔案的詳情,請參閱自訂和調整 ODBC 連線主題中的「建立 TDC 檔案」。另請參閱名為「將 TDC 檔案與 Tableau Server 搭配使用」的知識庫文章。

重要提示:確認在 connection-customization 行中包含 enabled=’true’。

另請參閱

感謝您的意見反應!已成功提交您的意見回饋。謝謝!