SAP HANA

この記事では、Tableau を SAP HANA データベースに接続し、データ ソースを設定する方法について説明します。

注: このコネクタは、Mac、Linux、および Windows 用の JDBC ドライバーを使用します。Windows 用 JDBC ドライバーは、Tableau バージョン 2021.1 で新たに追加されました。JDBC ドライバー バージョン 2.3.4 は推奨バージョンです。

はじめる前に

開始する前に、次の接続情報を収集します。

  • シングルノード接続かマルチノード接続か。
    • シングルノード: データベース サーバー名、ポート番号。
    • マルチノード: データベース サーバー名、ホスト名、ポート番号。
  • 認証:
    • Windows 認証 (Windows のみ)
    • Kerberos (Mac のみ)
    • ユーザー名とパスワード
    • OAuth 2.0/OIDC設定方法の詳細については、「SAP HANA の外部 OAuth」を参照してください。
  • SSL サーバーに接続している場合
  • (オプション) Tableau が接続するたびに初期 SQL ステートメントを実行する

必要なドライバー

このコネクタにはデータベースとやり取りするためのドライバーが必要です。ドライバーがコンピューターにインストールされていない場合、Tableau によって「ドライバー ダウンロード」(新しいウィンドウでリンクが開く)ページへのリンクを含むメッセージが接続ダイアログ ボックスに表示されます。このページで、ドライバーのリンクとインストール手順を確認できます。

接続してデータ ソースを設定する

  1. Tableau を起動し、[接続] の下で [SAP HANA] を選択します。

    1. 以下のように接続タイプを選択します。

      • シングルノード: 接続先のデータベースをホストするサーバーの名前を入力します。デフォルト以外のポートを使用している場合は、ポート番号も入力します。

      • マルチノード: 各サーバーのホスト名とポート番号をコンマ区切りで入力します。例:

        host1:30015,host2:30015,host3:30015

    2. サーバーにサインインする方法を選択します。

      Windows:

      • 使用する環境でシングル サインオン (SSO) がサポートされている場合は、[Windows 認証を使用する] を選択します。
      • サーバーがパスワードで保護されている場合は、[Use a specific username and password (特定のユーザー名とパスワードを使用)] を選択し、Kerberos 環境ではない場合は、ユーザー名とパスワードを入力する必要があります。
      • OAuth 2.0/OIDC を使用して外部 IdP から HANA にアイデンティティをフェデレートする場合は、[Sign in using OAuth (OAuth を使用してサインイン)] を選択し、構成した [OAuth プロバイダー] を選択します。設定方法の詳細については、「SAP HANA の外部 OAuth」を参照してください。

      Mac:

      • [Kerberos] を選択します。
      • [Use a specific username and password (特定のユーザー名とパスワードを使用)] を選択します。
      • OAuth 2.0/OIDC を使用して外部 IdP から HANA にアイデンティティをフェデレートする場合は、[Sign in using OAuth (OAuth を使用してサインイン)] を選択し、構成した [OAuth プロバイダー] を選択します。設定方法の詳細については、「SAP HANA の外部 OAuth」を参照してください。
    3. SSL サーバーに接続する場合は、[SSL が必須] オプションを選択します。

    4. (任意) ワークブックを開いたときや、抽出を更新、Tableau Server にサインイン、または Tableau Server にパブリッシュするときなど、毎回接続の始めに実行する初期 SQL コマンドを指定するには、[初期 SQL] を選択します。詳細については、初期 SQL の実行を参照してください。

    5. [サインイン] を選択します。

      Tableau が接続できない場合は、認証資格情報が正しいことを確認します。引き続き接続に失敗する場合は、コンピューターにおけるサーバーの検出に問題があります。サポートが必要な場合は、ネットワーク管理者またはデータベース管理者にお問い合わせください。

  2. データ ソース ページで次の手順を行います。

    1. (任意) ページ上部にある既定のデータ ソース名を選択し、Tableau で使用する一意のデータ ソース名を入力します。たとえば、データの他のユーザーが、どのデータ ソースに接続するか推測するのに役立つ命名規則を使用します。

    2. [スキーマ] ドロップダウン リストで、検索アイコンを選択するかテキスト ボックスにスキーマ名を入力して検索アイコンを選択し、スキーマを選択します。

    3. [表] テキスト ボックスで、検索アイコンを選択するか表名を入力して検索アイコンを選択し、表を選択します。

      また、Tableau Desktop は、[データ ソース] ページで左ペインの [ストアド プロシージャ] の下に表示される SAP HANA テーブル関数への接続もサポートしています。

    4. 表をキャンバスにドラッグしてから、シート タブを選択して分析を開始します。

      デフォルトの表示は列ラベルです。

      カスタム SQL を使用して、データ ソース全体ではなく、特定のクエリに接続します。詳細については、カスタム SQL クエリへの接続を参照してください。

      注: 分析ビューで自己結合を作成するとき、テーブルのいずれかに変数が含まれている場合は、変数があるテーブルを左側にしてください。そのようにしないと、結合が期待される結果を返さないことがあります。

Mac でのサインイン

Mac で Tableau Desktop を使用する場合、サーバー名を入力して接続するときに、mydb または mydb.test などの相対ドメイン名の代わりに mydb.test.ourdomain.lan などの完全修飾ドメイン名を使用します。

また、Mac コンピューターの [検索ドメイン] リストにドメインを追加し、接続する際には、サーバー名のみを提供する必要があります。[検索ドメイン] リストを更新するには、[システム環境設定] > [ネットワーク] > [詳細] に移動し、[DNS] タブを開きます。

SAP HANA レベル階層をユーザー階層に変換する

SAP HANA のデータ ソースまたはワークブックを作成するとき、Tableau で使用する独自の階層を作成できます。Tableau は、バージョン 2019.4 以降、SAP HANA で作成されたレベル階層をサポートしています。レベル階層を使用して Tableau を SAP HANA 計算ビューに接続すると、SAP HANA レベル階層の構造が [データ] ペインに表示されます。Tableau で SAP HANA レベル階層を変更する場合は、SAP HANA レベル階層をユーザー階層に変換する必要があります。

警告: SAP HANA レベル階層をユーザー階層に変換すると、元に戻すことはできません。SAP HANA をユーザー階層ではなくレベル階層で使用するには、最初からやり直す必要があります。

ユーザー階層に変換するには、次の手順を実施します。

  1. [データ] ペインで、階層を選択します。
  2. ドロップダウン メニューで、[ユーザー階層に変換] を選択します。

JDBC 接続をカスタマイズする

Mac と Linux では、SAP HANA は JDBC 接続を使用します。JDBC 接続はプロパティ ファイルを使用してカスタマイズすることができます。詳細については、Tableau コミュニティの「「プロパティ ファイルを使用して JDBC 接続をカスタマイズする(新しいウィンドウでリンクが開く)」(英語) を参照してください。

Mac に信頼された SSL 証明書をインストールする

SSL/TLS を使用して Tableau Desktop とデータベースの間の通信を暗号化する場合は、Java 証明書トラスト ストアに証明書を追加する必要があります。データベースが自己署名証明書を使用する場合、これが必要です。SSL/TLS を使用して Tableau Desktop をデータベースに接続するには、次の手順を実施します。

  1. ターミナル アプリケーションを起動し、Java ホーム ディレクトリに移動します。その場所は、JDK をインストールしたり、JAVA_HOME 環境変数を設定していない限り、/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home にあります。

  2. 次のコマンドを実行します。

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

注: Tableau バージョン 2020.2 以降では、カスタム証明書を 「システム」キーチェーンにインポートできます。詳細については、「JDBC 接続の一方向 SSL」を参照してください。

変数と入力パラメーターを選択する

使用する表に必須や任意の変数か、パラメーターが含まれている場合は、[変数と入力パラメーター] ダイアログ ボックスが開きます。

  • 必須の変数およびパラメーターには、現在の値または「*必須」が表示されます。

  • 任意の変数およびパラメーターには、現在の値が表示されるか、何も表示されません。

  • [プロンプト] のチェック ボックスを選択し、ワークブックを開くときに変数を要求します。

変数またはパラメーターを選択し、それに対する値を入力または選択します。含めるすべての必須値といずれかの任意値を繰り返してから、[OK] を選択します。

注: SQL クエリ ベースの SAP HANA プロンプトを使用できます。

SAP HANA シングル サインオン (SSO) のサポート

シングル サインオン (SSO) をサポートするように SAP HANA を構成すると、ユーザー名とパスワードを入力し直さなくても、データにアクセスし、データ ソースを公開し、ワークブックを Tableau Server に公開できます。SSO を使用するには、ビューアーの認証資格情報を使用してデータ ソースとワークブックを Tableau Server にパブリッシュする必要があります。 ビューアーの認証資格情報を有効にするには、Windows コンピューターでは Windows 認証を使用して SAP HANA に接続するか、Mac 上の Kerberos に接続する必要があります。詳細については、サーバーへのパブリッシュを参照してください。

サーバーへのサインイン

サーバー名を入力すると、SAP HANA サーバーにサインインできます。または、Windows コンピューターでは [Windows 認証を使用する]、Mac では [Kerberos] を選択することもできます。終了するには、[サインイン] を選択します。

サーバーへのパブリッシュ

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 ファイルの作成」を参照してください。ナレッジベースの記事「Tableau Server で TDC ファイルを使用する」も参照してください。

重要: connection-customization の行に enabled='true' が含まれていることを確認してください。

関連項目

フィードバックをお送りいただき、ありがとうございます。フィードバックは正常に送信されました。ありがとうございます!