新しい Pub/Sub Cloud Storage サブスクリプションによるデータレイク パイプラインの簡略化
Google Cloud Japan Team
※この投稿は米国時間 2023 年 8 月 1 日に、Google Cloud blog に投稿されたものの抄訳です。
Pub/Sub のデータを Cloud Storage に移動したいと考えたことはありませんか。組織のためのデータレイク構築を目指すデータ エンジニアが Pub/Sub から Cloud Storage にストリーミング データを取り込む場合、これまでは、複雑なデータ パイプラインを用意する必要がありました。従来、ストリーミング データを Cloud Storage に取り込むには、独自のカスタム Cloud Storage サブスクライバーを記述するか、または中間 Dataflow ジョブを利用する必要がありました。カスタム Cloud Storage サブスクライバーの記述には、サブスクライバーのコードの設計、開発、メンテナンスが伴い、時間がかかります。Dataflow パイプライン(Dataflow テンプレートを使用して作成するものを含む)は便利ですが、単純にデータを Pub/Sub から Cloud Storage にストリーミングしたいだけの場合は必要以上に大掛かりとなる可能性があります。
これからは、Cloud Storage にストリーミング データを取り込むために、複雑なパイプラインを構築する必要はありません。Pub/Sub チームにより、Cloud Storage サブスクリプションの提供が開始されました。この新たなタイプのサブスクリプションを使用すると、途中で一切変換を行うことなく、元データを Cloud Storage に書き込むことができます。
Pub/Sub Cloud Storage サブスクリプションには、以下のようなメリットがあります。
データ パイプラインの簡略化 - Cloud Storage サブスクリプションを使用すると、カスタム サブスクライバーや Dataflow といった中間のプロセスが必要ないため、データレイクの取り込みパイプラインを合理化することができます。Cloud Storage サブスクリプションの管理はすべて Pub/Sub によって行われるため、中間のプロセスを用意する場合に発生するメンテナンスやモニタリングのためのオーバーヘッドがなくなります。
レイテンシの短縮と費用の削減 - Dataflow やカスタム サブスクライバーでは追加の費用やレイテンシが発生することがありますが、Cloud Storage サブスクリプションではそのような費用やレイテンシは発生しません(Cloud Storage に取り込む前に Pub/Sub データの変換が必要な場合は、引き続き Dataflow の利用をおすすめします)。
柔軟性の向上 - Cloud Storage に用意されているファイルのバッチ処理オプションを使用すると、メッセージをどのようにバッチ処理して、そのデータを Cloud Storage に取り込むかを柔軟に制御することができます。
ストリーミング データの簡単な取り込み
Cloud Storage サブスクリプションの使用方法は非常に簡単です。Pub/Sub がファイルを書き込む Cloud Storage バケット名を指定するだけで、Cloud Storage サブスクリプションを作成することができます。追加のサブスクリプション プロパティを指定することもできます。
ファイルのバッチ処理 - このオプションを使用すると、指定した Cloud Storage バケットに新しい出力ファイルを作成するタイミングを決めることができます。以下のいずれかのオプションに指定された値を超えた場合に、指定した Cloud Storage バケットに新しい出力ファイルが作成されます。
最大期間(分単位、必須)
最大バイト数(KB または GB 単位、省略可)
バッチ処理設定の制限やデフォルトについて詳しくは、ドキュメントをご覧ください。
ファイル形式 - Cloud Storage サブスクリプションを作成する際に、以下のいずれかのファイル形式を選択できます。
テキスト - 書式なしテキストでメッセージを保存します。
Avro - Apache Avro バイナリ形式でメッセージを保存します。Avro 形式では、[メタデータを書き込む] オプションも選択できます。このオプションを選択すると、メッセージとともにメッセージのメタデータ(message_id、publish_time など)を保存できます。
- ファイルの接頭辞と接尾辞 - <ファイルの接頭辞><UTC の日時>_<UUID><ファイルの接尾辞> の形式でファイル名を作成する際に使用されるファイルの接頭辞と接尾辞を指定することもできます。ここで <uuid> は、ファイルに対して自動生成された一意の文字列です。カスタムのファイルの接頭辞と接尾辞を使用すると、ダウンストリームの処理で、特定のファイルのセットのみを処理する場合に役立ちます。
Pub/Sub Cloud Storage サブスクリプションを使用すると、非常に簡単かつシームレスに Cloud Storage データレイクにストリーミング データを取り込むことができるため、短時間でインサイトを獲得し、データ取り込みパイプラインを合理化することができます。
まずは、Pub/Sub Cloud Storage サブスクリプションの詳細をご覧ください。実際に Google Cloud コンソール、Google Cloud CLI(gcloud)、Google Cloud クライアント ライブラリ、Pub/Sub API を使用してトピックに新しい Cloud Storage サブスクリプションを作成してみるのも理解を深めるために役立ちます。
- Cloud Pub/Sub、シニア プロダクト マネージャー Prateek Duble