Tableauのデータソース置換をXML編集でやってみた

20201214mkobayashi

はじめに

Tableauのデータソースを置換すると、色や並びの設定がリセットされてしまいます。

ダッシュボードを作りこんでからデータを変更すると設定しなおすのが大変ですが、開発・検証用データで開発を進めて、最後に本番データに接続するなど、開発後にデータを変更したい場合もあると思います。

 

今回は、色や並びの設定はそのまま、データソースを変更する方法をご紹介します。

 

ご注意

XMLによるワークブック編集は、Tableau公式ではサポートされていません。

また、編集に失敗するとファイルが壊れてしまう可能性があります。

必ずバックアップをとった上で、お試しください!

 

実際にやってみる

twbファイルをテキストエディタで開くと、XMLのコードを確認することができます。

データに関する記述の箇所を編集していきましょう。

 

※twbxファイルはテキストエディタで開いてもコードは確認できません。

twb形式で保存した上で、お試しください。

 

0.前準備:ワークブック内を整理する

ワークブックとして持っている情報が多いほどXMLの行数も増え確認が大変になるので、作業前に不要なシートや計算フィールド、フィルターやアクションなどは削除しておきます。

 

1.確認用ワークブックを作る

新しくワークブックを開き、置換後に接続したいデータに接続して保存します。

 

2.twbファイルをテキストエディタで開く

データソース置換を行いたいワークブックと確認用ワークブックをテキストエディタで開きます。

テキストエディタを開いた状態でtwbファイルをドラッグアンドドロップするか、twbファイルを右クリックし「プログラムから開く」でテキストエディタを選択すると、twbファイルをテキストエディタで開くことができます。

 

3.データソースに関する記述を編集する

編集する箇所は条件によって異なるのですが、今回はTableauServerの同一サイトにパブリッシュしたデータ同士の置換を例に説明します。

Sales TargetというデータソースからSample – Japan Superstoreというデータソースに変更してみます。

 

3-1.datasource caption=’データソース名’を検索置換する

"datasource caption"で検索します。

datasource caption=’データソース名’がヒットしたら、確認用ワークブックから同じ箇所の記述をコピーしてきて一括置換します。

 

3-2.repository-location id、dbnameを置換する

datasource captionの1~2行下にrepository-location idとdbnameの記述があります。

3-1同様、確認用ワークブックから同じ箇所の記述コピーして一括置換します。

 

3-3.formatted-name='データソース名&aposを検索置換する

3-1、3-2から行数が離れるので、"formatted-name"で検索します。

3-1、3-2同様、確認用ワークブックから同じ箇所の記述をコピーして一括置換します。

 

※repository-location idとdbnameは記述が2パターン存在する場合があります。

パターン1:repository-location id=’データソース名’

パターン2:repository-location id='データソース名&apos

パターン2はformatted-nameの近くに記述があります。それぞれ置換します。

 

※repository-location idに他の記述が入っていることもあります。

その場合は、id=~の部分だけ検索置換します。

 

※'データソース名'の部分はデータソース名ではなく、半角英数字の羅列になっていることもあります。

その場合も同様に置換します。

 

複数のデータソースを置換したい場合は、3-1に戻って同じ作業を繰り返します。

※<datasource caption=~>からdatasourceタグが始まり、次の</datasource>閉じタグが出現するまではひとつのデータソースに関する記述です。

 

4.テキストエディタでファイルを保存する

 

5.Tableauでファイルを開く

エラーが表示されることがありますが、Tableauで上書き保存してから開きなおすと解消する場合があります。

 

6.データソースを確認する

データソースの接続を確認します。

シート画面で見ると、名称だけ変更されていて接続先が変わっていない場合があるので、必ずデータソース画面で確認してください。

置換後のデータソースに接続していることを確認できたら、作業完了です!

 

おわりに

似た記述が繰り返し登場するので、テキストエディタの一括置換を使うと効率的に編集することができます。

今回はTableauServerにパブリッシュしたデータ同士の置換を例に説明しましたが、他の条件でも、確認用ワークブックを用意してXMLを比較し、記述が異なる箇所を上書きする、という方法でデータソース置換が可能です。

ローカルフォルダのhyperからTableauServerやSQLServer上のデータソースに変更したり、SQLServer上のデータソースからTableauServer上のデータソースにも置換できます。

 

Alteryxでこの書き換え作業を行うこともできます。こちらの記事で紹介しています。

また、こちらの記事では、XML編集で並び替えの変更を行う方法を紹介しています。

ぜひあわせて読んでみてくださいね。

 

【メンバー募集中】

truestarでは、新しい仲間を募集しています。詳細は以下をご覧ください。
株式会社truestar採用サイト https://en-gage.net/truestar/