はじめに
TableauでTabpyを使用していると、環境や処理内容によってはタイムアウト(デフォルトの制限時間である30秒が経過)して結果が返ってこないということがあるかと思います。
(例えば、API経由で外部の複数オブジェクトやテーブルにアクセスし、データを取得、加工処理をするような場合)
Tabpyはローカルで起動しているTabpy Serverを使用していますので、ここの設定値を変更することで30秒以上掛かるような処理でも結果を返すことができるようになります。
制限時間の変更方法
Anaconda3環境にtabpyをインストールした例でご紹介します。
※インストール方法は多くの方が書いてくださっているので、ここでは割愛します。
(ユーザー範囲で)Anacondaをインストールした場合は下記フォルダ内のdefault.confを任意のエディタで開いてください。
例:C:\Users\(ユーザー名)\Anaconda3\Lib\site-packages\tabpy\tabpy_server\common\default.conf
そのファイル内の「TABPY_EVALUATE_TIMEOUT」の値を変更して、コメントアウトを解除してください。
例)30秒→300秒
- # TABPY_EVALUATE_TIMEOUT = 30
+ TABPY_EVALUATE_TIMEOUT = 300
変更後はTabpyの再起動が必要です。
おわりに
そもそもデフォルトのタイムアウト時間(30秒)を超えないような設計にするのが一番だと思います。
ただどうしてもAPI接続するのにネットワーク環境が悪かったり、大量データに対して時間の掛かる処理をそれほどスペックが高くないPCでしないといけなかったりする場合があるかもしれません。
そのような場合には、今回の設定値を見直してみてはいかがでしょうか。