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 helptabcmd コマンドのヘルプ
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,–helptabcmd のヘルプを表示
–no-certcheckSSL 証明書を検証しない
–no-proxyHTTP プロキシを使用しない
-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 helptabcmd コマンドのヘルプ
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を使いサーバーまでの自動アップロードするところまでのスクリプトは出来ています。

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