Tableau 和 JDBC

Tableau 支援多個連接器的 JDBC(Java 資料庫連線)驅動程式。這包括正式命名的連接器,例如 Athena,以及用於其他 JDBC 型驅動程式的一般連接器,稱為其他資料庫 (JDBC)。

JDBC 需要 JAVA,這使得它不倚靠平台。從版本 2020.2 開始,所有 Tableau 應用程式都與 Java Runtime 時綁定,因此您不用分開安裝。

附註:若使用的是 2020.2 之前的 Tableau Desktop 版本,請參閱驅動程式下載(連結在新視窗開啟)頁面,以取得有關安裝 Java 的說明。

調整 JDBC 連接器效能

Tableau 支援自訂 JDBC 資料連線的功能,這可以改善連線體驗。有關詳情,請參閱自訂和調整連線

針對 JDBC 連線的 Tableau 支援

Tableau 不保證使用具有任何特定 JDBC 驅動程式或資料庫的其他資料庫 (JDBC) 連接器將能夠成功連線和查詢資料。有些 JDBC 驅動程式支援完整 Tableau 互動式體驗,而有些驅動程式可能僅可用於建立擷取。某些 JDBC 驅動程式可能無法與 Tableau 搭配工作。

附註:Tableau 將提供合理的客戶支援層級來說明排除使用 JDBC 驅動程式進行連線的故障,但無法建立或自訂連接器來處理特定的 JDBC 驅動程式。

常見問題

以下是一些常見問題和解決步驟的清單。

我看到一條「缺少 Java」的訊息。現在怎麼辦?

若使用的是 2020.2 之前的 Tableau 版本,或在 Windows 上使用 Kerberos,有時會發生這種情況。參閱驅動程式下載(連結在新視窗開啟)頁面獲得為連接器安裝正確版本 Java 的說明。

從版本 2020.2 開始,所有 Tableau 應用程式都與 Java Runtime 時綁定,因此您不會遇到此錯誤。

我看到一條「缺少驅動程式」的訊息。我該怎麼辦?

在以下路徑之一中安裝驅動程式及其所依賴的任何資料庫:

  • Windows:C:\Program Files\Tableau\Drivers
  • Mac: /Library/JDBC or ~/Library/JDBC
  • Linux:/opt/tableau/tableau_driver/jdbc

確保執行 Tableau 的使用者或 Tableau 服務使用者可讀取驅動程式。

我為 Tableau 安裝了多個 JDBC 驅動程式,但連線時遇到問題。我該怎麼辦?

如果您為 Tableau 安裝了多個 JDBC 驅動程式,它們可能使用不同的版本的同一第三方資料庫。這可能會導致不可預知的問題。如果在連線時出現奇怪的錯誤,且 JDBC 驅動程式資料夾中安裝了多個 JDBC 驅動程式,則可以透過以下步驟來隔離它們。

假設您在 JDBC 資料夾中安裝了這些資料庫:

  • athena-driver.jar
  • athena-dependency.jar
  • athena-dependency.so
  • postgres-driver.jar

要將 Athena 驅動程式與 Postgres 驅動程式隔離,請將它們安裝在分開的的子目錄中:

  • Athena/athena-driver.jar
  • Athena/athena-dependency.jar
  • Athena/athena-dependency.dll
  • Postgres/postgres-driver.jar

移動驅動程式後,請重新啟動 Tableau。

我看到一條「ClassNotFoundException」或類似的訊息。我該怎麼辦?

若執行的 JDBC 驅動程式與 Java 11 不相容,則可能會在執行 Tableau 時遇到問題。

如果您認為您的問題可能是由 JAVA 11 引起的:

  1. 從 AdoptOpenJDK 下載 Java 64 位元 JRE(Java 執行時環境)或 JDK(JAVA 開發工具套件):
    1. 前往 https://adoptopenjdk.net/releases.html
    2. 選擇「OpenJDK 11」,然後選擇「熱點」。
    3. 選擇「其他平台」可檢視選項的完整清單。
    4. 下載您的作業系統的 JRE 或 JDK。
  2. 在執行 Tableau 的電腦上,設定以下環境變數之一:

    TABLEAU_JAVA_HOME=C:\Program Files\AdoptOpenJDK\jre-8.0.232.09-hotspot

    TABLEAU_JAVA_HOME=C:\Program Files\AdoptOpenJDK\jdk-8.0.252.09-hotspot

如何解決 proxy 問題?

從版本 2019.4 開始,當 Tableau 在 Windows 上執行時,它透過啟用 Java 的選項 useSystemProxies 來讀取 proxy設定。

在某些情況下,這可能會造成問題。例如,如果選擇「所有協定都使用相同的 proxy 伺服器」,Java 虛擬機器將嘗試使用 SOCKS proxy。

若要尋找解決此問題的說明,請參閱 Tableau 知識庫文章Tableau 無法透過 Proxy 連線到 Amazon Athena 時出現錯誤代碼 37CE01A3。本文特別提到 Athena,但這適用於任何 JDBC 連接器。

使用 SSL 連接到伺服器時遇到問題。我可以嘗試什麼?

若看到錯誤訊息,如「找不到 SSL 驗證路徑」,可能需要設定憑證或私密金鑰。

檢視 JDBC 連線的單向 SSL 獲得使用憑證的說明 。若使用的是 Oracle JDBC 驅動程式,請參閱需要 SSL 的 Oracle JDBC 連線,以取得有關使用適當的憑證和/或金鑰進行連線的資訊。

若透過 Postgres JDBC 驅動程式使用其他資料庫 (JDBC) 連接器,建立擷取的嘗試有時會失敗。我可以嘗試什麼?

若未設定 Postgres 驅動程式擷取大小並且已啟用自動認可,則可能會遇到錯誤。驅動程式將嘗試一次處理太多資料,但無法處理。

請嘗試以下操作:

  1. 使用 defaultRowFetchSize 設定資料的擷取大小。

    有關詳情,請參閱 PostgreSQL 網站上的 JDBC 驅動程式(連結在新視窗開啟)頁面。

  2. 透過建立(或編輯現有的)TDC 檔案來停用自動認可。在 TDC 檔案中包括以下內容:

    <?xml version='1.0' encoding='utf-8' ?>
    <connection-customization class="genericjdbc" enabled="true" version="10">
    <vendor name="genericjdbc"/>
    <driver name="postgresql"/>
    <customizations>
    <customization name="CAP_JDBC_QUERY_DISABLE_AUTO_COMMIT" value="yes"/>
    </customizations>
    </connection-customization>

    附註:雖然在使用其他資料庫 (JDBC) 連接器時需要執行此步驟,但對於已命名的 Tableau 連接器則不需要,因為預設情況下已設定自動認可。

    有關將 TDC 檔案用於 JDBC 連線的詳情,請參閱自訂和調整連線

另請參閱

其他資料庫 (JDBC) – 描述如何使用一般 JDBC 連接器連線到資料。

自訂和調整連線 - 介紹如何使用 TDC 和 .properties 檔案自訂連線。

JDBC 連線的單向 SSL – 提供使用 JDBC 驅動程式憑證存取具有 SSL 伺服器的說明。

Tableau JDBC 功能自訂項參考 - 列出可用於定義資料來源支援的 Tableau 功能的自訂項。

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