SAP HANA

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

附註:此連接器會使用適用於 Mac、Linux 和 Windows 的 JDBC 驅動程式。適用於 Windows 的 JDBC 驅動程式是 Tableau 版本 2021.1 中的新增功能。適用於 Mac 和 Linux 的 JDBC 驅動程式已在 Tableau 版本 2020.2 中引入。

開始之前

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

  • 您是在建立單一節點還是多節點連線?

    • 單一節點:託管要連線到的資料庫的伺服器的名稱,以及埠號(如果使用非預設埠)

    • 多節點:託管要連線到的資料庫的伺服器的名稱和埠號

  • 驗證方法:

    • Windows:Windows 驗證或使用者名和密碼

    • Mac:Kerberos 或使用者名和密碼

  • 是否要連線到 SSL 伺服器?

  • (可選)要在每次 Tableau 連線時執行的初始 SQL 陳述式

需要驅動程式

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

進行連線並設定資料來源

  1. 啟動 Tableau,並在「連線」下選取「SAP HANA」。有關資料連線的完整清單,請在「至伺服器」下選取「更多」。然後執行以下操作:

    1. 選取連線的類型:

    2. 指定要如何登入到伺服器:

      在 Windows 上:

      • 如果您的環境支援單一登入 (SSO) ,請選取「使用 Windows 驗證」。有關單一登入和環境要求的詳情,請參閱支援 SAP HANA 單一登入 (SSO)

      • 或者,選取「使用特定使用者名和密碼」。如果伺服器有密碼保護,而您不在 Kerberos 環境中,則您必須輸入使用者名和密碼。

      在 Mac 上:選取「Kerberos」,或者選取「使用特定使用者名和密碼」

      連線到 SSL 伺服器時選取「需要 SSL」選項。

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

    4. 選取「登入」

      如果 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 層級階層轉換為使用者階層

在所有的 Tableau 版本中,當您建立 SAP HANA 資料來源或工作簿時,您都可以在 Tableau 中建立僅用於 Tableau 中的個人專屬階層。

從 Tableau 2019.4 開始,除了支援在 Tableau 中建立您自己使用的階層以外,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 連線,而您可以使用屬性檔案對此連線進行自訂。有關詳情,請參閱 Tableau 社群中的使用屬性檔案自訂 JDBC 連線(Link opens in a new window)

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

如果要使用 SSL/TLS 對 Tableau Desktop 和資料庫之間的通訊進行加密,您可能需要將憑證新增到 Java 憑證信任存放區。如果資料庫使用自簽名憑證,則必須這樣做。

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

若要使用 SSL/TLS 將 Tableau Desktop 連線至資料庫,請按照以下步驟操作:

  1. 啟動終端應用程式,並巡覽到 Java Home 目錄,該目錄通常位於 /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home,除非您安裝了 JDK 或設定了 JAVA_HOME 環境變數。

  2. 執行以下命令。(您可能需要使用 sudo 終端命令,管理可使用該命令以其他使用者(例如 root)身分執行命令。

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

有關安裝受信任憑證的詳情,請查閱 Java 執行時環境的文件。

選取變數和輸入參數

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

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

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

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

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

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

支援 SAP HANA 單一登入 (SSO)

如果 SAP HANA 設定為支援單一登入 (SSO),在登入到 SAP HANA 伺服器之後,您可以存取資料,並將資料來源和工作簿發佈到 Tableau Server,而不必重新輸入您的使用者名和密碼。而且,您可以發行資料來源或工作簿,以便採用 SSO 的其他使用者可以存取發行資料來源和工作簿,而無需輸入他們的使用者名和密碼。

若要使用 SSO,您需要使用檢視器認證驗證,將資料來源和工作簿發佈至 Tableau Server。要啟用檢視器認證驗證,您必須使用 Windows 電腦上的 Windows 驗證連接至 SAP HANA,或在 Mac 上使用 Kerberos。有關詳情,請參閱發佈至 Server

重要資訊: 您的環境必須正確設定才能支援 SAP HANA SSO:

登入到伺服器

在環境中設定 SSO 時,若要登入 SAP HANA,只需輸入伺服器名稱,選取「使用 Windows 驗證」(在 Windows 電腦上)或 Kerberos(在 Mac 上),然後按一下「登入」

發佈至 Server

在 SSO 環境中,如果您使用正確的驗證模式將資料來源或工作簿發佈到 Tableau Server,使用者不必輸入其認證即可存取該資料來源或工作簿。

若要在將資料來源或工作簿發佈到 Tableau Server 時啟用 SSO,請執行以下步驟:

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

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

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

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

  4. 按一下「發佈」

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

如果使用單一登入 (SSO) 連線到 SAP HANA,由於驗證限制的原因,您將無法在將資料來源或工作簿發佈到伺服器時排程擷取重新整理。不過,您可以使用 Tableau 擷取公用程式來自動執行擷取重新整理工作。

例如,以下命令將重新整理已發佈到 Tableau Server 的名為「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 或更新版本。然後,您可以將這些功能新增到 TDC 檔案中。

SAP HANA 的 TDC 範例

您的 TDC 檔案看起來可能類似於以下範例。在大多數情況下,您不需要使用其他功能。特別是,請務必避免 CAP_ODBC_METADATA_SUPPRESS_SQLPRIMARYKEYS_API 和 CAP_ODBC_METADATA_SUPPRESS_SQLFORIEGNKEYS_API 等功能。這些功能或許會加快初始連線時間,但稍後會導致我們產生效率較差的查詢。

<?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’。

另請參閱

感謝您的意見回饋!