Tableau Serverの自動化サポートタスク(tabadmin, tabcmd, REST API)の処理対応内容をまとめてみた
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
先日、Tableau社からTシャツが届きました。Tableau 9.0ベータ版に関するテストに参加していた(不具合報告等)のでその御礼に、という事らしいです。以前Tableau8.2を扱っていた際にも同様のアクションがあったので、それ以来2回目という事になります。
届いたTシャツは以下になります。コードネームが『mariner』でしたので某米国野球チームに倣った感じのデザインになっております。デザイン的にもシンプルな感じなので、どこかで着てみようと思います。
では、本題。
Tableau Serverには、専用のコマンドラインツールやAPIが幾つか用意されています。これらを上手く活用する事で、Tableau Serverに関する作業内容を省力化・自動化して行く事が可能となります。以下3つのツール・APIがそれらの対象となります。
- tabadmin
- tabcmd
- REST API
これらのツール・APIによる処理は多種多様なものが取り揃えられている感じですが、数が多いのもあってどのツールでどんな処理を対応しているのか、という点については若干整理されていない感もあります。そこで当エントリでは『tabadmin』『tabcmd』『REST API』について用途別に処理を整理し、どのツールで何が出来て何が出来ないのか、任意の処理を行わせたい場合、どのツール・APIを使えば良いのかの判断が付き易くなるようなまとめを行なってみたいと思います。
目次
tabadmin/tabcmd/REST APIの大まかな特徴
まずは前述3つのツール群についての大まかな特徴や違いを見てみましょう。それぞれ以下の様な特徴があります。この事から、大きく『システム管理系(tabadmin)』と『コンテンツ管理系(tabcmd & REST API)』に情報を分ける事が出来そうです。
| ツール | 内容 |
|---|---|
| tabadmin | tabadmin コマンド ライン ツールを使用して、特定の管理タスクを実行し、 Tableau Server の構成設定を変更できます。 既定では、Tableau Server と共にインストールされます。 他のコンピューターにはインストールできません。 |
| tabcmd | Tableau Serverと共にインストールされる 2 つのコマンド ライン ツールの 1 つです (もう一方は tabadmin)。 tabcmdによって提供されるコマンドは、数回に分けてのワークブックのパブリッシュや、 ユーザーとグループの管理など、一般的なタスクを自動化するのに役立ちます。 tabcmd ユーティリティは Tableau Server の bin フォルダーにインストールされますが (C:\Program Files\Tableau Server\9.0\bin)、 別のマシンでも同様に tabcmd をインストールして実行できます。 |
| Tableau Server REST API | HTTP を介してプログラムによって Tableau Server リソースを管理および変更できます。 API を使用すると、Tableau Serverでデータソース、プロジェクト、ワークブック、 サイト ユーザー、およびサイトの機能に簡単にアクセスできます。 このアクセスを使って、独自のカスタム アプリケーションを作成したり、 Tableau Server リソースとの相互作用をスクリプトしたりできます。 |
目的別コマンド・処理一覧(tabadminコマンド)
まずは『tabadmin』コマンドでどんな事が出来るのか、整理して行きたいと思います。こちらは上述の通り、Tableau Serverに於けるシステム方面の管理内容をコマンドで制御出来るような形となっています。
コマンド体系としては、tabadmin (オプション)の形で所定のプログラム(tabadmin.exe)を実行する事により、処理を実行します。要素・目的別に分類したコマンド一覧の内容は以下の通りです。
| コマンド・オプション | 処理内容 |
|---|---|
| ライセンス | |
| tabadmin activate | Tableau Serverライセンスのアクティブ化または返却 |
| tabadmin lisences | ライセンス情報の表示 |
| 各種環境設定 | |
| tabadmin set | Tableau Server 構成オプションの値を変更 |
| tabadmin configure | Tableau Serverの設定ファイルの(強制)更新 |
| tabadmin customize | ロゴ及び名前のカスタマイズ |
| tabadmin dbpass | PostgreSQLデータベースリポジトリへの外部アクセス設定 |
| 活動制御 | |
| tabadmin autostart | Tableau Serverのシステム開始時刻起動設定 |
| tabadmin start | すべての Tableau Server プロセスを開始 |
| tabadmin stop | すべての Tableau Server プロセスを停止 |
| tabadmin restart | すべての Tableau Server プロセスを停止および開始 |
| tabadmin warmup | 各 VizQL サーバー プロセスを vizql DLL ファイルに読み込むように設定 |
| tabadmin reindex | Tableau Server の検索インデックスを再構築 |
| バックアップ・リストア | |
| tabadmin backup | Tableau Serverデータのバックアップ |
| tabadmin restore | Tableau Server バックアップ ファイル (.tsbak) を Tableau Server インストールにリストア |
| tabadmin cleanup | ディスク容量の削減(利用領域のお掃除) |
| ログ・監視 | |
| tabadmin ziplogs | Tableau Serverログ ファイルを含むアーカイブ (.zip) を作成 |
| tabadmin status | Tableau Serverのステータス情報を表示 |
| セキュリティ・権限 | |
| tabadmin administrator | システム管理者機能を任意のユーザーへ許可または削除 |
| tabadmin manage_global_credentials | Tableau Server で委任されたデータ アクセスの認証資格情報を管理 |
| tabadmin passwd | Tableau Server アカウントのパスワードをリセット |
| tabadmin regenerate_internal_tokens | Tableau Server が内部で使用する、新しいセキュリティ トークンを作成 |
| tabadmin assetkeys | 新しいキーを作成し、機密情報を暗号化 |
| インストール | |
| tabadmin validate | Tableau Server 環境が、任意のビットバージョンを実行するための最低要件を満たしているかどうかを確認 |
| tabadmin decomission | Tableau Server ファイル ストア ノードで分散インストールから削除する準備を行う |
| サイト | |
| tabadmin importsite | サイト情報のインポート |
| tabadmin exportsite | サイト情報のエクスポート |
| tabadmin importsite_verified | サイトのインポート プロセスの 2 番目の部分を実行 |
| tabadmin sitestate | サイトをアクティブ (アンロック) または一時停止にする |
| クラスタ構成 | |
| tabadmin failoverprimary | Tableau Serverクラスタ構成のプライマリフェイルオーバーに関する設定 |
| tabadmin failoverrepository | PostGRES リポジトリの 2 番目のインストールをアクティブなリポジトリとして特定 |
| tabadmin recommision | コミッション解除されたファイル ストア ノードを読み取り専用モードからアクティブな読み取り/書き込み状態へ戻す |
目的別コマンド・処理一覧(tabcmd & REST API)
続いて、以下にご紹介する内容はtabcmd及びREST APIに関する処理の一覧です。こちらは主に『コンテンツ』に関する諸々の操作を行うための手段となっています。
同じ処理が双方で実装されていたり、または片方で実現されていたりと状況に拠って様々でしたので、表形式で整理を行いました。灰色で塗られているセルはそのまま『現状未対応・処理が存在していない』という意味となります。また双方に処理が存在していた場合でも、その詳細内容については若干の相違があるようなので細かい部分についてはそれぞれのドキュメントを参照・確認するようにしてください。
サイトに関する操作
| tabcmd | REST API | |
|---|---|---|
| コマンド・オプション | 処理内容 | REST APIメソッド |
| tabcmd createsite (site-name) | サイトを作成 | サイトの作成 |
| tabcmd editsite (site-name) | サイトまたはその Web フォルダー名を変更 | サイトの更新 |
| tabcmd deletesite (site-name) | 指定のサイトをサーバーから削除 | サイトの削除 |
| tabcmd listsites | ログインしたユーザーが属しているサイトのリストを返す | サイトの一覧を返す サイトの詳細を返す |
プロジェクトに関する操作
| tabcmd | REST API | |
|---|---|---|
| コマンド・オプション | 処理内容 | REST APIメソッド |
| tabcmd createproject (project-name) | プロジェクトを作成 | プロジェクト - プロジェクトの作成 |
| tabcmd deleteproject (project-name) | 指定のプロジェクトをサーバーから削除 | サイトからプロジェクトを削除 |
| サイト内のプロジェクト一覧 プロジェクトの更新 | ||
グループに関する操作
| tabcmd | REST API | |
|---|---|---|
| コマンド・オプション | 処理内容 | REST APIメソッド |
| tabcmd creategroup (group-name) | グループを作成 | グループの作成 |
| tabcmd deletegroup (group-name) | 指定のグループをサーバーから削除 | |
| サイト内のグループの取得 グループの更新 | ||
ユーザーに関する操作(ユーザー単独)
| tabcmd | REST API | |
|---|---|---|
| コマンド・オプション | 処理内容 | REST APIメソッド |
| tabcmd createusers (filename.csv) | Tableauにユーザーを作成 | |
| tabcmd deleteusers (filename.csv) | ファイルにリストされているユーザーを削除 | |
| ユーザーの更新 | ||
ユーザーに関する操作(サイト&ユーザー)
| tabcmd | REST API | |
|---|---|---|
| コマンド・オプション | 処理内容 | REST APIメソッド |
| tabcmd createsiteusers (filename.csv) | サイトにユーザーを追加 | サイトにユーザーを追加 |
| tabcmd deletesiteusers (filename.csv) | ログインしているサイトからユーザーを削除 | サイトからユーザーを削除 |
| サイト内のユーザ一覧の取得 サイト内のユーザの取得 | ||
ユーザーに関する操作(グループ&ユーザー)
| tabcmd | REST API | |
|---|---|---|
| コマンド・オプション | 処理内容 | REST APIメソッド |
| tabcmd addusers (group-name) | 指定したグループにユーザーを追加 | グループにユーザーを追加 |
| tabcmd removeusers (group-name) | 指定したグループからユーザーを削除 | グループからユーザーを削除 |
| グループ内のユーザーの取得 | ||
コンテンツ全般に関する操作
| tabcmd | REST API | |
|---|---|---|
| コマンド・オプション | 処理内容 | REST APIメソッド |
| tabcmd publish (filename.twb(x)) tabcmd publish (filename.tds(x)) tabcmd publish (filename.tde) | 指定したファイルを Tableau Serverにパブリッシュ | |
| tabcmd get (url) | 指定したURLによって表される Tableau Serverからリソースを取得 (結果はファイルとして返される) | |
| ファイルアップロードの開始 ファイル アップロードに追加 | ||
ワークブックに関する操作
| tabcmd | REST API | |
|---|---|---|
| コマンド・オプション | 処理内容 | REST APIメソッド |
| tabcmd delete (workbook-name) | 指定のワークブックをサーバーから削除 | ワークブックを削除 |
| tabcmd export (workbook-name) | Tableau Server からビューまたは ワークブックをエクスポートして ファイルに保存 | |
| タグを削除 パブリッシュ パブリッシュ ダウンロード タグを追加 ビューをクエリ プレビューイメージのあるビューをクエリ ワークブックをクエリ 接続をクエリ プレビューイメージをクエリ ユーザー用ワークブックをクエリ ワークブックを更新 ワークブックの接続を更新 | ||
データソースに関する操作
| tabcmd | REST API | |
|---|---|---|
| コマンド・オプション | 処理内容 | REST APIメソッド |
| tabcmd delete (datasource-name) | 指定のデータソースをサーバーから削除 | データソースの削除 |
| データソースのパブリッシュ データソースのダウンロード データソースの詳細クエリ データソースのサイト内一覧クエリ データソースの更新 データソースの接続を更新 | ||
Active Directoryに関する操作
| tabcmd | REST API | |
|---|---|---|
| コマンド・オプション | 処理内容 | REST APIメソッド |
| tabcmd editdomain | サーバー上の Active Directory ドメインの ニックネームや完全修飾ドメイン名を変更 | |
| tabcmd listdomains | サーバーで使用中の Active Domain ドメインのリストを ニックネームや ID と一緒に表示 | |
| tabcmd syncgroup (group-name) | Tableau Server グループを Active Directory グループと同期化 | |
ログイン認証に関する操作
| tabcmd | REST API | |
|---|---|---|
| コマンド・オプション | 処理内容 | REST APIメソッド |
| tabcmd login | Tableau Server ユーザーにログイン | サインイン |
| tabcmd logout | Tableau Serverからログアウト | サインアウト |
スケジュールに関する操作
| tabcmd | REST API | |
|---|---|---|
| コマンド・オプション | 処理内容 | REST APIメソッド |
| tabcmd runschedule (schedule-name) | 指定されたスケジュールを実行 | |
| "tabcmd refreshextracts (workbook-name) tabcmd refreshextracts (datasource-name)" | 指定されたワークブックまたは データソースに属する抽出の 完全更新または増分更新を実行 | |
パーミッションに関する操作
| tabcmd | REST API | |
|---|---|---|
| コマンド・オプション | 処理内容 | REST APIメソッド |
| データソース パーミッションの追加 データソース パーミッションのクエリ データソース パーミッションの削除 プロジェクト パーミッションの追加 プロジェクト パーミッションのクエリ プロジェクト パーミッションの削除 ワークブック パーミッションの追加 ワークブック パーミッションのクエリ ワークブック パーミッションの削除 | ||
その他操作
| tabcmd | REST API | |
|---|---|---|
| コマンド・オプション | 処理内容 | REST APIメソッド |
| tabcmd set (setting) | サーバー上の指定された設定を有効にする | |
| tabcmd version | tabcmdユーティリティの現在の インストールのバージョン情報を出力 | |
| ジョブのクエリ お気に入りにビューを追加 お気に入りにワークブックを追加 お気に入りからビューを削除 お気に入りからワークブックを削除 | ||
まとめ
以上、Tableau Serverの作業を効率化・自動化するためツール及びAPIのご紹介でした。改めて整理してみると、実に様々な処理が実現出来るのだなぁと思いました。少人数構成ならまだしも、大規模構成・大規模人数の環境下では諸々の作業を遂行するだけでも骨の折れるものとなります。そういった部分についてこれらの仕組みを上手く活用出来ると皆がハッピーになれそうですね。こちらからは以上です。












