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

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

前編からの続きとなります。後編となる今回は

  • 動作カスタマイズ設定
  • バックグランドサービス化処理
  • Tableau Server管理画面上での設定

を解説いたします。


(6)起動・動作に関する各種設定。

起動・動作に関する設定は.confファイルで行います。前編で行った構成例(AnacondaをC:\Anaconda3にインストール、動作環境として"Anaconda Prompt(Tableau-Python-Server)"を設定)ですとデフォルト設定となる"default.conf"は

C:\Anaconda3\Lib\site-packages\tabpy\tabpy_server\common\default.conf

に生成されます。各設定項目と内容の詳細についてはgithub上のこちらのページを参照ください。

https://tableau.github.io/TabPy/docs/server-config.html

基本的には必要なパラメータに対し値を設定する形式ですが、少し分かりづらい「https設定」と「使用ユーザー登録設定」について、ここで解説いたします。

(6)-1:https設定

TABPY_TRANSFER_PROTOCOL:通信時プロトコルにhttpを用いるかhttpsを用いるかを設定します。デフォルトはhttpですのでhttpsにしたい場合には

TABPY_TRANSFER_PROTOCOL = https

と設定しますが注意点として。さらに「セキュリティ証明書」「キーファイル」の指定を行う必要があります。設定先はそれぞれ

TABPY_CERTIFICATE_FILE
TABPY_KEY_FILE

となります。

TABPY_CERTIFICATE_FILE:セキュリティ証明書(.crt)の配置場所を指定します。フルパスで指定してください。

TABPY_CERTIFICATE_FILE = C:\hogehoge\hogehoge.crt

TABPY_KEY_FILE:キーファイル(.key)の配置場所を指定します。フルパスで指定してください。

TABPY_KEY_FILE = C:\hogehoge\hogehoge.key

(6)-2:使用ユーザー登録設定

先に注意点として。

  • ここで言うユーザー登録とはTableau Serverにログインする際のID/パスワードとは別物となります。あくまでTabPyの機能を使用する際にパスワード認証を設ける場合のみ使用します。
  • Tableau Serverの管理画面から登録はできません。TabPyインストール後、サーバー上でコマンドラインから行う必要があります。
  • 予め登録ユーザーリストを格納するテキストファイル(中身は空でよい)を準備する必要があります。

TABPY_PWD_FILE:TabPyを使用可能なユーザーを限定(パスワード認証)する場合、登録ユーザーリストを保管するファイルの配置場所を指定します。これが指定された場合、TabPy-Serverはこのリストをもとにユーザー認証を行います。

TABPY_PWD_FILE = C:\hogehoge\hogehoge.txt

実際のユーザー登録は上記設定とは別にコマンドライン上から行います。

書式:tabpy-user add -u [ユーザー名] -p [パスワード] -f [パスワードファイル]

  • ユーザー名:登録するユーザー名を半角英文字で指定します。
  • パスワード:設定するパスワードを記入します。
  • パスワードファイル:TABPY_PWD_FILEで設定したtxtファイルをフルパスで指定します。このtxtファイル内にユーザー名と暗号化されたパスワードが記録されます。

(7)バックグランドサービスに登録する。

動作環境設定した"Anaconda Prompt(Tableau-Python-Server)"の起動スクリプトをタスクスケジューラーに登録し、常時バックグランド動作するよう設定します。

全般:設定項目
全般:設定項目
トリガー:設定項目
トリガー:「システム起動時」に設定
操作:設定項目
操作:プログラムの開始

プログラムスクリプト:C:\Windows\System32\cmd.exe
引数の追加:”/K” C:\Anaconda3\Scripts\activate.bat C:\Anaconda3\envs\Tableau-Python-Server

以上の設定が済んだら起動確認します。サーバーを再起動させたのち、タスクマネージャーをチェック。"tabpy.exe"が動作していればOKです。

(8)TabPy-ServerとTableau Serverの連携設定を行う。

TabPy-ServerとTableau Serverの連携を行いますが、使用するTableau Serverのバージョンによって連携設定方法が異なります。なおこの前状態として

  • Tableau Serverが動作しているサーバーに管理者アカウントでログインしている。
  • Tableau Server本体のサービスはtsmコマンドでStopさせている。

ものとします。

(8)-1:Ver.2020.1以下の場合

tsmコマンドを用います。

tsm configuration set -k vizqlserver.extsvc.host -v localhost --force-keys
tsm configuration set -k vizqlserver.extsvc.port -v 9004 --force-keys
tsm pending-changes apply

pending-changes applyコマンドのあと、サービスを再起動するかどうかを聞かれるので"y"を入力してください。(もし聞かれなかった場合には"tsm start"でサービスを開始させてください。)

起動は環境によりますが数分-10数分程度かかります。Tableau Serverの起動が完了したことを確認したらTableau Server以外のPCからWebブラウザ経由で管理者ログイン。Pythonコードを含むサンプルのダッシュボード画面で挙動を確認してください。

もし挙動が想定どおりでない場合には管理者画面に移動。

  • 「すべてのサイトの管理」=>「拡張」>「分析機能拡張」

のメニューまで飛び、「分析拡張機能を有効にする」旨記載されたテキスト左にチェックマークが入っていなかったらチェックを入れたうえで再度確認してください。

(8)-2:Ver.2020.2-2020.4の場合

Ver.2020.2以降からはtsmコマンドによる追加設定は不要です。停止しているTableau Serverを起動します。

tsm start

Tableau Serverのログイン画面にブラウザからアクセス。管理者アカウントでログインします。
ログイン後の設定はTableau公式のこちらのページをご参照ください。

補足で各バージョン共通で出てくる設定項目「分析サービスの構成設定を入力」ウィンドウでの各設定項目と内容につきまして。

「分析サービスの構成設定を入力」ウィンドウ画面

  • Connection Type:”TabPy/Analytics Extension”を選択してください。
  • Require SSL:.confの編集でSSLを設定した場合にはチェックマークを入れてください。
  • Host名入力欄:localhost
  • Port番号入力欄:9004
  • Sign in with a username and password:.confおよびtabpy-userコマンドでユーザー登録した場合にはチェックマークを入れて、設定したユーザー名とパスワードを入れてください。

設定が済んだらPythonコードを含むサンプルのダッシュボード画面で挙動を確認してください。

(8)-3:Ver.2021.1以降(最新版)の場合

Tableau Serverを起動したのちTableau Serverのログイン画面にブラウザからアクセス。管理者アカウントでログインします。
ログイン後の設定はTableau公式のこちらのページをご参照ください。

 (9)参考ページ紹介

今回の記事作成にあたり、以下のページを参考といたしました。

(10)おまけ:で、結局SPAM®むすびはどうなったの?

SPAMむすび

SPAM®むすびおいしかったです。でも個人的にはSPAM®は表面に焼き色付けたほうが好みです。なおTabPyの動作確認にサンプルコード組む際はくれぐれもSPAM®を連呼するコードは組まないよう、お気をつけください。おしまい。