Tableau と JDBC

Tableau では、複数のコネクタに対して JDBC (Java Database Connectivity) ドライバーがサポートされています。これらのコネクタには、Athena などの公式の名前付きコネクタと、その他の JDBC ベースのドライバーと併用する汎用コネクタ (その他のデータベース (JDBC) コネクタと呼ばれる) の両方が含まれます。

JDBC には Java が必要です。Java により、ドライバーがプラットフォームに依存しなくなります。バージョン 2020.2 以降では、すべての Tableau アプリケーションが Java ランタイムにバンドルされているので、個別にインストールする必要はありません。

注: 2020.2 より前のバージョンの Tableau Desktop を使用している場合、Java のインストール手順については、「ドライバーのダウンロード」(新しいウィンドウでリンクが開く)ページを参照してください。

JDBC コネクタのパフォーマンスの微調整

Tableau は、JDBC データ接続のカスタマイズ機能をサポートし、接続の操作性を劇的に向上させることができます。詳細については、「接続のカスタマイズと微調整」を参照してください。

JDBC 接続に対する Tableau サポート

Tableau は、特定の ODBC ドライバーまたはデータベースをその他のデータベース (JDBC) コネクタで使用することによってデータへの接続やクエリの実行が成功することを保証するわけではありません。いくつかの JDBC ドライバーでは、Tableau での完全なインタラクティブ操作を行えますが、その他は抽出の作成のみを行えます。一部の JDBC ドライバーは Tableau では機能しない場合があります。

注: Tableau は JDBC ドライバーとの接続のトラブルシューティングをサポートする、妥当なレベルのカスタマー サポートを提供しますが、特定の JDBC ドライバーを操作するためのコネクタを作成またはカスタマイズすることはできません。

よくある質問

一般的ないくつかの問題と解決手順のリストを次に示します。

「Java が見つかりません」というメッセージが表示されます。何を意味しているのでしょうか?

このエラーは、2020.2 よりも前のバージョンの Tableau を使用している場合や、Windows で Kerberos を使用している場合に発生することがあります。コネクタ用に正しいバージョンの Java をインストールする手順については、「ドライバーのダウンロード」(新しいウィンドウでリンクが開く)ページを参照してください。

バージョン 2020.2 以降では、すべての Tableau アプリケーションが Java ランタイムにバンドルされているので、このエラーは発生しません。

「ドライバーが見つかりません」というメッセージが表示されます。どうすればよいでしょうか?

次のいずれかのパスで、ドライバーと依存するすべてのライブラリをインストールします。

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

Tableau を実行しているユーザーまたは Tableau Service ユーザーがドライバーを読み取れることを確認します。

Tableau 用に複数の JDBC ドライバーをインストールしていますが、接続に問題があります。どうすればよいでしょうか?

Tableau 用に複数の JDBC ドライバーをインストールしている場合、ドライバーが同じサード パーティ製ライブラリの異なるバージョンを使用する可能性があります。これにより、予測できない状況で問題が発生する場合があります。JDBC ドライバー フォルダーに複数の JDBC ドライバーがインストールされているとき、接続中に未知のエラーが発生した場合は、次の手順を使用すると、それらのドライバーを分離できます。

次のライブラリが JDBC フォルダーにインストールされているとします。

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

Postgres ドライバーから Athena ドライバーを分離するには、これらのドライバーを次のような別々のサブディレクトリにインストールします。

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

ドライバーを移動した後、Tableau を再起動します。

“ClassNotFoundException” というメッセージ (またはそれに似たメッセージ) が表示されます。どうすればよいでしょうか?

Java 11 と互換性がない JDBC ドライバーを実行している場合、Tableau Server の実行中に問題が生じる可能性があります。

問題の原因が Java 11 であると思われる場合は、次の手順を実行します。

  1. Java 64 ビット JRE (Java Runtime 環境) または JDK (Java 開発キット) を AdoptOpenJDK からダウンロードします。
    1. https://adoptopenjdk.net/releases.html に移動します。
    2. [OpenJDK 11] > Hotspot の順に選択します。
    3. [Other Platforms (その他のプラットフォーム)]を選択して、オプションの完全なリストを表示します。
    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

プロキシの問題を解決する方法を教えてください。

バージョン 2019.4 以降では、Windows で Tableau を実行するときに、JavauseSystemProxies オプションを有効にすると、Tableau がプロキシ設定を読み取ります。

場合によっては、プロキシ設定を読み取ると、問題が発生する可能性があります。たとえば、[すべてのプロトコル用に同じプロキシ サーバーを使用する] を選択した場合、Java 仮想マシンは SOCKS プロキシを使用しようとします。

この問題を解決するための手順については、Tableau ナレッジ ベースの記事「Tableau Desktop でプロキシ経由により 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 ファイルを編集して、自動コミットを無効にします。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 コネクタの場合は、自動コミットが既定で設定されているため必要ありません。

    JDBC 接続に TDC ファイルを使用する方法の詳細については、「接続のカスタマイズと微調整」を参照してください。

関連項目

その他のデータベース (JDBC) – 汎用 JDBC コネクタを使用してデータに接続する方法について説明しています。

接続のカスタマイズと微調整 - TDC ファイルと プロパティ ファイルを使用して接続をカスタマイズする方法について説明しています。

JDBC 接続の一方向 SSL – 証明書と JDBC ドライバーを使用して SSL でサーバーにアクセスする手順について説明しています。

Tableau JDBC 機能のカスタマイズの参考資料 – データ ソースによりサポートされる Tableau 機能の定義に使用できるカスタマイズをリストしています。

ありがとうございます!