Tableau Server サイト管理は「tabcmd」コマンドで自動化しましょ(基本編)

Tableau

黒い画面のお話をします。

アレコレメモ
アレコレメモ

その昔、黒い画面でカタカタとコマンドばかり打っていました。今は全く覚えていません。

Tableau Server, Tableau Onlineではサイト上でのタスクを自動化するために、コマンドラインユーティリティ「tabcmd」が用意されています。

「tabcmd」コマンドラインツールを使うことができれば、GUI操作で繰り返し行っているルーティン作業を効率化することが可能です。

導入と基本的な使い方について記事投稿します。

スポンサーリンク

環境準備

Tableau Serverバージョンの確認

事前にTableau Serverバージョンを確認しておきましょう(オンラインは使ったことないので詳しくない)。

Tableau Serverにログイン後、「ヘルプ」⇒「Tableau Serverについて」で以下のような情報を確認することが出来ます。

Tableau Serverについて

Tableau Server のバージョン: 2019.4.0 (20194.19.1105.1444) 64ビット Linux

©2019 Tableau Software, Incorporated and its licensors. All Rights Reserved.

インストール

コマンドユーティリティをクライアントPCにインストールします。事前に確認したサーバーバージョンに合わせるか、新しいものを使ったほうがよいでしょう。

Tableau Server サイト管理は「tabcmd」コマンドで自動化(Tableauサイトから目的のバージョンを選ぶ)
Tableauサイトから目的のバージョンを選ぶ

▲ Tableau Serverのリリースノートから目的のバージョンを選択します。

Tableau Server サイト管理は「tabcmd」コマンドで自動化(コマンドユーティリティをダウンロードする)
コマンドユーティリティをダウンロードする

▲ ServerはLinuxですが、クライアントはWindowsなのでこちらを選びました。クライアントがMacの場合はLinuxバイナリの拡張子「.deb」のものを使います(環境がないので説明省略)。

Windows PCであればインストーラーの指示に従っていれればOKです。

ジャル
ジャル

ちゃんとインストールの画像貼り付けて説明しなさいよ。

アレコレメモ
アレコレメモ

全部、Yes Yes 同意 Yesで大丈夫です。

インストールディレクトリ

Windows10と2019.4の組み合わせでは次の場所にコマンドユーティリティがインストールされました。

インストール場所 C:\Program Files\Tableau\Tableau Server\2019.4\extras\Command Line Utility

環境変数PATHへの追加

私が確認したWindows10の場合は、インストール後にコマンドパスが通っていませんでした。GUI操作で通しておくか、スクリプトにする場合は都度以下のようなコマンドをいれておくとよいと思います(以下は、Powershellの場合)

$Env:Path += ";C:\Program Files\Tableau\Tableau Server\2019.4\extras\Command Line Utility\"

パスを通した後であれば、tabcmd のみでコマンド操作を行うことが出来ます。パスを通さない場合は、コマンドのフルパスを入力するか、インストールディレクトリに移動して .\tabcmd と打つ必要があります。

スポンサーリンク

基本的な使い方

コマンドユーティリティのバージョン確認

PS > tabcmd version
Tableau Server Command Line Utility — 20194.0.0.0

コマンドヘルプ

用法 説明
tabcmd help tabcmd コマンドのヘルプ
tabcmd help コマンド名 特定のコマンドのヘルプを表示
tabcmd help commands 利用可能なすべてのコマンドをリスト

tabcmd コマンドのヘルプ

tabcmd help、または単に tabcmd と打つとtabcmd自体のヘルプを表示できます。これを忘れたらどうしようもないですが。

PS > tabcmd
Tableau Server Command Line Utility — 20194.0.0.0

tabcmd help — tabcmd コマンドのヘルプ
tabcmd help — 特定のコマンドのヘルプを表示
tabcmd help commands — 利用可能なすべてのコマンドをリスト

tabcmd help | commands
コマンド オプション:
グローバル オプション:
(表参照)
PS >

グルーバルオプション 説明
–[no-]cookie サインイン時にセッション ID を保存しません。後続のコマンドを実行する際には、再度サインインが必要になります。指定しない場合、既定ではセッション IDが保存されます
-c,–use-certificate クライアント証明書を使用してサインインしてください
-h,–help tabcmd のヘルプを表示
–no-certcheck SSL 証明書を検証しない
–no-proxy HTTP プロキシを使用しない
-p,–password <PASSWORD> 指定された Tableau Server パスワードを使用
–password-file <FILE> ファイルから Tableau Server パスワードを読み込む
-s,–server <URL> 指定された Tableau Server URL を使用します。プロトコルが指定されていない場合は、http:// であると見なされます
-t,–site <SITEID> 指定した Tableau Server サイトを使用します。空の文字列 (”) を指定すると、既定のサイトが強制的に使用されます
–timeout <SECONDS> サーバーがコマンドの処理が完了するまで待機する時間を秒単位で指定します。既定では、サーバーから応答が返ってくるまで待機します
-u,–username <USER> 指定された Tableau Server ユーザー名を使用
-x,–proxy <HOST:PORT> 指定された HTTP プロキシを使用

特定のコマンドのヘルプを表示

tabcmd help コマンド名 で特定のコマンドヘルプが表示されます。表示結果にはコマンドオプション、グローバルオプションが含まれた形で表示されます。

tabcmdコマンドの基本用法

tabcmd + command + [option]

command の部分にやりたい操作、login , logout , publish などが入ってきます。

PS C:\Users\PF79255> tabcmd help publish
Tableau Server Command Line Utility — 20194.0.0.0

ワークブック、データ ソース、または抽出をサーバーにパブリッシュ

tabcmd publish [options]
コマンド オプション:(表示内容は省略)

利用可能なすべてのコマンドをリスト

tabcmd help commands で利用可能なコマンド一覧を表示できます。

バージョン2019.4.0の場合
コマンド 説明
tabcmd addusers ユーザーをグループに追加
tabcmd createextracts パブリッシュされたワークブックまたはデータ ソース用の抽出を作成
tabcmd creategroup ローカル グループの作成
tabcmd createproject プロジェクトの作成
tabcmd createsite サイトの作成
tabcmd createsiteusers 現在のサイト上でユーザーを作成します
tabcmd createusers サーバー上でユーザーを作成します
tabcmd decryptextracts サイトで抽出を複合化する
tabcmd delete サーバーからワークブックまたはデータ ソースを削除します
tabcmd deleteextracts パブリッシュされたワークブックまたはデータ ソース用の抽出を削除
tabcmd deletegroup グループの削除
tabcmd deleteproject プロジェクトの削除
tabcmd deletesite サイトの削除
tabcmd deletesiteusers サイト ユーザーの削除
tabcmd deleteusers ユーザーの削除
tabcmd editdomain ドメインの編集
tabcmd editsite サイトの編集
tabcmd encryptextracts サイトで抽出を暗号化する
tabcmd export サーバーから、ビューのデータまたはイメージをエクスポート
tabcmd get サーバーからファイルを取得
tabcmd help tabcmd コマンドのヘルプ
tabcmd initialuser 初期化されていないサーバー上で最初のユーザーを作成します
tabcmd listdomains ドメインのリスト
tabcmd listsites ユーザーのサイトをリスト
tabcmd login サーバーにサインイン
tabcmd logout サーバーからサインアウト
tabcmd publish ワークブック、データ ソース、または抽出をサーバーにパブリッシュ
tabcmd reencryptextracts サイトで抽出を再暗号化する
tabcmd refreshextracts サーバー上のワークブックまたはデータ ソースの抽出を更新
tabcmd removeusers ユーザーをグループから削除
tabcmd reset_openid_sub ユーザーの OpenID 接続サブ ID をリセット
tabcmd runschedule スケジュールを実行
tabcmd set サーバー上で設定を行います
tabcmd syncgroup サーバーを Active Directory グループと同期
tabcmd version バージョン情報を出力します

よく使う操作

ログインする

コマンド用法

tabcmd login [options]

説明:サーバーにサインインします。セッションは、サーバー上で期限切れになるか、”tabcmd logout” を使用するまで引き続き有効です

PS > tabcmd login –server http://<サイトURL> –username <ユーザー名> –password <パスワード>
===== 新しいセッションを作成しています
===== Server: http://<サイトURL>
===== Username: <ユーザー名>
===== サーバーに接続しています…
===== サインインしています…
===== 正常に終了しました

  • プロキシサーバーを経由させる必要がある場合
    • –proxy <host:port> オプションを加える
  • プロキシサーバーを経由させたくない場合
    • –no-proxy オプションを加える

パブリッシュする

拡張子「.twb(x)」「.tde」「.hyper」などをパブリッシュできます。

コマンド用法

tabcmd publish WORKBOOK/DATASOURCE [options]

説明:ワークブック、データ ソース、または抽出をサーバーにパブリッシュ

PS > tabcmd publish ‘.\ダミー.hyper’-o -name “test-data”
===== 前のセッションを続行しています
===== Server: http://<サイトURL>
===== Username: xxxxx
===== サーバーに ‘.\ ダミー .hyper’ をパブリッシュしています。この処理には数分かかることがあります…
===== ファイルがサーバーの次の場所に正常にパブリッシュされました:
===== http:///datasources/test-data
PS >

エクスポートする

ちゃんと使えば使いそうなエクスポートコマンド。PDF化⇒プロジェクト関係者にメール送付などで使えそうです。エクスポートはビューか、ワークブックかを意識するようです。

コマンド用法

tabcmd export WORKBOOK/VIEW [options]

説明:サーバーから、ビューのデータまたはイメージをエクスポート

エクスポートするときに、サイト内のワークブックやビューを最初にリストで表示して名称を確認したいですね。そのためのコマンドは見当たらない。わざわざウェブでワークブック名やビュー名を見るのは少し億劫。

ビューのエクスポート

PS > tabcmd export “Superstore/Overview” –csv -f “Superstore_20191217.csv”
===== 前のセッションを続行しています
===== Server: http://<サイトURL>
===== Username: xxxxx
===== サーバーから ‘Superstore/Overview’ を要求しています…
===== Superstore/Overview を ‘Superstore_20191217.csv’ に保存しました

PS > tabcmd export “Superstore/Overview” –pdf -f “Superstore_20191217.pdf”
===== 前のセッションを続行しています
===== Server: http://<サイトURL>
===== Username: xxxxx
===== サーバーから ‘Superstore/Overview’ を要求しています…
===== Superstore/Overview を ‘Superstore_20191217.pdf’ に保存しました

ワークブックのエクスポート

PS p> tabcmd export “Superstore/Overview” –fullpdf -f “Superstore_20191217full.pdf”
===== 前のセッションを続行しています
===== Server: http://<サイトURL>
===== Username: xxxxx
===== サーバーから ‘Superstore/Overview’ を要求しています…
===== Superstore/Overview を ‘Superstore_20191217full.pdf’ に保存しました
PS >

ログアウトする

コマンド用法

tabcmd logout

説明:サーバーからサインアウト

PS > tabcmd logout
===== redirecting to http://<サイトURL>/auth
===== サインアウトしました

まとめ

コマンドラインユーティリティ「tabcmd」 について記事投稿しました。

コマンドを使おうと思ったきっかけは、Tableau Prep Conducotorを所有してないからです。フローで作った抽出ファイルを手動でサーバーにアップロードするのが手間なんですよね。

記事にするかは微妙ですが、Powershellを使ってTableau Prepコマンドライン〜Tabcmdを使いサーバーまでの自動アップロードするところまでのスクリプトは出来ています。

久しぶりに黒い画面を使いましたが、長らく使っていないと目がパサパサします。

タイトルとURLをコピーしました