参考
https://help.tableau.com/current/online/ja-jp/to_bridge_linux_install.htm
https://tableaujpn.blogspot.com/2024/02/
やりたいこと
プライベートネットワークにあるDBのデータを使いたい。
EC2(踏み台)などDBにアクセスできる場所でTableau Bridgeを設定する。
Dockerfile
公式のドキュメントではDockerを使った例のみだったけど、
とりあえずEC2に直接インストールして動くか確認。
動いたのでその内容をまとめてDockerfileにしてみた。
これを使ってECSとかで起動して使ったら良さそう?
FROM amazonlinux:2023
# Tableau Bridgeのダウンロードインストール
RUN curl -OL https://downloads.tableau.com/tssoftware/TableauBridge-20243.25.0114.1153.x86_64.rpm\
&& ACCEPT_EULA=y yum install -y TableauBridge-20243.25.0114.1153.x86_64.rpm
#必要なライブラリをインストール
RUN yum install -y unixODBC tar gzip findutils dbus-libs glibc-langpack-ja
# mysql-connectorのダウンロードインストール
RUN curl -OL https://ftp.iij.ad.jp/pub/db/mysql/Downloads/Connector-ODBC/8.0/mysql-connector-odbc-8.0.20-linux-glibc2.12-x86-64bit.tar.gz\
&& tar -zxvf mysql-connector-odbc-8.0.20-linux-glibc2.12-x86-64bit.tar.gz\
&& cp /mysql-connector-odbc-8.0.20-linux-glibc2.12-x86-64bit/bin/* /usr/local/bin\
&& cp /mysql-connector-odbc-8.0.20-linux-glibc2.12-x86-64bit/lib/* /usr/local/lib\
&& myodbc-installer -a -d -n "MySQL ODBC 8.0 Unicode Driver" -t "Driver=/usr/local/lib/libmyodbc8w.so"\
&& myodbc-installer -a -d -n "MySQL ODBC 8.0 ANSI Driver" -t "Driver=/usr/local/lib/libmyodbc8a.so"\
&& rm TableauBridge-20243.25.0114.1153.x86_64.rpm\
&& rm mysql-connector-odbc-8.0.20-linux-glibc2.12-x86-64bit.tar.gz\
&& rm -rf mysql-connector-odbc-8.0.20-linux-glibc2.12-x86-64bit.tar.gz
# 環境変数
ENV LANG="ja_JP.utf8"
ENV LANGUAGE="ja_JP.utf8"
ENV LC_ALL="ja_JP.utf8"
# PATをコンテナにコピー
COPY MyTokenFile.txt /
# Tableau Bridge for Linux 起動
SHELL ["/bin/bash", "-c"]
ENTRYPOINT /opt/tableau/tableau_bridge/bin/run-bridge.sh\
-e\
--patTokenId="ec2_bridge"\
--userEmail="メール"\
--client="myBridgeAgent"\
--site="ユーアールアイ"\
--patTokenFile="/MyTokenFile.txt"\
--poolId="プールID"
プールIDはTableau Cloudで作成し設定する。
Tableau Cloud PATも作成してトークンを以下のようにファイルに保存する。
{"ec2_bridge" : "とーくん"}
起動方法
$ docker image build -f Dockerfile -t tableau_bridge .
$ docker container run -d --name tableau_bridge:latest
メモ
データソース自体はプライベートネットワークにあるDBに接続できるTableau Desktopで作成しパブリッシュする必要がある。
プライベートネットワークにあるため、そのままだと接続できないので、ローカルでsshを使用してポートフォワードを設定しlocalhostで接続した。
# pemがあるフォルダで以下を実行する(例:C:\Users\user\.ssh)
ssh -i dev.pem -L 3306:dev-mysql.cluster-XXXXXXX.ap-northeast-1.rds.amazonaws.com:3306 ec2-user@<ipアドレス>
パブリッシュしたデータソースはlocalhostになっているのでTableauCloudで編集してホスト名を実際のDBのホスト名に変更する必要がある。
結構大変だった。
以上。