Data Connect の導入

Data Connect をお客様の組織に導入する前に、次の前提条件を満たしていることを確認してください。

  • Data Connect の導入を担当する人またはチームには、Linux オペレーティング システム、シェル スクリプト、Docker、Kubernetes の経験が必要です。

  • Data Connect の実装計画で指定されている最小ハードウェア要件。

  • Data Connect の実装計画で指定されているネットワーク仕様とデータベースへのアクセス権。

ステップ 1: クラスターを設定する

次の接続とアクセスを確認します。

  • Data Connect インフラストラクチャ、クラスター、およびコンテナには、オーケストレーション プロバイダー サービス (上の画像の #2) および Tableau Cloud (アウトバウンドのみ、#5) へのネットワーク アクセスが必要です。

  • Data Connect インフラストラクチャ、クラスター、コンテナ、およびエージェントには、データベース (#6) へのネットワーク アクセスが必要です。

ネットワーク仕様を参照してください。

導入と設定

Kubernetes クラスターを実行する組織内の各コンピューターで次の手順を実行します。

  1. セカンダリ ボリュームがフォーマットされていないことを確認します。Linux ノードで、次のコマンドを実行します。

    lsblk -f

    以下の図は、クラスター ノード上の追加ボリューム nvme1n1 がフォーマットされておらず、FSTYPE が空であることを示す例です。

  2. [Data Connect] タブの [プール] で、[新しいプール] をクリックします。[新しいプール] ウィンドウでプール名を入力し、[作成] をクリックします。

  3. [Data Connect] タブの [クラスターとノード] で、[新しいクラスター] をクリックします。[新しいクラスター] ウィンドウでクラスター名を入力し、[作成] をクリックします。

  4. 作成したクラスターで、[アクション] 列をクリックして [新しいノード] をクリックします。[Add New Node (新しいノードの追加)] ウィンドウで、[Download File (ファイルのダウンロード)] をクリックします。

    cluster.tar ファイルがダウンロード フォルダーにダウンロードされます。このファイルには、ノード上で実行するブートストラップ スクリプトが含まれています。

  5. クラスターの.tar ファイルをコンピューターにコピーします。次の例は、.tar ファイルをコピーし、ファイルを抽出し、スクリプトを実行可能ファイルに変更して、スクリプトを実行する方法を示しています。この例では、AWS のコンテキストを使用しています。使用している環境に合わせてファイル パスを変更します。

    次のコマンドを root または sudo ユーザーとして実行し、<key-name><IP-address を独自の値で置き換えます。

    > scp -i <key-name>.pem /Downloads/cluster.tar ec2-user@ip-<IP-address>.us-west-2compute.internal:~/

    > ssh -i <key-name>.pem ex2-user@ip-<IP-address>.us-west-2compute.internal

    > tar -xvf cluster.tar

    > chmod +x onboard_node.sh preflight_check.sh

    > ./onboard_node.sh

    : 既定では、bzip2 は Ubuntu にインストールされません。インストールするには、apt install bzip2 -y を実行してください。

    スクリプトが正常に実行されると、ターミナル ウィンドウに Successfully performed all operations [すべての操作が正常に実行されました] と表示され、Tableau チームがプロビジョニング プロセスを開始できるようになります。

    エラーが発生した場合は、導入環境がData Connect の実装計画に記載されている最小ハードウェア要件とネットワーク仕様を満たしていることを確認してください。

  6. サイトの [Data Connect] タブで、ステップ 2 で作成したプールを見つけます。[アクション] 列で [Assign Cluster (クラスターの割り当て)] をクリックし、ステップ 3 で作成したクラスターを選択します。

  7. クラスターの山形 (⌄) をクリックしてホスト名と利用可能なアクションを確認します。この情報が表示されない場合は、ページを再度読み込む必要があります。ホスト名が目的のノードであることを確認したら、[ノードの受け入れ] をクリックし、[確認] をクリックします。

    クラスター ノードがプロビジョニング状態になります。ノードのプロビジョニングには 1 時間以上かかる場合があります。

  8. ノードのステータスが [利用可能] に変わったら、クラスターを割り当てたプールに移動し、アクション ボタン (...) をクリックして、[Refresh Tokens (トークンの更新)] をクリックします。正しいプールのトークンを更新していることを確認し、[確認] をクリックします。

  9. トークンの更新が完了するまで待機します。完了すると、プールのステータスが [利用可能] に設定されます。クラスターに戻り、山形 (⌄) をクリックしてクラスター名のセクションを折りたたみます。クラスターのアクション ボタン (...) をクリックし、次に [コンテナ レジストリ情報を取得] をクリックします。

    • このステップを実行しようとしたときにエラーが発生した場合、レジストリがまだ展開されておらず、プロビジョニング プロセスがまだ完了していない可能性があります。数分待ってから、もう一度実行してください。
    • レジストリ情報 (サーバー名、ユーザー名、パスワード) が表示されたら、次のステップで使用できるようにコピーしておきます。

ステップ 2: ベース イメージを作成してパブリッシュする

このステップでは、ドライバーを使用してベース イメージを作成し、そのイメージを Docker コンテナ レジストリにパブリッシュします。はじめる前に:

  • 前のステップで Docker コンテナ レジストリの情報を取得していることを確認します。

  • 各プールには、独自のベース イメージとドライバー セットを設定できます。

  • TDC ファイルを使用して接続する予定の場合は、このファイルをベース イメージに含める必要があります。システム ユーザー tableau はこのファイルへの読み取りアクセス権が必要です。このファイルの作成方法と保存方法の詳細については、Tableau Desktop のヘルプ トピック「接続をカスタマイズして調整する」(新しいウィンドウでリンクが開く)を参照してください。

コンテナを構築する

次の手順は、コンテナを構築する例を示したものです。導入に固有のパッケージ マネージャー ツールやその他のツールをインストールしなければならない場合があります。Tableau Bridge インストーラーは Red Hat インストーラー (*.rpm ファイル) であるため、ビルドする Docker イメージは Red Hat のものである必要があることに注意してください。

  1. Data Connect クラスター内の任意のノードにログインします。クラスターの .tar ファイルをコンピューターにコピーします。次の例は、.tar ファイルをコピーし、ファイルを抽出し、スクリプトを実行可能ファイルに変更して、スクリプトを実行する方法を示しています。この例では、AWS のコンテキストを使用しています。使用している環境に合わせてファイル パスを変更します。

    次のコマンドを root または sudo ユーザーとして実行し、<key-name> と <IP-address> を独自の値で置き換えます。

    scp -i <key-name>.pem /Downloads/cluster.tar ec2-user@ip-<IP-address>.us-west-2compute.internal:~/
    ssh -i <key-name>.pem ec2-user@ip-<IP-address>.us-west-2compute.internal
    tar -xvf clustertar.tar
    chmod +x onboard_node.sh preflight_check.sh
    ./onboard_node.sh
  2. 必要に応じて Docker とサポート ツールをインストールします。

    #RedHat
    sudo dnf install -y container-tools podman-docker
    #Ubuntu
    sudo apt-get update -y
    sudo apt-get install -y docker.io
  3. Dockerfile を作成します。

    touch Dockerfile
  4. 接続をサポートするドライバーを含めるように Dockerfile を更新します。この Dockerfile で指定されたコマンドは、ベース イメージのビルド時に実行されます。例:

    # example base 
    FROM registry.access.redhat.com/ubi8
    RUN yum -y update
    WORKDIR /
    # Go to https://tableau.com/support/drivers
    # Follow the instructions to install your drivers for linux
    CMD [“/bin/bash”]

    ドライバー ファイルのターゲット ディレクトリはそれぞれ異なります。詳細については、「Tableau ドライバーのダウンロード(新しいウィンドウでリンクが開く)」を参照してください。

    : Data Connect は、Linux ドライバーを備え、「Bridge 経由で Tableau Cloud と連携」とラベル表示されている Exchange コネクタをサポートしています。詳細については、「Tableau Exchange コネクタ」(新しいウィンドウでリンクが開く)を参照してください。

    curl コマンドを使用してドライバーをダウンロードする、パブリック JDBC ドライバーの Dockerfile 行の例:

    RUN mkdir -p /opt/tableau/tableau_driver/jdbc
    RUN curl --location --output /opt/tableau/tableau_driver/jdbc/<file> <URL>
    				

    コピーを使用した非パブリック JDBC ドライバーの Dockerfile 行の例:

    RUN mkdir -p /opt/tableau/tableau_driver/jdbc
    COPY  <file> /opt/tableau/tableau_driver/jdbc

    コピーを使用した taco ドライバーの Dockerfile 行の例:

    RUN mkdir -p /home/tableau/Documents/My_Tableau_Bridge_Repository/Connectors
    COPY  <file> /home/tableau/Documents/My_Tableau_Bridge_Repository/Connectors
  5. Kubernetes クラスター ノードにログインしたまま、変数 POOL_ID にプール ID の値を設定します。プール ID 値を表示するには、[Data Connect] タブを開き、プール名をクリックします。

    • コピーしたレジストリ値をそれぞれの値に設定します。

      REGISTRY_HOSTNAME=registry_host_name_you_copied
      REGISTRY_USERNAME=registry_user_name_you_copied
      REGISTRY_PASSWORD=registry_password_you_copied
    • プール ID 値を設定します。

      POOL_ID=<pool_id_value>
  6. ベース イメージとして使用するコンテナを作成します。

    docker build -f <path_to_dockerfile> -t $REGISTRY_HOSTNAME/bridge-base:$POOL_ID .
  7. 既存の Kubernetes ノードにサインインし、イメージをローカル コンテナ レジストリにプッシュします。

    docker login --username $REGISTRY_USERNAME $REGISTRY_HOSTNAME
    docker push $REGISTRY_HOSTNAME/bridge-base:$POOL_ID
  8. 構成しているプールの下にあるアクションボタン (...) をクリックし、[ベース イメージを更新] をクリックします。このアクションにより、ベース イメージを使用した展開が開始され、完了するまでに最大 10 分かかる場合があります。

    : 新しいベース イメージが作成されて更新されるたびに、新しい展開が作成されます。以前のベース イメージに使用された Bridge エージェントは、割り当てられていないアセットとして保持されます。割り当てられていない Bridge エージェントは削除しないでください。

ステップ 3: ドメインをプールにマッピングする

許可リストで指定するドメイン名は、データ ソース接続で使用するサーバー名です。

  1. [Data Connect] タブの [プールとプライベート ネットワーク許可リスト] セクションで割り当てたプールを選択し、[アクション] 列で [新しいドメイン] をクリックします。

  2. [ドメイン] テキスト ボックスに、[許可リスト レジストリ ルール] で説明されている情報を使用してドメインの URI を入力します。指定するドメイン URI の範囲は、構成しているプールのみに限定されます。

  3. [ドメインのパーミッション] で、[許可] ラジオ ボタンが選択されていることを確認します。

  4. 完了したら、[保存] をクリックします。

接続エラーのトラブルシューティング

Data Connect が接続先の必要なすべてのデータ ソースにアクセスできるようにネットワーク インフラストラクチャを構成する必要があります。Data Connect がデータ ソースにアクセスできることを確認するには、Data Connect が実行されるノードから次の curl コマンドを実行します。

$ curl -v $DB_HOSTNAME:$DB_PORT

接続が正常に確立されると、応答のコレクションが表示されます。次にいくつかの例を示します。

  • Host $DB_HOSTNAME:$DB_PORT was resolved: DNS サーバーがホスト名を正常に解決したことを確認しています。

  • Connected to $DB_HOSTNAME: ノードがネットワークに接続されていることを確認しています。

  • Empty reply from server. Closing connection: curl はデータベース クライアントではないため、これは予想された動作です。

  • Could not resolve host: $DB_HOSTNAME: DNS 解決に問題があります。

  • Trying $DB_IP_ADDRESS:$DB_PORT: このメッセージの後にハングアップする場合は、ネットワークに問題があります。

Data Connect インフラストラクチャにサードパーティを使用している場合は、サードパーティによってネットワーク ロジックが中断されていないことを確認してください。

(オプション) ステップ 4: サイト間でクラスターを共有する

デフォルトでは、Data Connect クラスターとそれに対応するノードは、それらを作成した元のサイトのみで使用されます。ただし、Data Connect クラスターは Tableau Cloud Manager テナント内のすべてのサイトで共有できます。クラスターを共有すると、テナント内の異なるサイト上のクエリで同じノードのインフラストラクチャを使用できるようになります。

サイト全体のデータ プライバシーを確保するため、共有クラスターに関するデータはテナント内の他のサイトでは利用できません。

: クラスターの共有は永続的な操作です。クラスターの共有を解除するには、クラスターを削除して再インストールする必要があります。

クラスターは、それらを作成した元のサイトで正常に受け入れられた後にのみ共有できます。

Data Connect クラスターを共有するには、次の操作を行います。

  • 共有したいクラスターに移動し、アクションの省略記号 (...) をクリックし、[共有] をクリックします。

クラスターを共有すると、テナント内の他のサイトのサイト管理者は、自分のサイトで作成したプールでそのクラスターを使用できるようになります。

(オプション) ステップ 5: クラスター受領者として共有クラスター上にプールを作成する

共有クラスターで受領者としてプールを作成する前に、次の点を確認してください。

  • 共有クラスターは、サイトが使用するデータベースにネットワークで接続されている

  • サイト内のデータベースに必要なすべてのデータベース ドライバーがクラスターにインストールされている必要がある

共有クラスターをクラスター受領者として使用するには、クラスター所有者に連絡して、プールのベース イメージをクラスターに追加する必要があります。

  1. [Data Connect] タブの [プール] で、[新しいプール] をクリックします。

  2. [新しいプール] ウィンドウでプール名を入力し、[作成] をクリックします。

  3. 新しいプールで [クラスターの割り当て] をクリックして共有クラスターを選択し、アクションの省略記号 (...) をクリックして [トークンの更新] をクリックします。

  4. 正しいプールのトークンを更新していることを確認し、[確認] をクリックします。

  5. プールのステータスが [使用可能] に設定されている場合、プールの Pool_ID をコピーします。Pool_ID の値を表示するには、プール名をクリックします。

  6. サイトのベース イメージを追加します。ステップ 2: ベース イメージを作成してパブリッシュするを参照してください。

    クラスターにアクセスできる管理者は、ベース イメージを追加する一環として、Pool_ID 値を持つ新しいコンテナを構築する必要があります。また、クラスターを最初に作成したサイトのレジストリ値も必要になります。これは、クラスター所有者から入手できます。

  7. ベース イメージがローカルのコンテナ レジストリにパブリッシュされたら、共有サイトのプールに移動して [ベース イメージを更新] をクリックします。

  8. セットアップを完了するには、上記のステップ 3: ドメインをプールにマッピングするを参照してください。

既存のクラスターにノードを追加する

  1. クラスターに移動して [新しいノード] をクリックします。

  2. 上記のステップ 1: クラスターを設定するの手順 4、5、7、8、9に従ってください。クラスターを割り当てる必要がないため、手順 6 は省略します。

  3. トークンの更新手順を実施したら、クラスターに関連付けられたプールに移動して、[ベース イメージを更新] をクリックします。

: 新しいベース イメージを作成して更新すると、新しい展開が作成されます。以前のベース イメージに使用された Bridge クライアントは、割り当てられていないアセットとして保持されます。割り当てられていない Bridge クライアントは削除しないでください。

既存のクラスターからノードを削除する

ノードがクラスターから削除されると、Tableau Cloud から Bridge クライアントにアクセスできなくなります。ノードが削除された時点で Data Connect で実行されているジョブはすべて失敗します。ただし、追加のジョブはこれらの Bridge クライアントにルーティングされません。

ノードを削除するには、クラスターに移動し、アクションの省略記号 (...) をクリックして [削除] を選択します。

既存のプールのベース イメージを更新する

新しいデータベースを活用したり、Data Connect クラスターが使用するドライバーを更新したりする場合は、既存のベース イメージを変更することにより、それらの変更に対応することができます。これを行うには、コンテナ ファイルをステップ 2: ベース イメージを作成してパブリッシュするの説明に従って更新します。コンテナ ファイルを更新したら、[ベース イメージを更新] をクリックします。新しいベース イメージの展開には、最大で 15 分かかる場合があります。新しいベース イメージが正常に展開されるまで、以前のベース イメージが使用されます。

データベース接続のトラブルシューティング

まず、ドメインが許可リストのレジストリ ルールに準拠していることを確認します。プールの構成を参照してください。

次に Data Connect が接続先の必要なすべてのデータ ソースにアクセスできるように、ネットワーク インフラストラクチャを設定できていることを確認します。Data Connect がデータ ソースにアクセスできることを確認するには、Data Connect が実行されるノードから次の curl コマンドを実行します。

$ curl -v $DB_HOSTNAME:$DB_PORT

接続が正常に確立されると、応答のコレクションが表示されます。次にいくつかの例を示します。

  • Host $DB_HOSTNAME:$DB_PORT was resolved: DNS サーバーがホスト名を正常に解決したことを確認しています。

  • Connected to $DB_HOSTNAME: ノードがネットワークに接続されていることを確認しています。

  • Empty reply from server. Closing connection: curl はデータベース クライアントではないため、これは予想された動作です。

  • Could not resolve host: $DB_HOSTNAME: DNS 解決に問題があります。

  • Trying $DB_IP_ADDRESS:$DB_PORT: このメッセージの後にハングアップする場合は、ネットワークに問題があります。

Data Connect インフラストラクチャにサードパーティを使用している場合は、サードパーティによってネットワーク ロジックが中断されていないことを確認してください。

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