Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。

Stream Collections to BigQuery

Firebase
Made by Firebase

指定した Cloud Firestore コレクションから BigQuery に、リアルタイムな増分更新を送信します。

この拡張機能の動作

この拡張機能を使用すると、Cloud Firestore コレクションのドキュメントを BigQuery にエクスポートできます。エクスポートはリアルタイムで段階的に行われるため、BigQuery のデータは Cloud Firestore のコンテンツのミラーになります。

この拡張機能では、次の 2 つの BigQuery リソースを含む データセット が作成され更新されます。

  • コレクション内のドキュメントの完全な変更履歴を保存した生データの テーブル 。このテーブルには、BigQuery がデータの現在の状態を表示できるようにするための、多数のメタデータ フィールドが含まれます。主要なメタデータ フィールドは、ドキュメントの変更に関する timestamp document_name operation です。
  • コレクション内のデータの現在の状態を表す ビュー 。また、各ドキュメントの最新の operation のログ( CREATE UPDATE IMPORT )も表示されます。

指定したコレクション内のドキュメントを作成、更新、削除、またはインポートすると、この拡張機能によってその更新が BigQuery に送信されます。その後、このミラーリングされたデータセットでクエリを実行できます。

この拡張機能では、コレクション内のドキュメントの変更のみがリッスンされ、サブコレクション内の変更はリッスンされないことにご注意ください。ただしこの拡張機能の追加インスタンスをインストールすると、サブコレクションやデータベース内の他のコレクションを個別にリッスンすることが可能になります。または、特定のコレクション内の複数のドキュメントに同じサブコレクションがある場合、 {wildcard} 表記を使用してすべてのサブコレクションをリッスンできます(例: chats/{chatid}/posts )。

ワイルドカード参照を有効にすると、追加の STRING ベースの列が提供されます。結果の JSON フィールド値は、${param:COLLECTION_PATH} に含まれているワイルドカードを参照します。ワイルドカードは JSON_EXTRACT_SCALAR を使用して抽出できます。

既存のテーブルの場合、 Partition の設定を更新することはできません。これらのオプションが必要な場合、新しいテーブルを作成する必要があります。

Clustering の設定では、クラスタリング オプションを追加する際に、テーブルを作成または変更する必要はなく、自動的に更新されます。

追加の設定

インストール前に、次の作業を行ってください。

変換関数

ドキュメントの変更を BigQuery に送信する前に、HTTP 関数でデータを変換することもできます。ペイロードには以下が含まれます。

{ 
  data: [{
    insertId: int;
    json: {
      timestamp: int;
      event_id: int;
      document_name: string;
      document_id: int;
      operation: ChangeType;
      data: string;
    },
  }]
}

レスポンスは構造的に同じものである必要があります。

BigQuery データセットをバックフィルする

この拡張機能は、変更されたドキュメントのコンテンツのみを送信します。既存のドキュメントのデータセット全体を BigQuery にエクスポートすることはありません。そのため、コレクション内のすべてのドキュメントを BigQuery データセットにバックフィルする場合は、この拡張機能で用意されている インポート スクリプト を実行します。

重要: この拡張機能をインストールした後に、インポート スクリプトをコレクション全体に対して実行してください。そうしないと、インポート時にデータベースに対して行われたすべての書き込みが失われる可能性があります。

スキーマビューの生成

データが BigQuery に入ったら(この拡張機能によって提供される) schema-views スクリプト を実行して、関連データのクエリを容易にするビューを作成します。必要なのはデータ構造を記述した JSON スキーマ ファイルだけです。schema-views スクリプトがビューを作成します。

料金

拡張機能をインストールするには、プロジェクトを Blaze(従量課金制)プラン に含める必要があります。

  • この拡張機能に必要な Firebase リソースに対しては、使用しない場合でも、小額(通常は約 $0.01/月)が請求されます。
  • この拡張機能は、次に挙げる他の Firebase サービスや Google Cloud Platform サービスを使用するため、それらの無料枠を超えた場合には関連する料金が発生します。
  • BigQuery(この拡張機能は、 ストリーミング挿入 を使用して BigQuery に書き込みます)
  • Cloud Firestore
  • Cloud Functions(Node.js 10 以降のランタイム。 FAQ を参照

この拡張機能をインストールする方法

Firebase コンソールの使用

拡張機能のインストールと管理は、Firebase コンソールで行えます。

コンソールを使用してインストールする

Firebase CLI の使用

拡張機能のインストールと管理は、Firebase CLI でも行えます。

ステップ 1: 以下の npm コマンドを実行して、CLI をインストールするか、最新バージョンの CLI に更新します。

npm install -g firebase-tools
正常に機能しない場合は、 Firebase CLI リファレンス を確認するか、 npm のアクセス権 を変更してください。

ステップ 2: 新しい Firebase プロジェクトのディレクトリを設定 するか、既存のプロジェクト ディレクトリに移動します

ステップ 3: 次を実行して、この拡張機能を 拡張機能のマニフェスト に追加します

firebase ext:install firebase/firestore-bigquery-export --local --project=projectId_or_alias

Step 4 (Optional): Test this extension locally with the Firebase Emulator Suite

firebase emulators:start

ステップ 5: マニフェストにある拡張機能をプロジェクトに デプロイ します

firebase deploy --only extensions --project=projectId_or_alias
サポート対象
Cloud Firestore
作成者
ライセンス
Apache-2.0
バージョン
0.1.25