Tableau Bridge を使ってみた
Tableau Cloud から直接アクセスできないプライベートネットワークにあるデータソースを使用するために提供されている Tableau Bridge を使ってみました。
Tableau Bridge の概要
Tableau Bridge(以下、Bridge)は、プライベートネットワーク内のマシンにインストールすることで Tableau Cloud からは直接アクセスできないデータソースを連携し、最新の状態に維持するために利用できます。
この際、Bridge と Tableau Cloud 間の通信として、Bridge からのアウトバウンド通信のみ行う仕様のため、Tableau Cloud からのインバウンド通信用に例外的な追加のファイアウォールルールを設定する必要はありません。
Bridge を使用してデータを最新に保つ | Tableau Help
Bridge クライアント
Tableau Bridge をインストールしたマシンでは、Bridge クライアントを起動できます。1台のマシンにインストール可能なクライアントは1つだけです。
Bridge クライアントについて | Tableau Help
システム要件
各種要件は以下に記載があります。
推奨されるソフトウェアとハードウェア | Tableau Help
主要な項目は以下の通りです。
OS
- Microsoft Windows 10 以降、64-bit
- Windows Server 2012 以降
ハードウェア
公式ドキュメントにはクライアントで並列実行する更新数に基づいた要件が記載されています。
※図は公式ドキュメントより引用
ネットワーク
Bridge は、Tableau Cloud へのアウトバウンドのインターネットリクエストにポート 443 を使用し、証明書の検証にはポート 80 を使用します。
ライセンス
Bridge の使用にプロダクトキーは不要です。
ただし、Bridge のユーザーは Tableau Cloud の認証ユーザーである必要があります。
アカウント
Tableau Bridge を使用するには以下の2種類のアカウントが必要です。
- Windows 管理者グループのアカウント
- Tableau Cloud アカウント
Windows 管理者グループのアカウント
Bridge クライアントをインストールする際は、Windows マシンの管理者グループユーザーで作業を行います。
また、インストール後のクライアントの稼働モードとして、「アプリケーションモード」と「サービスモード」の2種類が存在します。
アプリケーション モード対サービス モード | Tableau Help
ユーザーが Windows からログアウトした場合でも、クライアントが実行するためには、サービス モードでクライアントを実行する必要がありますが、このためには管理者グループまたは同等の権限を持つ Windows サービスアカウントが必要です。
Tableau Cloud アカウント
Bridge を管理するための特定のタスクを行うためには、以下のいずれかのサイトロールを持つ Tableau Cloud ユーザーが必要です。
- サイト管理者 Creator
- サイト管理者 Explorer
検証環境
本記事では以下の環境を使用します。
- Bridge サーバー(Tableau Bridge をインストールするサーバー)
- OS:Windows Server 2019
- インスタンスタイプ:
t3.xlarge
- 4vCPU
- 16GB RAM
- ボリューム
- C:50GB
- D:150GB
- データソース
- PostgreSQL 15.4-R3
- Tableau Bridge
- 2023.2.3(20232.23.1012.1128)
- 検証時点の最新版を使用
- Tableau Desktop
- 2023.2.3
構成
以下の構成で検証しています。
上記の通り、Bridge は Tableau Cloud とアウトバウンド通信のみを行うため、Bridge サーバーは、プライベートサブネットに構築しています。
そのため、パブリックサブネットに NAT ゲートウェイを配置し、インスタンスへの RDP 接続には、Systems Manager を使用することとしています。
[アップデート] WindowsインスタンスにAWS Systems Manager Fleet ManagerからRDP接続できるようになりました | DevelopersIO
また、ストレージ要件よりバスのタイプに NVMe の指定があるので以下のドキュメントより Nitro System上に構築されたインスタンスを使用しています。
EBS ボリュームは、Nitro System上に構築されたインスタンスで NVMe ブロックデバイスとして公開されます。インスタンスにボリュームをアタッチする場合は、ボリュームのデバイス名を含めます。このデバイス名は Amazon EC2 によって使用されます。
Windows インスタンスの Amazon EBS および NVMe | AWS
対応するインスタンスファミリー・世代は以下に記載があります。
Nitro System 上に構築されたインスタンス | AWS
データソース
本記事では、データソースとして PostgreSQL を使用しています。
Bridge サーバーと同じプライベートサブネットに構築し、サンプルデータの作成と、Bridge サーバーからの接続のために、以下のインストールを実施済みとします。
- PostgreSQL クライアント(psql)
- サンプルデータの作成に使用
- Windows installers | PostgreSQL
- PostgreSQL ドライバー
- Tableau Desktop からの接続に使用
- ODBC | PostgreSQL
psql インストール後、以下のコマンドで PostgreSQL にログインします。
psql.exe -h "<host>" -p 5432 -U "<User name>"
サンプルデータは以下の通り作成しました。
CREATE DATABASE testdb; CREATE SCHEMA test; CREATE TABLE test.sample ( id SERIAL PRIMARY KEY, record_timestamp TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP ); INSERT INTO test.sample DEFAULT VALUES;
データの参照
> SELECT * FROM test.sample; id | record_timestamp ----+------------------------------- 1 | 2023-11-23 04:13:59.650329+00 (1 row)
Tableau Bridge のインストール
管理者グループユーザーでサーバーにログインし作業を行います。
インストール手順は以下に記載があります。
Bridge のインストール | Tableau Help
インストーラーは、以下からダウンロード可能です。(Tableau へのログインが必要)
PRODUCT DOWNLOADS | Tableau
インストーラーを起動します。
既定のインストール先は C:\Program Files\Tableau\Tableau Bridge
となっています。
インストーラーの起動時の画面の [カスタマイズ] よりインストール先を変更することも可能です。ここではD:\Tableau\Tableau Bridge
にインストールすることとしました。各チェックボックスにはチェックを入れたまま [インストール] を押下します。
インストールが完了すると下図のようにTableau Cloud へのサインイン画面が表示されるので、ここではサイト管理者 Creator ロールを持つユーザーでサインインを行いました。
多要素認証を行います。
認証完了後、デスクトップのショートカットより起動すると下図の通り、Tableau Cloud には接続済みのステータスで、アプリケーションモードとして稼働していました。
Tableau Cloud から確認する
Bridge から認証を行った同じユーザーで Tableau Cloud にログインし「設定 > Bridge」メニューを表示します。下図の「デフォルトのプール」に新たに Bridge サーバーマシンが追加されています。「所有者」には、ログインに使用した Tableau Cloud ユーザーの表示名が表示されます。
データソースのパブリッシュ
Tableau Desktop のインストール
新たにデータソースをパブリッシュするために、Bridge サーバーに Tableau Desktop をインストールします。本記事では Tableau Bridge と同じ 2023.2.3 をインストールしています。
Tableau Desktop をインストール後、ここでは LBLM による認証を行いました。
データソースへの接続
Bridge サーバー上の Tableau Desktop から PostgreSQL に接続します。ここでドライバーをインストールしていない場合、以下の表示になります。
サーバーへの接続情報を入力しサインインします。
Desktop からサンプルデータを確認できます。
データソースのパブリッシュ:ライブ接続
はじめにライブ接続を使用する Bridge データソースをパブリッシュしてみます。ドキュメントには以下に手順の記載があります。
プライベート クラウド データに Bridge を使用する | Tableau Help
ライブ接続を使用した Bridge データ ソースのパブリッシュ | Tableau Help
Tableau Desktop から 「サーバー > データ ソースのパブリッシュ」をクリックします。
必要に応じて Tableau Cloud にサインインし、パブリッシュの設定を行います。
ここで「認証」には「埋め込みパスワード」を選択し、「ライブデータソースへの接続維持」を選択します。
認証の設定変更画面
設定後 [パブリッシュ] をクリックし、問題なければ下図のポップアップが表示されます。
Tableau Cloud から確認してみます。 対象のデータソースから「接続の編集」をクリックします。
接続の編集画面から「ネットワークタイプ」として「プライベートネットワーク」となっていれば 問題ないです。
※プライベートネットワークが自動的に選択されていない場合、[保存] をクリックします。
データの更新(ライブ接続)
パブリッシュされたデータソースからワークブックを作成しデータを閲覧します。
この状態で psql から以下のコマンドを実行します。
testdb=> INSERT INTO test.sample DEFAULT VALUES;
testdb=> SELECT * FROM test.sample; id | record_timestamp ----+------------------------------- 1 | 2023-11-23 04:13:59.650329+00 2 | 2023-11-23 04:28:11.883817+00 (2 rows)
Tableau Cloud でデータソースを更新すると、新たに追加されたデータを確認できます。
更新を停止する場合、上記の接続の編集から、「ネットワークタイプ」として「Tableau Cloud」を選択します。
Bridge を介したデータ更新の停止 | Tableau Help
データソースのパブリッシュ:抽出の作成と更新スケジュールの設定
次に抽出を作成し、あわせて更新スケジュールを設定します。Bridge で設定可能な更新スケジュールには、以下の2種類があります。
- Online 更新スケジュール
- Bridge (レガシー)
プライベートクラウドのデータには、Online 更新スケジュールのみが対応しているので、ここでは、Online 更新スケジュールを設定します。各スケジュールと設定方法の詳細は以下をご参照ください。
Bridge 更新スケジュールの設定 | Tableau Help
Tableau Desktop から先と同様の手順で、データソースを作成します。この際、[抽出の作成と更新のスケジュール] を選択し、[パブリッシュ] をクリックします。
問題なくパブリッシュされると以下のポップアップが表示されるので、[抽出更新のスケジュール] をクリックします。
任意のスケジュールを設定します。
設定後、下図のような表示になります。
Tableau Cloud から「タスク」ページを確認するとスケジュールされた抽出の更新として追加されます。
指定の時間になりジョブが実行されると「ジョブ」メニューで確認可能です。項目「ステータス」が「Bridge に送信」となります。
ワークブック等から抽出を更新するとデータの変更が反映されます。
サービスモードへの変更
上記の検証は、Bridgeを「アプリケーションモード」として行いました。
このモードでは、ユーザーが Windows からログオフすると、ライブクエリやスケジュールされた抽出の更新を維持できなくなる仕様です。
通常は、ユーザーがログアウトした状態でもこれらの実行を継続する用途が多いかと思いますが、その場合は Bridge をサービスモードに変更します。
モードの変更は、以下の手順で行います。
Bridge サーバーからのシステム トレイから Bridge クライアントを開き、「モード」から [サービス] を選択します。
以下の表示がでるので [OK] をクリックします。
サービスの実行アカウントを指定します。ここで、マシンの管理者グループユーザーを指定し [OK] をクリックすればモードが切り替わります。
Tableau Bridge に関する FAQ | tableau Help
さいごに
Tableau Bridge のインストールから Bridge を経由する基本的なデータソースの更新まで試してみました。
本記事では最小要件での構成のため触れていませんが、実際の運用では「プール」という機能で、複数の Bridge クライアントを構成しタスクの負荷分散を行う場面もあるかと思います。
プールにドメインをマッピングすることで、プール単位でのアクセス制限も可能なので、データを最新の状態に保ちつつ、セキュリティも維持可能な機能提供されているので、こちらも今後試してみたいと思います。
今回は以上になります。こちらの記事が何かの参考になれば幸いです。
Bridge クライアントのプールの構成 | Tableau Help