LoginSignup
0
0

More than 1 year has passed since last update.

FibaseとTableauを連携させる&大きなテーブルでVIZを作る際のViewを使った小技

Posted at

FirebaseをTableauで可視化するには
- Fiebaseを有料プランでやる必要がある
- 出力はBigQueryになるので、Firebase→BigQueryでローデータを吐き出す
- BigQueryに対してTableauで可視化する!

となります。
FirebaseをBigQueryに出力する方法は、他の記事 におまかせします。

TableauとFirebase(BigQuery)の連携

Tableauを立ち上げ、スタートページから サーバーへ→Google BigQueryを選択して接続します。

image.png

BigQueryのブラウザ認証が走るので、対象となるアカウントで認証して、アクセス許可をしてください
image.png
image.png
image.png

こちらのメッセージが出ればOK。ブラウザを閉じて、Tableauへ
image.png

対象となるFirebaseのテーブルをドラッグ&ドロップします
※ここではまだエラーにはならない
image.png

「今すぐ更新」とかをするとエラーが出ます
image.png

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区をいれないと、複数の値があると怒られます
`sql
SELECT value.string_value FROM UNNEST(event_params) AS property

上記の結果を、Viewに保存します。
image.png

image.png

これでVIZをつくります。

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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0