FirebaseをTableauで可視化するには
- Fiebaseを有料プランでやる必要がある
- 出力はBigQueryになるので、Firebase→BigQueryでローデータを吐き出す
- BigQueryに対してTableauで可視化する!
となります。
FirebaseをBigQueryに出力する方法は、他の記事 におまかせします。
TableauとFirebase(BigQuery)の連携
Tableauを立ち上げ、スタートページから サーバーへ→Google BigQueryを選択して接続します。
BigQueryのブラウザ認証が走るので、対象となるアカウントで認証して、アクセス許可をしてください
こちらのメッセージが出ればOK。ブラウザを閉じて、Tableauへ
対象となるFirebaseのテーブルをドラッグ&ドロップします
※ここではまだエラーにはならない
error.txt
Unexpected Error
Google BigQuery サービスがクエリをコンパイルできませんでした。
エラー コード: 015CFBE6
Cannot access field key on a value with type ARRAY<STRUCT<key STRING, value STRUCT<string_value STRING, int_value INT64, float_value FLOAT64, ...>>> at [38:27]
このようなエラーが出て、閲覧ができません。
これは、Firebaseのカラムの中に、構造体が入っているので、そちらをUNNESTしてフラット化して上げる必要があります。
firebase_unnest.sql
SELECT
event_date,
event_timestamp,
event_name,
event_param.key AS event_param_key,
event_param.value.string_value AS event_param_string_value,
event_param.value.int_value AS event_param_int_value,
user_id,
user_pseudo_id
FROM
`(Dataset).firebase.events`,
UNNEST(event_params) AS event_param
LIMIT
1000
もしくは
firebase_unnest2.sql
SELECT
event_date,
event_name,
(SELECT value.string_value FROM UNNEST(event_params) WHERE key = "page_location") AS page_location
FROM
`(Dataset).firebase.events`
このどちらかでFlat化するのが良さそう
下のSQLで Where区をいれないと、複数の値があると怒られます
SELECT value.string_value FROM UNNEST(event_params) AS property
``
上記の結果を、Viewに保存します。


これでVIZをつくります。
VIEWの中にLIMIT句をいれていますが、データソースが非常に大きいときは、VIEWの中にLIMIT句を入れ、VIZを作り
本番運用の際には、VIEWの中からLIMIT句をはずすとVIZを作るのにストレスがなくていいです!
(自動更新を止めたりする必要がない)