Tableau+Python連携環境(Tabpy)をDockerで作ろう

2020/03/08 18:28 Shingo 0 Comments

Tableau Desktop、Tableau Server、Tableau PrepとPythonを連携できる、というのをご存知の方もいらっしゃると思いますが、連携させるための環境をつくるのに尻込みされている方々、こちらの手順で簡単に環境をつくることができます。コンテナ技術のDockerを使って、Tabpyサーバを作ってみましょう。


まず、環境を作りたいマシンにDockerをインストールします。今回は私のPC(Windows 10)に環境を作ります。



Dockerのダウンロードはこちらから。

インストーラーを実行します。選択項目はすべて初期値のままでOKを押下。



再起動が完了すると以下のような画面があらわれ、Dockerの環境が整います。




再起動が完了すると以下のような画面があらわれ、Dockerの環境が整います。



次にDockerファイルを準備します。DockerファイルはDocker上につくるコンテナイメージを定義したテキストファイルです。メモ帳やエディタ等を使って作成します。



今回はCent OSにPython3とTabpy、そしてTabpyを使って全角半角の文字変換を行いたかったのでそのライブラリを入れるように書きました。よくわからなければとりあえずこのままの状態で、下記青字部分をコピーし、メモ帳に貼り付けてPC内のフォルダにDockerfileという名前で保存しましょう。

# Cent OSをベースイメージとして使用
FROM centos:latest

# Tabpyとその前提パッケージ、半角変換のためのmojimojiとその前提パッケージをインストール
RUN yum install -y python3
RUN yum install -y gcc-c++
RUN yum install -y python3-devel
RUN python3 -m pip install --upgrade pip
RUN pip install tabpy
RUN pip install pandas
RUN pip install mojimoji

# コンテナのポート9004をホストに開示
EXPOSE 9004

# Tabpyを実行
CMD ["tabpy"]
                   

私はCドライブの下にdockerというフォルダを作成し、その中にDockerfileを作成しました。




コマンドプロンプトを起動します。コマンドプロンプトはWindowsアイコンを押してcmdと入力すると候補が出てきます。コマンドプロンプトが起動されます。黒い画面にコマンドを打ちますが、もうすぐ完了ですのでめげずに頑張ってください。

Dockerファイルを保存した場所へ移動します。cd (シー、ディー、スペースキー)と入力し、保存先フォルダをドラッグ・アンド・ドロップします。フォルダの場所が自動入力されるので、キーボードのEnterキーを押します。

次に、以下の青字をコピーし、コマンドプロンプトの上で右クリックします。コマンドが貼り付けらえるのでEnterキーを押します。(最後のピリオドまでコピーします)

docker build -t tabpy/tabpy .

Dockerイメージを作成する処理が始まります。しばらく待って処理が終わると、最初の画面のようにC:\docker> 等のように入力できるようになります。



イメージが正しく作成されたか確認します。以下の青字を貼り付けます。

docker image list


tabpy/tabpyがリストの中にあればイメージ作成は成功です。


作成したイメージをつかってコンテナを起動します。以下のコマンドを貼り付けます。

docker run -it -d -p 9004:9004 tabpy/tabpy


これでTabpyサーバが起動ができました。


動作確認してみましょう。

Tableau Desktopを起動し、ヘルプメニューから「設定とパフォーマンス」>「外部サービス構成の管理」を選択します。










外部サービスはTabpyを選択し、サーバーにはlocalhostと入力、ポートには9004と入力し、左下の「テスト接続」をクリックします。












接続が成功するとこのようなメッセージが出ます。



これでご自身のPC上にTabpyが動く環境ができました。PCを再起動したりするとTabpyは停止するので、docker runコマンドで再度実行してください

今回はTabpyを動作させる環境をつくる手順をご紹介しました。次回はこの環境を使ってTableau Prepで半角文字を全角文字に変換する処理を作りたいと思います。

なお、2020.1リリースとともに、Tabpyはバージョン1.0となり、Tableauからのサポートが受けられるようになりました。より安心してお使いいただけます。


0 コメント: