はじめに
こんにちは。無職です。
firebaseを使っている方はfirestoreに入れているデータを活用できていますか?
今回はfirestoreにあるデータを分析したかったため、BigQueryにインポートしました。
エンスポーツさんの記事を参考にしました。https://corp.ensports.com/developers/firestore-BigQuery
方法
やり方としては、2種類方法があります。
対象となるデータが違うので私はここで少し迷いました。
「Stream Firestore to BigQuery」の説明にあるデータを同期するって言葉で、「Stream Firestore to BigQuery」で全データが同期できると勘違いしていました。
・ターミナルでこちょこちょする(すでにfirestoreにあるデータが対象)
この方法は現在あるデータをBigQueryにインポートする方法です。
ExtesionのStream Firestore to BigQueryはデータの追加などが行われた時に、その追加されたデータをBigQueryにも入れる(それより前に入っているデータは入らない)というものなので、ひとまず今あるデータを移したいという人はこちらです。
・extensionsの「Stream Firestore to BigQuery」を使用(追加したデータが対象)
「Stream Firestore to BigQuery」 は、
Firestore のデータを BigQuery に自動で同期(ストリーム)するための Firebase 拡張機能です。
これを使うと、Firestore に追加・更新・削除されたデータが、リアルタイムまたはほぼリアルタイムで BigQuery に反映されます。
⚙️ 仕組み
この拡張機能は、Firestore の特定のコレクションを監視して、
データ変更(create / update / delete)を検知すると、
その内容を BigQuery のテーブルに書き込みます。
・ターミナルでこちょこちょする
ログイン
gcloud auth application-default login
Firestore にすでにあるデータを BigQuery に一括インポート
npx @firebaseextensions/fs-bq-import-collection
その後質問に答える。
以上です。
dataの中にjson型で入れたデータが入っています。
SELECT
JSON_VALUE(data, '$.columns1') AS columns1,
JSON_VALUE(data, '$.columns2') AS columns2,
JSON_VALUE(data, '$.columns3') AS columns3,
FROM
プロジェクトID.firestore_export.デーブル名
こんな感じのクエリを叩けば中身が見れると思います。
extensionsの「Stream Firestore to BigQuery」を使用
左上にある「Stream Firestore to BigQuery」を使います。

https://corp.ensports.com/developers/firestore-bigquery
こちらに詳しく書かれているものがありますのでやり方を詳しく知りたい方はこちらを参考にしてください。
最後に
今回はfirestoreにあるデータをBigQueryに移しました。今回行った2つの方法で、既存のデータ+追加分のデータがBigQueryにはいるので、分析することができそうです。
