Python

TableauとPythonの連携環境(TabPy)構築

本記事では、TableauとPythonの連携を実現させるフレームワーク(TabPy)の配置についてご紹介していきたいと思います。

Python連携

 Tableauは、外部言語処理系との連携機能を提供しており、そのうちの一つにTabPy(Tableau Python Server)と呼ばれるフレームワークがあります。TabPyはSCRIPT関数経由で計算結果を取得するインターフェースとなっており、同様のフレームワークで連携できる言語処理系としてはPythonの他に、R、MATLABがあります。
 外部言語処理系との連携はTableauのポテンシャルを高めることに繋がるため、ここではTabPyの配置例についてご紹介していきたいと思います。

なお、記事執筆(動作確認)時のバージョンは以下の通りです。
【Windows(OS)】8.1(64bit)
【Tableau Desktop】2018.2.0
【TabPy(conda package)】0.2
【Anaconda3(Python Distribution)】5.2.0

TabPy配置

Anaconda3(Python3系)のセットアップ

  1. 以下サイトから、「Python 3.6 version(64bit版)」のインストーラをダウンロードします。
  2. https://www.anaconda.com/distribution/

  3. ダウンロードした実行ファイルの上で右クリックし、管理者権限「管理者として実行」でインストールを開始します。
    • デフォルト設定の場合、「C:\ProgramData\Anaconda3\」にAnacondaがインストールされます。
  4. インストール・メニューの中で、以下の環境変数オプションについては、チェックを入れておきます。
  5. 図表2:Anacondaインストール・オプション

    • チェックを入れた場合、環境変数「Path」に以下のディレクトリが追加されます。
    C:\ProgramData\Anaconda3;C:\ProgramData\Anaconda3\Library\mingw-w64\bin;C:\ProgramData\Anaconda3\Library\usr\bin;C:\ProgramData\Anaconda3\Library\bin;C:\ProgramData\Anaconda3\Scripts;
    
  6. インストールされた「Anaconda Prompt」(コマンドライン・プロンプト)を管理者権限で起動し、以下のコマンドによって仮想環境を生成します。
  7. conda create -n Tableau-Python-Server python=3.6 anaconda
    
    • 仮想環境は、ディレクトリ「C:\ProgramData\Anaconda3\envs」配下に生成されます。以降、新たに追加された「Anaconda Prompt (Tableau-Python-Server)」(コマンドライン・プロンプト)で各種コマンドを実行します。
  8. 「Anaconda Prompt (Tableau-Python-Server)」で以下のコマンドを実行し、仮想環境を有効化します。
  9. activate Tableau-Python-Server
    

TabPyパッケージのセットアップ

  1. コマンドライン・プロンプトで以下のコマンドを実行し、「TabPy」パッケージをインストールします。
  2. conda install -c pkgs/free tabpy-server
    
    • 「C:\ProgramData\Anaconda3\envs\Tableau-Python-Server\Lib\site-packages\」に「TabPy(tabpy_server/tabpy_client)」パッケージがインストールされます。
    • また、バッチファイル「.\tabpy_server\startup.bat」を実行することで、ポート9004でListenする「TabPy Server」を起動(図表3参照)させることができるようになります。なお、任意の場所にバッチファイルへのショートカットを用意しておくことで、後のサーバ起動を容易にすることができます。
    • 「startup.bat」が実行できない場合の対処 (2019/05/22 追記)
    • pip uninstall Tornado
      pip install Tornado==5.1.1
      

      【参照】unable to startup the server for tabpy in cmd (github)

    図表3:TabPy Serverの起動

Tableau Desktopでのポート設定

「ヘルプ」→「設定とパフォーマンス」→「外部サービス接続の管理」にて、ポートを9004に設定します。

図表4:Tableau Desktopのポート設定

  • TabPy Server」が起動された状態で「テスト接続」をクリックすると、開通状態を調べることができます。

簡易接続チェック

以下は、Tableau DesktopからTabPy Serverに送信したデータをループバックで受け取る簡易接続チェックの一例です。

SCRIPT_STR('
  return _arg1
',
ATTR([市区町村名])
)

TabPy Server側で処理させたいコードをSCRIPT関数内に記述することで、Pythonで実行可能な処理を連携システムの一部としてTableauに取り込めるようになります。

図表4:簡易接続チェック

参考資料

関連記事一覧