TabPyを少しだけ触ってみました

こんにちは。FLINTERS BASE 守川です。

 

2024年1月に親会社のFLINTERSが設立10周年を迎えるにあたり、子会社を含めた全社員でブログリレーを行う事になりました!

本ブログはブログリレー全133回のうちの17回目の投稿です。

 

TabPyを少し触れたので紹介したいと思います。

TabPyとは

公式サイトでは下記のように説明しています。

TabPy (Tableau Python Server) は、ユーザーが Tableau の表計算を介して Python スクリプトと保存された関数を実行できるようにすることで Tableau の機能を拡張する、分析拡張機能の実装です。

ポイントとしては、

  1. 表計算を介して
  2. 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つあります。

  1. PythonスクリプトをTableauで記述する
  2. あらかじめサーバーにデプロイした関数を使用

PythonスクリプトをTableauで記述する

tabpyを使うには計算フィールドで下記の関数を使用します。

SCRIPT_INT

SCRIPT_BOOL

SCRIPT_STR

SCRIPT_REAL

4つの関数が用意されており、戻り値に応じて使い分けます。

図のように計算フィールドに記述します。

""の中にスクリプトを記述します。

あらかじめサーバーにデプロイした関数を使用

図のように計算フィールドに記述します。

tabpy.queryでデプロイした関数を呼び出します。

結果も記載しておきます。




注意点

ポイントの1番目で挙げたように、表計算を使用しているので、例えば、

パラメータの「ワークブックを開いた時の値」には設定できない

といったことに注意すべきだと感じました。

 

終わりに

TabPyを使うとTableauの可能性が広がると感じましたが、

表計算になってしまう点がいまいちかなと個人的には思いますが、

pythonを通して機械学習の結果などをTableauで可視化できることはメリットですね。