こんにちは。FLINTERS BASE 守川です。
2024年1月に親会社のFLINTERSが設立10周年を迎えるにあたり、子会社を含めた全社員でブログリレーを行う事になりました!
本ブログはブログリレー全133回のうちの17回目の投稿です。
TabPyを少し触れたので紹介したいと思います。
TabPyとは
公式サイトでは下記のように説明しています。
TabPy (Tableau Python Server) は、ユーザーが Tableau の表計算を介して Python スクリプトと保存された関数を実行できるようにすることで Tableau の機能を拡張する、分析拡張機能の実装です。
ポイントとしては、
- 表計算を介して
- Pythonスクリプトと保存された関数を実行
になると思います。
TabPyサーバー構築
ライブラリをインストールします。
pip install tabpy
サーバーを起動します。
tabpy
TabPyサーバーに関数をデプロイ
「保存された関数を実行」するためには、TabPyサーバーに関数をデプロイする必要があります。
from tabpy.tabpy_tools.client
client = Client('http://localhost:9004/')
def test(x,y):
import numpy as np
return np.multiply(x, y).tolist()
client.deploy('test', test, 'test desu', override=True)
TabPyサーバーを起動した状態で、例として、このようなファイルを実行するとTabPyサーバーにデプロイされます。
Tableauでtabpyを使ってみる
TableauでTabPyを使う方法として、2つあります。
- PythonスクリプトをTableauで記述する
- あらかじめサーバーにデプロイした関数を使用
PythonスクリプトをTableauで記述する
tabpyを使うには計算フィールドで下記の関数を使用します。
SCRIPT_INT
SCRIPT_BOOL
SCRIPT_STR
SCRIPT_REAL
4つの関数が用意されており、戻り値に応じて使い分けます。
図のように計算フィールドに記述します。
""の中にスクリプトを記述します。
あらかじめサーバーにデプロイした関数を使用
図のように計算フィールドに記述します。
tabpy.queryでデプロイした関数を呼び出します。
結果も記載しておきます。
注意点
ポイントの1番目で挙げたように、表計算を使用しているので、例えば、
パラメータの「ワークブックを開いた時の値」には設定できない
といったことに注意すべきだと感じました。
終わりに
TabPyを使うとTableauの可能性が広がると感じましたが、
表計算になってしまう点がいまいちかなと個人的には思いますが、
pythonを通して機械学習の結果などをTableauで可視化できることはメリットですね。