パイプライン不要: Pub/Sub で BigQuery に直接データをストリーミング
Google Cloud Japan Team
※この投稿は米国時間 2022 年 7 月 28 日に、Google Cloud blog に投稿されたものの抄訳です。
BigQuery にデータを取り込むPub/Sub の機能は、最新のビジネスデータをすぐに分析に利用できるようにするために欠かせない場合があります。これまで、データを適切なスキーマで BigQuery に取り込むには、まず中間の Dataflow ジョブを作成する必要がありました。Dataflow パイプライン(Dataflow テンプレートを使用して作成するものを含む)はこのようなジョブを問題なく実行しますが、元データを変換せずに BigQuery にエクスポートするだけでよいユースケースでは、これらのパイプラインが過剰になる場合があります。
今後は、Pub/Sub から BigQuery へのデータの取り込みのために、独自のパイプラインを記述または実行する必要はありません。このたび、Cloud Pub/Sub から BigQuery に直接書き込みを行う、「BigQuery サブスクリプション」と呼ばれる新しいタイプの Pub/Sub サブスクリプションが導入されました。この新しい抽出、読み込み、変換(ELT)パスは、イベント ドリブン アーキテクチャを簡素化できます。BigQuery にデータを取り込む前に高度なプリロード変換やデータ処理(個人を特定できる情報(PII)のマスキングなど)が必要な Pub/Sub メッセージの場合は、これまでどおり Dataflow を通じて処理することをおすすめします。
まずは、Pub/Sub トピックと関連付けられた新しい BigQuery サブスクリプションを作成することから始めましょう。このサブスクリプションには、既存の BigQuery テーブルを指定する必要があります。テーブル スキーマは、特定の互換性要件を満たす必要があることにご注意ください。Pub/Sub のトピック スキーマを利用することで、互換性のあるスキーマで Pub/Sub メッセージを BigQuery テーブルに書き込むオプションが提供されます。トピックでスキーマが有効にできない場合、メッセージはバイトまたは文字列として BigQuery に書き込まれます。BigQuery サブスクリプションの作成後、メッセージは BigQuery に直接取り込まれるようになります。
さらなるメリットとして、この新しい直接メソッドを使用した BigQuery へのデータの取り込みについては、費用がかかりません。使用する Pub/Sub に対してのみ課金されます。Pub/Sub の BigQuery サブスクリプションから BigQuery への取り込みの費用は、サブスクリプションからの読み取り(サブスクライブ スループット)に基づいて、$50/TiB となります。この課金方法は、もう一つの方法(Dataflow パイプラインを使用し、Pub/Sub の読み取り、Dataflow のジョブ、BigQuery のデータ取り込みに対して支払う)と比較すると、よりシンプルで安価です。詳細については、料金のページをご覧ください。
ご利用にあたっては、Pub/Sub の BigQuery サブスクリプションに関する詳細をご確認ください。Cloud コンソールまたは gcloud CLI を使用してトピックに新しい BigQuery サブスクリプションを作成することで、すぐに使用を開始することもできます。
- プロダクト マネージャー、Qiqi Wu