#tc18 [レポート] Tableau Server ClientとREST APIを使用した作業の自動化 – Tableau Conference 2018 at New Orleans

A・P・I!! A・P・I!!
2018.11.19

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

目次

セッション概要

当セッションの概要は以下の通りです。

<セッションタイトル> Automate Your Workflow Using Tableau Server Client and the REST API (Tableau Server ClientとREST APIを使用した作業の自動化 )</br/> <講師> Ang Gao, Tableau Chris Shin, Tableau

<レベル> Intermediate

<セッション概要> Join this session to learn and understand how to use the REST API with the Tableau Server Client, and to explore ways to better automate your workflow. (このセッションに参加して、Tableau Server ClientでREST APIを使用する方法を理解し、ワークフローをより自動化する方法を検討してください。)

セッションレポート

Tableau REST APIとは何か?

そもそも「REST」とは何か?

RESTとはWebサービスの設計思想の一つですが、その思想に基づいて開発されたAPIがREST APIです。そのサービスのURIにHTTPメソッドでアクセスすることで、データの送受信を行うことができます。

データを操作するために必要な最低限の要素(CRUD)も、もちろん可能です。それぞれPOST、GET、PUT、DELETEという形で対応しています。また、返ってくるデータはXMLかJSONとなっています。

Tableau ServerのREST APIとは?

下記のような操作をAPI越しに実現できます。

  • ユーザー管理
  • ユーザーの作成、照会、更新
  • コンテンツとパーミッションの管理
  • ワークブックのパブリッシュ、照会、変更
  • データソースのパブリッシュ、照会、変更
  • サーバーの構成
  • サイト、プロジェクト、グループ、パーミッション、スケジュール、サブスクリプション、タグ

Tableau ServerのREST APIを使用することで、下記ようなことも可能です。

  • 組み込み分析
  • コンテンツ監査
  • ワークフローの統合
  • 大規模な自動化

curl “http://MyServer/api/3.1/sites/site-id/groups/” –X POST –H “XTableau-Auth:12ab34cd56ef78ab90cd12ef34ab56cd"
–d
‘<tsRequest><group name=“TC18" /></tsRequest>’

CurlでTableau Server REST APIを利用する場合はこのような形になります。グループの作成を行います。

(ユーザーをサイトに追加し、さらにグループに登録する部分を、REST APIで行うデモが実演されました。POSTMANを使用しています。)

Tableau Server Client Library(TSC)とは何か?

プロジェクトを作成してみる

import tableauserverclient as TSC

# Set up Authentication
server = TSC.Server("server_address")
server.use_server_version()
tableau_auth = TSC.TableauAuth("username", "password")

with server.auth.sign_in(tableau_auth):
# Create new project
new_project = TSC.ProjectItem("project_name"
, "description")
new_project = server.projects.create(new_project)
  1. TSCをインポートします。
  2. Tableau Serverに認証する処理を記述します。
  3. そして新規プロジェクトを作成する処理を記述します。

ワークブックをパブリッシュしてみる

REST APIでワークブックをパブリッシュするには、以下の課題があります。

  • マルチパートXMLを処理する必要がある
  • 1つのリクエストで64MBを超えるワークブックを送信できない
  • Pythonでこれを行う場合、パブリッシュするには300行以上のコードが必要

そしてデモが実演されました。

各種リソース

まとめ

Tableau ServerのREST APIの解説と、それをPythonで扱うことができるライブラリの紹介、そしてデモが実演されたセッションでした。ワークブックのパブリッシュについては若干面倒な印象を受けましたが、大量のユーザーやグループの追加あたりの単純作業は、これを利用することで楽に自動化することができそうです。

動画