Export Collections to BigQuery で Firestore のデータを BigQuery へ自動エクスポート

Firestore のデータを BigQuery へ吐き出す際には ”Export Collections to BigQuery” という大変便利な拡張機能があります。

https://firebase.google.com/products/extensions/firestore-bigquery-export?hl=ja

使い方はこちらの記事で大変わかりやすく解説があります。

https://qiita.com/watatakahashi/items/e9210c19b3915ab1b0d5

https://zenn.dev/imaginelab/articles/28560a467cd1fb 

ただし、上記の記事でも案内があるようにこちらの拡張機能は設定した以前のデータは BigQuery に自動で入りませんので、別途インポートが必要となります。

過去データのインポートはターミナルで下記コマンドを叩いて、質問に答えていくだけです。

具体的には次の内容が聞かれます。

– What is your Firebase project ID?

– What is the path of the the Cloud Firestore Collection you would like to import from?(This may, or may not, be the same Collection for which you plan to mirror changes.)

– Would you like to import documents via a Collection Group query?

– What is the ID of the BigQuery dataset that you would like to use? (A dataset will be created if it doesn’t already exist)

– What is the identifying prefix of the BigQuery table that you would like to import to? (A table will be created if one doesn’t already exist)

– How many documents should the import stream into BigQuery at once? (300)

– Where would you like the BigQuery dataset to be located? (us)

– Would you like to run the import across multiple threads? (y/N)

“What is the identifying prefix of the BigQuery table that you would like to import to? (A table will be created if one doesn’t already exist)” だけ少しわかりづらかったのでメモをしておきます。

例えば users という名前のテーブルへエクスポートするよう指定した場合には、自動で “users_raw_changelog” と “users_raw_latest” というテーブルとビューが作成されます。この場合こちらの質問に対して入力するのは、”users” になります。

上記一通り回答すると、デフォルト設定ですと 300 レコードずつインポート処理が走り、無事 Firestore の中身を全部 BigQuery へ移行することができます。

おわり