データベース

Apache Beam と Cloud Dataflow 用の Firestore コネクタの発表

Firestore Connector.jpg

※この投稿は米国時間 2021 年 11 月 9 日に、Google Cloud blog に投稿されたものの抄訳です。

大規模なデータ処理ワークロードは、運用化とオーケストレーションが難しい場合があります。この度、Apache Beam 用のネイティブ モードの Firestore コネクタをリリースしました。Firestore ユーザーにとってデータ処理がこれまで以上に容易になりました。Apache Beam は、バッチ処理ストリーミング処理統合モデルで大規模なデータ処理を支援するオープンソース プロジェクトです。   Beam は移植可能で、多種多様なバックエンド ランナーと連携し、柔軟なデプロイが可能です。Firestore Beam I/O コネクタは、BigQuery、Bigtable、Datastore を Google データベースとして Apache Beam コネクタと結合します。  Firestore I/O コネクタは、Apache Beam Java SDK Google Cloud Platform IO モジュールに自動的に組み込まれます。  

Firestore コネクタは、Google Cloud Dataflow などのさまざまな Apache Beam バックエンドと併用できます。Apache Beam のバックエンド ランナーである Dataflow は、開発者が「驚異的並列」の問題を解決するための仕組みを備えています。データベースの各レコードを変更することは、このような問題の一例といえます。Beam パイプラインを使用すると、並列化をオーケストレートする作業の多くを省略でき、開発者が代わりにデータの変換に集中できます。

Firestore コネクタは、他の Beam コネクタと同じように簡単に使用できます。

  import com.google.firestore.v1.PartitionQueryRequest;
import com.google.firestore.v1.RunQueryResponse;
import org.apache.beam.sdk.io.gcp.firestore.FirestoreIO;
import org.apache.beam.sdk.values.PCollection;

// Create a PCollection of PartitionQueryRequest objects
PCollection<PartitionQueryRequest> partitionQueryRequests = …;

// Query Firestore using Partition Queries and receive responses
PCollection<RunQueryResponse> queryResponses = partitionQueryRequests
       .apply(FirestoreIO.v1().read().partitionQuery().build())
       .apply(FirestoreIO.v1().read().runQuery().build());

// Consume query results in your pipeline stages

Google Cloud のユーザーにとって、このコネクタは多くの用途が考えられます。ネイティブ モードの Firestore のデータベースにおける異種データの結合、複数のデータベースにまたがるデータの関連付け、大量のエンティティの削除、BigQuery への Firestore データの書き込みなどが考えられます。このコネクタを Apache Beam エコシステムに提供できたことをうれしく思います。また、Firestore コネクタを使用して素晴らしいサービスが構築されることを期待しています。

- Google Cloud スタッフ エンジニア Chris Wilcox