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 によって「ドライバー ダウンロード」(新しいウィンドウでリンクが開く)ページへのリンクを含むメッセージが接続ダイアログ ボックスに表示されます。このページで、ドライバーのリンクとインストール手順を確認できます。

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

  1. Tableau を起動し、[接続] の下で [SAP HANA] を選択します。データ接続の完全なリストについては、[サーバーへ][詳細] を選択します。その後、次を実行します。

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

      • シングルノード - 接続するデータベースをホストするサーバーの名前、また既定以外のポートを使用しているならポート番号を入力します。

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

        host1:30015,host2:30015,host3:30015

        SAP HANA によるフェールオーバーのサポートの詳細については、SAP Help Portal の「クライアントでのフェールオーバーの構成 (英語)」(新しいウィンドウでリンクが開く)を参照してください。

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

      Windows の場合:

      • 環境でシングル サインオン (SSO) がサポートされている場合は、[Windows 認証を使用する] を選択します。シングル サインオンおよび環境要件の詳細については、SAP HANA シングル サインオン (SSO) のサポートを参照してください。

      • または、[固有のユーザー名とパスワードを使用] を選択します。サーバーがパスワードで保護されていて Kerberos 環境でない場合、ユーザー名とパスワードを入力する必要があります。

      Mac の場合: [Kerberos] を選択するか、[特定のユーザー名とパスワードを使用する] を選択します。

      SSL サーバーに接続する場合は、[SSL が必須] オプションを選択します。

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

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

      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 レベル階層をユーザー階層に変換する

すべての Tableau バージョンにおいて、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 接続を使用するため、プロパティ ファイルを使用してカスタマイズできます。詳細については、Tableau コミュニティの「プロパティ ファイルを使用して JDBC 接続をカスタマイズする」(新しいウィンドウでリンクが開く)(英語) を参照してください。

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

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

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

SSL/TLS を使用して Tableau Desktop をデータベースに接続するには、次の手順に従います。

  1. Terminal アプリケーションを起動して Java ホーム ディレクトリに移動します (JDK をインストールするか、JAVA_HOME 環境変数を設定している場合を除き、通常は /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home にあります)。

  2. 次のコマンドを実行します。(sudo Terminal コマンドの使用が必要となる場合があります。このコマンドは、管理者が root などの別のユーザーとしてコマンドを実行するときに使用されます。)

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

信頼された証明書のインストールの詳細については、Java Runtime 環境のドキュメントを参照してください。

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

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

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

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

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

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

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

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

SAP HANA がシングル サインオン (SSO) をサポートするよう設定されている場合、SAP HANA サーバーにサインインした後、ユーザー名とパスワードを再入力しなくても、データへアクセスし、データ ソースおよびワークブックを Tableau Server にパブリッシュできます。また、SSO を使用する他のユーザーがユーザー名とパスワードを入力しなくてもパブリッシュされたデータ ソースやワークブックにアクセスできるように、データ ソースやワークブックをパブリッシュできます。

SSO を使用するには、 ビューアーの認証資格情報認証を使用してデータ ソースとワークブックを Tableau Server にパブリッシュする必要があります。 ビューアーの認証資格情報を有効にするには、Windows コンピューターでは Windows 認証を使用して SAP HANA に接続するか、Mac 上の Kerberos に接続する必要があります。 詳細については、サーバーへのパブリッシュを参照してください。

重要: お使いの環境が SAP HANA 用の SSO をサポートするよう適切に構成されている必要があります。

サーバーへのサインイン

お使いの環境で SSO が設定されている場合、SAP HANA にサインインするには、サーバー名を入力し、Windows コンピューターでは [Windows 認証を使用する] あるいは Mac では Kerberos を選択してから [サインイン] をクリックするだけです。

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

SSO 環境では、正しい認証モードを使用して Tableau Server にパブリッシュされたデータ ソースやワークブックにアクセスする場合、ユーザーは認証資格情報を入力する必要はありません。

Tableau Server にデータ ソースまたはワークブックをパブリッシュする際に SSO を有効にするには、次の手順に従います。

  1. [サーバー] > [データ ソースのパブリッシュ]、または [サーバー] > [ワークブックのパブリッシュ] を選択します。
  2. [データ ソース] で、[編集] をクリックします。

  3. [データ ソースの管理] ダイアログ ボックスで、次を実行します。

    1. [パブリッシュのタイプ] を選択します: ワークブックに埋め込みまたは別にパブリッシュする

    2. [認証][Viewer (ビューアー) の認証資格情報] を選択します。

  4. [パブリッシュ] をクリックします。

SSO の使用時に HANA の抽出を更新する方法

シングル サインオン (SSO) を使用して SAP HANA に接続する場合、認証制限により、データ ソースまたはワークブックをサーバーにパブリッシュするときに、抽出更新をスケジュールできません。ただし、Tableau Data Extract ユーティリティを使用することにより、抽出更新タスクを自動化することができます。

たとえば、次のコマンドは、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 であっても、ODBC だけでなく、JDBC でも使用できます。

列のメタデータのコレクションを使用する

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

重要: enabled='true' が接続のカスタマイズの行の一部であることを確認してください。

関連項目

ありがとうございます!