新しい Pub/Sub 単一メッセージ変換でストリーミング パイプラインを簡素化
Kamal Aboul-Hosn
Messaging Tech Lead, Cloud Pub/Sub
Prateek Duble
Product Management Lead, Cloud Pub/Sub
※この投稿は米国時間 2025 年 6 月 10 日に、Google Cloud blog に投稿されたものの抄訳です。
このたび、Pub/Sub 単一メッセージ変換(SMT)がリリースされ、Pub/Sub 内で単純なデータ変換を簡単に実行できるようになりました。
企業がリアルタイムの分析情報の取得、進化する顧客トレンドの把握、そして最終的には収益と戦略的方向性に影響する重要な意思決定のためにストリーミング データにますます依存するようになった今、この機能は非常に役立ちます。このような状況では、ストリーミング データの膨大な量とスピードにより、機会と課題の両方が生じます。データを生成して分析するとき、別のソースからデータを取り込むとき、他のユーザーが使用できるようデータをシンジケートするときは、多くの場合、ユースケースに合わせてデータの変換を行う必要があります。たとえば、他のチームや顧客にデータを提供する場合、データを共有する前にメッセージから個人情報(PII)を削除する必要があるかもしれません。また、生成したデータや他の場所から取得したデータ(特に非構造化データ)を使用する場合、データ形式の変換やその他のタイプのデータ正規化が必要となる可能性があります。
従来、メッセージ内でこれらの単純な変換を行う場合の選択肢として、データの送信元または送信先を変更する方法がありましたが、これは可能ではないこともありました。また、Dataflow や Cloud Run などの追加コンポーネントを使用する方法もありましたが、その場合、レイテンシと運用上のオーバーヘッドが増加していました。
Pub/Sub SMT
Pub/Sub の全体的な目標は、ストリーミング アーキテクチャを簡素化することです。インポート トピックとエクスポート サブスクリプションにより、データの移動はすでに大幅に簡素化されています。これにより、Pub/Sub を介して未加工のストリーミング データを BigQuery などの宛先に取り込むために追加サービスを使用する必要がなくなりました。Pub/Sub 単一メッセージ変換(SMT)は、個々のメッセージがリアルタイムで移動する際に、そのメッセージの検証、フィルタ、拡充、変更を簡単に行えるように設計された機能スイートです。
現在、最初の SMT である JavaScript ユーザー定義関数(UDF)が利用可能になっています。これを使うと、JavaScript コードのスニペットを使用して、Pub/Sub 内でメッセージ属性やデータに対して単純で軽量な変更を直接実行できます。
実行できる変更の主な例は次のとおりです。
-
単純な変換: データ形式の変換、キャスト、新しい複合フィールドの追加など、一般的な単一メッセージ変換を実行します。
-
フィルタの強化: メッセージ データ(属性だけでなく)に基づくフィルタや、正規表現に基づくフィルタを使用します。
-
データのマスキングと秘匿化: 個人情報(PII)データを含むフィールドにマスキングまたは秘匿化の手法を適用することで、機密情報を保護します。
パブリッシャーとサブスクライバーを分離するという Pub/Sub の目標を忠実に達成するため、UDF 変換は、ニーズに応じてトピック、サブスクリプション、またはその両方に個別に適用できます。
Pub/Sub の JavaScript UDF には、次の 3 つの主なメリットがあります。
-
柔軟性: JavaScript UDF を使用すると、変換ロジックを完全にコントロールできるため、さまざまなユースケースに対応し、多様な変換を実現できます。
-
パイプラインの簡素化: 変換は Pub/Sub 内で直接行われるため、データ変換のために追加のサービスやインフラストラクチャを維持する必要がありません。
-
パフォーマンス: 軽量な変換のために追加のプロダクトを必要としないため、ストリーミング アーキテクチャのエンドツーエンドのレイテンシが改善されます。
Pub/Sub の JavaScript UDF 単一メッセージ変換の使い方は簡単です。トピックやサブスクリプションに JavaScript 変換を 5 つまで追加できます。トピック SMT が構成されている場合、Pub/Sub は SMT ロジックを使用してメッセージを変換し、変換されたメッセージを永続化します。サブスクリプション SMT が構成されている場合、Pub/Sub はメッセージをサブスクライバーに送信する前に変換します。エクスポート サブスクリプションの場合、変換されたメッセージは宛先に書き込まれます。詳しくは、単一メッセージ変換の概要をご覧ください。


単一メッセージ変換を使ってみる
最初の単一メッセージ変換である JavaScript UDF は、このたびすべてのユーザーを対象に一般提供が開始されました。Google Cloud プロジェクトでトピックやサブスクリプションを作成する際、Google Cloud コンソールに新しい [変換を追加] オプションが表示されます。gcloud CLI を使用して、JavaScript の単一メッセージ変換を今すぐ使用することもできます。
今後数か月中に、スキーマ検証 / エンコード SMT、AI 推論 SMT など、追加の単一メッセージ変換をリリースする予定です。最新情報にご期待ください。
-Cloud Pub/Sub、メッセージ テクニカル リーダー、Kamal Aboul-Hosn
-Cloud Pub/Sub、プロダクト管理リード、Prateek Duble