【Tableau初心者向け】jsonデータの分析の入門
新卒3年目の可視化分析官の寺内です。
json形式のデータを分析したいと思うこと、ありますよね。 例えば、APIのレスポンスデータなどはjson形式のことも多いです。
そんな時にも、Tableauが使えます。面倒な前処理も必要なく、基本的には簡単です。 ただ、少し取っつきにくさがあります。 そこで、今回は、Tableauでjson形式のデータを分析したことがない人向けに、最低限必要なことを記事としてまとめました。
サンプルのjson形式のデータ
本記事で扱う説明用のサンプルデータはこちらです。
※記事の本筋ではないですが、json形式の詳細な定義を知りたい人は、下記をご参照ください。
Tableauでjson形式のデータを読み込む際の仕組み
Tableauは基本的には表形式のデータを扱うツールです。しかし、(表形式でない)json形式のデータも扱えるのは、Tableauが内部でjson形式のデータを表形式のデータに読み換えているからです。
すなわち、基本的には、この内部での読み換え以外は、csvやエクセルデータなどの表形式のデータを扱うときの仕組みと同じです。つまり、この読み換えが重要で、それさえ理解できれば(初心者として)十分です。
内部読換のパターン(サンプルデータ)
内部読換のパターンは、下記の図から読み取れます。
内部読換のパターンのポイントを下記にまとめました。 (言葉で表現すると一気に分かりにくくなるので、上で何となくを理解した上で読むことをお勧めします)
配列[...]の要素であるオブジェクト{...}が、行になる
オブジェクトのキーとバリューの組が、「フィールド名」と「値」の組となる(例えば、A1とa1_1の組)
キーについて、対応するバリューがオブジェクトであるような場合、表形式のデータには組み込まれない(例えば、A2やB2)
※ネストした子オブジェクトの場合、直上の親オブジェクトのキーが、その子オブジェクトが基である「フィールド」が属する「フォルダ名」となる(例えば、A2がB1が属するフォルダ名、B2がC1とC2が属するフォルダ名)
Tableauでjson形式のデータを読み込む際の操作
繰り返しになりますが、Tableauでは、json形式と表形式のデータを扱うときとで、内部読み換えすること以外に大きな違いはありません。
スキーマの選択
その他のあまり本質的ではない違いとして、Tableauでjson形式のデータを読み込むと、下記のような、スキーマを選択する操作が必要であることを挙げておきます。
これは、単に使用列をチェックし不使用列をアンチェックする、という狭い意味でのスキーマ選択でしかないです。したがって、分析に必要な列が分かっていれば簡単です。大抵の場合ここで悩むことはないように思います。
このスキーマ選択機能が、jsonを読み込んだ時にのみ存在する理由(本筋ではない)
jsonファイルでは、キーが同じオブジェクトが大量に存在しやすいです(例えば、jsonではネストが許されるので、id,name,itemなどのキーが頻出します)。 そのため、Tableauで読み込んだ時、似たフィールド名がワークブックに大量に存在してしまうので、分かりにくくなってしまいがちだと思います。 これを防ぐために、この機能が存在するのではないかと推測しています。
(発展的な話題)コマンドでjsonのデータを更新する際の注意
発展的な話題になるので、気になる人以外読み飛ばしてください。
ここまで散々、json形式と表形式のデータを扱うときとで、本質的な違いはない、と話してきました。 しかし、予めTableau ServerやOnlineにPublishしたjson形式のデータを、コマンドで更新するときは、注意が必要です。
例えば、tab refreshextractコマンドでTableau Serverに存在するjson形式のデータを更新しようとしたが出来なかった、という話を伺ったことがあります。 ServerやOnlineにjson形式のデータを日次で自動更新していきたいときなどには、予め検証する必要がある、ということです。
最後に
できるだけイメージで理解できるよう説明を心掛けたつもりですが、いかがでしたでしょうか。 皆さまのjson形式のデータの分析へのハードルが少しでも下がったら幸いです。
寺内