目次
Tableauワークブックの定義情報を直接読書きできると作業効率が上がる
弊社では主力BIツールとしてTableauを長く使ってきました。Tableauは非常に高機能で様々な分析要望を実現してくれる優れたBIツールです。しかし、様々な分析要望に対応していると、どうしてもレポート数が多くなったり、レポート定義が複雑になってしまいがちです。そのため、弊社では様々なアプローチでTableau分析の効率化を行ってきました。今回はその中で若干トリッキーな手法ですが、Tableauワークブックの定義情報を直接読書きする方法をご紹介します。
Tableauワークブックの正体はXMLファイル
「Tableauワークブックの定義情報を直接読書きする」と言っても特別な方法は必要ありません。Tableauで作成したレポート定義の保存ファイルであるTableauワークブック(拡張子:twb)の正体はXMLファイルです。現にTableauワークブックをメモ帳などのテキストエディタで開くと下記のようなXML定義を見ることができます。
1 2 3 4 5 6 7 8 9 10 11 |
<?xml version='1.0' encoding='utf-8' ?> <!-- build 10000.17.0301.2201 --> <workbook source-build='10.0.8 (10000.17.0301.2201)' source-platform='win' version='10.0' xmlns:user='http://www.tableausoftware.com/xml/user'> <preferences> <preference name='ui.encoding.shelf.height' value='24' /> <preference name='ui.shelf.height' value='26' /> </preferences> <style-theme name='clean' /> <datasources> <datasource hasconnection='false' inline='true' name='Parameters' version='10.0'> |
また、レポート表示に必要な元データと定義情報と1つのファイルに纏めたTableauパッケージドワークブック(拡張子:twbx)の正体はZIP圧縮ファイルです。Tableauパッケージドワークブックを解凍するとTableauワークブックやTableau抽出ファイル(拡張子:tde)などが含まれていることが確認できます。(WindowsでTableauパッケージドワークブックを解凍する場合は拡張子を「zip」に変えるだけです)
つまり、TableauワークブックもTableauパッケージドワークブックもXMLの定義情報があるため、テキストエディタなどで簡単に閲覧することができます。この定期情報の隅々まで読書きする場合はプログラミング技術が必要ですが、簡単な情報だけ抽出する場合はTalendなどのETLツールを利用すればノンプログラミングで抽出処理を処理を開発できます。
【参考】Web API からの取得結果をデータベースに登録する処理をノンプログラミングで実現する|Talend Open Studio によるビッグデータ分析(第12回)
Tableauワークブックの定義情報を直接読めるメリット
チェックリストの作成
Tableau Desktopは非常に高性能な分、レポートの作りが複雑になったり多くなりやすいです。そのため、小さなミスをついつい見過ごしてしまいそうになります。そのため、ミスが起きないように全レポートシートのチェックを行えばいいのですが、フィルタ条件などは設定画面を毎回開く必要があるため時間が掛かってしまいます。
このようなチェック作業はTableauワークブックの定義情報を直接読むことによって楽になります。具体的には、定義情報からデータソースやフィルタ情報を抽出し、抽出結果からチェックリストを作成することで、漏れなく、効率的にチェックを行うことができるようになります。XMLで記載された定義情報は非常に複雑に見えますが、データソースやシートごとに定義が固まっているため、それほど難しい事はありません。
作成バージョンごとに起動するTableau Desktopを自動で切り替える
複数の分析案件を行う場合、Tableau Desktopの複数のバージョンを使い分ける必要が出てくる場合があります。Tableau Desktopは下位互換があるため、古いバージョンで作ったTableauワークブックを新しいバージョンのTableau Desktopで開くことはできます。しかし、新しいTableau Desktopで古いバージョンで作ったTableauワークブックを上書きしてしまうと、Tableauワークブックのバージョンが上がってしまいます。こうなってしまうと作成当時のTableau Desktopバージョンで開けなるため、運用上、都合が良くないことがあります。
1つのパソコンに複数のTableau Desktopをインストールすることは可能ですが、作成時のTableauバージョンから起動するTableau Desktopを切り替えてはくれません。それどころかTableauワークブックのアイコンやプロパティ情報などから作成時のTableau Desktopバージョンが判断できません。
そこで下記のようなTableauワークブックの定義情報から作成バージョンを取得して、起動するTableau Desktopを自動で切り替えるスターターを作ります。そして、Windowsでは、拡張子twbとtwbxの起動プログラムをスターターに設定することで、Tableauワークブックなどをダブルクリックするだけで最適なTableau Desktopを起動してくれるようになります。
Tableauワークブックの定義情報を直接書けるメリット
Tableauワークブックの定義情報を直接取得することは難しいことはありませんが、定義情報の仕様は公開されていませんので、Tableauワークブックに定義情報を直接追記するのは困難です。しかし、Tableauワークブックのをエディタなどで開いて、下記のような情報の文字列置換をするだけでも十分効果はあります。
- データソースの接続先情報のマスキング
- データソースのテーブル名や項目名の文字列置換
- フィルタ条件の文字列置換
特に定型レポートがある場合は、ベースとなるTableauワークブックをテンプレートとして作成し、データソース情報などを変えるだけでレポートの複製が出来てしまいます。
データ分析の要であるTableauの作業効率化で「考える」時間が増える
Tableauワークブックの定義情報を直接読書きすることで作業効率化が行え、作業ミスや単純作業が少なくなります。今回の取り組みは分析作業全体としては非常に小さな軽労化ですが、分析に必要なリソースを「考える」事に少しでも多く投下できることは非常に重要な事です。
なお、TableauワークブックをXMLとして読書きする方法は、正式サポートの範囲外ですので自己責任でお願いします。(TableauバージョンごとのXMLレイアウトの構成変更については、バージョン8から10まで殆ど変わってないため、大きな問題にはならないと思います)