タブロー鯖のSpam和え(原題:Tableau ServerにPython機能拡張(TabPy)を組み込む方法、前編)

タブロー鯖のSpam和え(原題:Tableau ServerにPython機能拡張(TabPy)を組み込む方法、前編)
Tableau Server and TabPy

(2021年9月13日追記:後編を掲載いたしました。)
(2021年10月21日修正:tabpyのアップデートに伴い、インストールおよび起動設定に関する記載内容を修正いたしました。)

Spam乗せおにぎり、おいしいです。でもローカル食っぽいようで地元のコンビニでは見かけません。というニッチなネタはさておき。
Tableau上でPythonを動かすTabPyをTableau Serverに組み込む方法の解説となります。Tableau Desktop+ローカルPCでTabPyを動かす場合と違い、手順が多いため前編・後編に分けて説明いたします。なお組み込みにあたっては以下の前提知識があると望ましいです。

  • Pythonそのものの知識
    あまり必要としません。最低限”Hello World”出すぐらいの知識があれば十分ですが、動作確認用にサンプルの「Pythonコードを含む」Tableauファイルは必要です。
  • サーバー構築に関する知識
    こちらがメインです。特にLinuxでリポジトリからインストールしたことのある方。それに似た操作が出てきます。
  • configやiniファイルでの設定経験
    所々で発生します。
  • その他
    ローカルPC上で一度、TabPyを組み込んで試してみることをお勧めします。

また今回の説明にあたり、前提となる環境は以下のとおりです。

  • Tableau Server(Windows)
    一応Tableau Onlineでも使用できるようですが、今回はオンプレミスサーバーの場合でお話しいたします。また説明の都合上、バージョンはtsmコマンドが導入された2018.2以降とします。
  • 本番環境とは別にテスト環境を持っている
    手順上、一旦Tableau Serverのサービスを止める必要があります。いきなり本番環境で行うのではなく、まずテスト環境で練習しましょう。

ちなみにTabPyって何?という方。deepblueのこちらの記事を参照してください。
【Tableau × Python】TabPyを使ってAPIで取得した情報を可視化


(1)Tableau Serverのサービスを停止する。

導入の過程でサーバー自体の再起動が必要となります。またTableau Serverが起動したままの状態ですと組み込みに時間がかかります。そのためまずTableau Serverのサービスを停止させます。
サービス停止はtsmコマンドを使用します。サービス停止には環境によりますが数分-10数分程度かかります。

tsm stop

(2)Anacondaをインストールする。

Tableau Serverが停止したことを確認後、最新版のAnacondaのインストーラーをダウンロードし、インストールします。
参考:Windows版Anacondaのインストール

ダウンロード、およびインストール時の注意点として。

  1. ダウンロード時、記載されているPythonのバージョン番号(本記事記入時点はPython3.8)を控えておいてください。あとで使用します。
  2. インストールパスは初期設定から変更し、なるべく短いパス名にしてください。またパス名は半角英数字のみとし、2Byte文字は使用しないでください。
    (以下本稿ではパス名を”C:\Anaconda3″にしたものとして説明します。)
  3. システム環境変数にPathを加える設定には必ずチェックマークを入れてください。
    (赤文字で警告メッセージが出ますが構わず進めます。)
  4. システム環境変数に変更を加えたためインストール終了後、必ず1回サーバーを再起動してください。

(3)TabPy-Serverの実行環境を準備する。

TabPy-Server用に実行環境を準備します。
スタートメニューから

“Anaconda3″=>”Anaconda Prompt”

と進み、クリックして実行。DOS窓のようなウィンドウが出てコマンド入力待ちになるので以下のコマンドを入力してください。

conda create --name Tableau-Python-Server python=[?.?] anaconda

[?.?]にはダウンロード時に控えたPythonのバージョン番号を入力します。(例:python=3.8)
再びコマンド入力待ちになったらウィンドウを閉じてください。

(4)TabPy-Serverをインストールする。

(2021年10月21日修正:初稿では"pip install tabpy-server"となっておりましたが、tabpyに機能統合されたことを確認したため、スクリプトを修正いたしました。)

前項で準備した実行環境を起動し、この実行環境上にTabPy-Serverをインストールします。
スタートメニューから

“Anaconda3″=>”Anaconda Promopt(Tableau-Python-Server)”

をクリックし、実行環境を起動します。DOS窓のようなウィンドウが出てコマンド入力待ちになるので以下のコマンドを入力してください。(1行ずつ入力。)

activate Tableau-Python-Server
pip install pyhamcrest
python -m pip install --upgrade pip
pip install tabpy
pip3 install pandas

最後の"pip3 install pandas"はTableau Prep Builderとの連携が必要な場合のみ入力してください(オプション扱い)。
処理が済みましたらウィンドウを閉じてください。

(5)activate.batの編集、単体起動チェック。

(2021年10月21日修正:初稿では"tabpy.exe"の生成場所を"C:\Anaconda3\Scripts"と記載しておりましたが、その後のバージョンで生成ディレクトリが変更されたため、内容修正いたしました。)

エクスプローラーで

"C:\Anaconda3"

フォルダを開き、"tabpy.exe"を検索。

次に

"C:\Anaconda3\Scripts"

内にある

"activate.bat"

を適当なテキストエディタで開き、最後の行の次に

[FullPath表記]\tabpy.exe

を加え、上書き保存します。

続いて単体起動チェックを行います。
再びスタートメニューから

“Anaconda3″=>”Anaconda Prompt(Tableau-Python-Server)”

をクリックし、実行環境を起動します。

TabPy起動画面

このように最終行に"Listening on port 9004"と表示されればtabpyがサーバーとして正常に起動しています。"Ctrl+C"キーを押して動作を止め、ウィンドウを閉じてください。


今回はここまで。次回、後半は起動オプション設定、SSL認証に関する設定、Tableau Serverとの連携方法などを解説します。