Pub/Sub スキーマは、Pub/Sub メッセージのデータ フィールドの形式にデータを合わせるためのオプションの機能です。
スキーマは、メッセージの形式について、パブリッシャーとサブスクライバーの間の契約を作成します。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;
}
スキーマに関する重要な情報
Pub/Sub スキーマの作成と管理に関する重要な情報を次に示します。
Pub/Sub でスキーマを機能させるには、最上位の型を 1 つだけ定義する必要があります。他の型を参照するインポート ステートメントはサポートされていません。
同じスキーマを複数のトピックに関連付けることができます。
メッセージがスキーマに対して検証されるかどうかを手動でテストできます。
スキーマ フィールド名に、個人を特定できる情報(PII)やセキュリティ データなどの機密情報を含めないでください。
スキーマの割り当てと上限
スキーマには次の上限があります。
スキーマ定義フィールドのサイズは 300 KB 以下にする必要があります。
プロジェクトに含めることができるスキーマは最大 10,000 個です。
1 つのスキーマに 20 個を超えるリビジョンを設定することはできません。
Pub/Sub に関連するスキーマと上限については、Pub/Sub の割り当てと上限をご覧ください。