スキーマの概要

Pub/Sub スキーマは、Pub/Sub メッセージの data フィールドの形式を適用するために使用できるオプション機能です。

スキーマは、メッセージの形式について、パブリッシャーとサブスクライバーの間の契約を作成します。Pub/Sub ではこの形式が適用されます。スキーマは、メッセージ タイプと権限を監視する中央機関を作成することで、組織内のデータ ストリームのチーム間消費を促進します。Pub/Sub メッセージ スキーマは、メッセージ内のフィールドの名前とデータ型を定義します。

スキーマを作成し、トピックに関連付けることで、パブリッシュされたメッセージにスキーマを適用できます。特定のメッセージがスキーマに準拠していない場合、メッセージは公開されません。スキーマの追加のリビジョンを作成することもできます。

スキーマのタイプ

Pub/Sub でスキーマを作成するには、次のいずれかのフレームワークを使用します。

スキーマを作成すると、スキーマまたはスキーマ リビジョンに対して、さまざまなオペレーションを実行できます。たとえば、スキーマを削除したり、スキーマ リビジョンを削除できます。

たとえば、次のスキーマは、ウェアハウスのインベントリを Avro 形式で定義してから、プロトコル バッファ形式で定義します。

Apache Avro 形式

{
 "type" : "record",
 "name" : "Avro",
 "fields" : [
   {
     "name" : "ProductName",
     "type" : "string",
     "default": ""
   },
   {
     "name" : "SKU",
     "type" : "int",
     "default": 0
   },
   {
     "name" : "InStock",
     "type" : "boolean",
     "default": false
   }
 ]
}

プロトコル バッファ形式

syntax = "proto3";
message ProtocolBuffer {
  string product_name = 1;
  int32 SKU = 2;
  bool in_stock = 3;
}

スキーマの割り当てと上限

スキーマには次の上限があります。

  • スキーマ定義フィールドのサイズは 50 KB 以下にしてください。

  • 1 つのプロジェクトには最大 10,000 個のスキーマを含めることができます。

  • 1 つのスキーマのリビジョンは 20 個までです。

    Pub/Sub に関連するスキーマと上限については、Pub/Sub の割り当てと上限をご覧ください。

次のステップ