💭

Tableau Server上のジョブIDから詳細情報を取得する

2023/04/20に公開

はじめに

例えば、Tableau Server (or Tableau Cloud)上で手動でフローを実行したとしよう。
そうすると、ジョブのページでそのフロー実行の進捗が分かる。

上記の画像はテスト環境なのでジョブが全然無いが、皆さんの本番環境ではここにジョブIDがずらーっと並んでいるかと思う。それで、「このジョブえらい時間掛かってるな」とか、「これ何で失敗してるんだ?」とか思った時に、そのジョブの詳細情報を知りたい事があるはず。
そう思った時、自然に一番左側にあるIDのリンクをクリックすると思うが、
「え・・・情報これだけ?」 と愕然した事はないだろうか?

ジョブ詳細と書かれているのに、出てくる情報はLUIDという謎の文字列だけである。
これでは困ったとなる所だが、このLUIDからジョブの詳細情報を取得するツールを自作したので、この記事で共有したいと思う。

即時実行のジョブが対象

先に補足しておくと、IDのリンクをクリックした時、
詳細情報が現れるタイプと、現れないタイプと2種類ある。

詳細情報が現れるタイプは、スケジュール実行されたジョブである。
つまりは毎朝7時に実行とか、設定された間隔で定期的に実行されたジョブという意味である。
そういったジョブは、以下のように詳細情報が表示される。

これはこれで良いのだが、
手動で即時実行した時のジョブはどうやら詳細情報が載らないようである。
(つまりは一番最初に載せた画像のように、LUID文字列だけが表示される。)

なのでこの記事では、
即時実行のジョブの詳細情報を取得したい方向けの情報共有という事になる。

尚、フローだけでなくデータソースの抽出の更新でも同じ法則が当てはまる。
定期実行された抽出の更新は詳細情報が出るが、即時実行された抽出の更新は詳細情報が出ない。この記事ではフローだけでなくデータソースの抽出更新ジョブの詳細情報取得も取り扱う。

個人用アクセストークンの取得

今から紹介するツールを使うに当たって、先に個人用アクセストークンを取得する必要がある。

個人用アクセストークンであれば、同じ認証情報を最大1年間使い回せるというメリットもある(但し15日間連続でログインしなかった場合は消滅する)。
という訳で本ツールではID/PASSではなく個人用アクセストークンを使用する事にするが、取得は極めて簡単な手順で行えるのでご安心いただきたい。

  1. まずは右上から「マイアカウントの設定」をクリック
  2. 「個人用アクセストークン」の所までスクロール(ページ中段あたり)
  3. テキストボックスに任意のトークン名を入れ、「新しいトークンの作成」をクリック
  4. 新しくトークンが生成されるので、「クリップボードにコピー」をクリック
  5. テキストエディタに情報をコピーし、任意の場所に保存

    ※有効期限が分かるようにする為、作成日をメモしておくのが良い。

以上で取得手順は完了。
ここで控えたトークン名とトークン値をツール内で設定すればOK。

ツールの紹介 (Tableau Get Job Info)

ソースコード込みでGitHubで全編公開している。
https://github.com/dirsense/Tableau-Get-Job-Info
とても簡単なコードで構成されているので、興味のある方は是非解析してもらえたらと思う。
とは言え、解析はいいからただ使いたいという方も大勢だと思うので、この記事ではコード解説は省略して使い方の説明に進む事にする。

まずはGitHubのページより、Zipファイルをダウンロード

それを任意の場所に解凍後、「Tableau_Get_Job_Info.exe」をダブルクリックで起動

このような画面が立ち上がるので、赤枠の車輪アイコンをクリックする

そうすると設定ウィンドウが立ち上がるので、各種情報を入力していく

[Server URL]
Tableau ServerまたはTableau CloudのサイトURLを入力する。
例えばTableau Cloudの試用版であれば、
https://prod-apnortheast-a.online.tableau.com
開発者サンドボックス用のサイトであれば、
https://10ax.online.tableau.com
となる訳だが、
これに関してはブラウザで表示されているサイトのURLを見れば一発なので、見方を説明しよう。

例えば下記URLは、私の試用版の環境でホームへ戻った時のURLである。

※赤枠で示した箇所の文字列を各自の環境に合わせて入力すればOK

[Site name]
上記URLのように、/#/site/ の後に続く文字列を入力する。
※Tableau CloudではなくTableau Serverの場合はサイト名が設定されていない場合も多い。
その場合はURLの中に /site/ の文字列は存在しない。
そういった環境ではこの [Site name] の値は空欄でOK。

[表示名]
ここに入れる値はラベルの役割を果たすだけで、入れなくても問題は無い。
例えばトークンを発行したアカウントのユーザー名を入れるのは分かりやすくてアリかと思う。

[トークン名]
テキストエディタに控えたトークン名を入力する。

[トークン値]
テキストエディタに控えたトークン値を入力する。

全て入力し終えたら、「認証テスト」ボタンを押す

「認証に成功しました」と出ればOK。
もし失敗する場合は入力した情報が間違っていないか再度確認しよう。

最後に「設定を保存」ボタンを押す

保存をする事により、一度ツールを落としてから再度立ち上げたとしても、設定情報を引き継いで起動する事が可能になった。

ここまで準備出来たらあとはやる事は一つ。
ジョブの詳細画面で表示されたLUIDをコピーして、

ツールの一番上のテキストボックスに貼り付けたら、
「Get Job Info」ボタンを押す。

そうすると、ジョブの詳細情報を取得できる。

プロジェクト名やフロー名が分かるだけでもLUIDだけよりかは遥かにマシだろう。

このツールは色々な用途で使えると思うが、例えば時間の掛かるフローの実行を監視したい場合、対象のLUIDを一度入力しておけば、後は適当なタイミングでボタンを押す事でその時のジョブの状態を即座に把握する事ができる。

保留中

実行中

キャンセル

失敗

キャンセルまたは失敗の場合はその理由も表示するように作ってある。

終わりに

これ自体はとてもシンプルなツールだが、作り込みをする事であらゆる応用が可能になる。
例えば一々LUIDを入れて検索するのではなく、今日実行したジョブの情報を全て一覧で出力するようにしても面白いだろう。
それで手動更新だけでなく、リアルタイムで情報が更新されるように作る事もできる。
是非皆さんの使いやすいようにカスタマイズして使っていただけたら幸いである。

Tableau Server x Python の本格的なプログラム開発については下記の記事でも触れているので、興味のある方はそちらも見ていただけたらと思う。
https://zenn.dev/t_katsumoto/articles/c7a8897dbe766b

Discussion