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
}
]
}
Protocol Buffer 形式
syntax = "proto3";
message ProtocolBuffer {
string product_name = 1;
int32 SKU = 2;
bool in_stock = 3;
}
スキーマの割り当てと上限
スキーマには次の上限があります。
スキーマ定義フィールドのサイズは 50 KB 以下にしてください。
プロジェクトに含めることができるスキーマの最大数は 10,000 です。
1 つのスキーマのリビジョンは 20 個までです。
Pub/Sub に関連するスキーマと上限については、Pub/Sub の割り当てと上限をご覧ください。