ペイロードおよびスキーマ・リファレンス
JSONスキーマおよびメタデータ・レコードが有効になっている場合、データ・ストリームは自己記述型です。正確なレコード・シェイプは、出力フィールドの名前変更、オプションのメタデータの使用可能、レコード・モデルの変更またはソース・メタデータの変更時に変更できます。生成されたAsyncAPI YAMLおよび帯域内JSONスキーマ・レコードは、認可ランタイム定義です。
| 分類 |
識別 |
処理ガイダンス |
| スキーマレコード |
id、$schema、typeおよびpropertiesが含まれます。 |
idによるキャッシュ。ビジネス・データとしてルーティングしないでください。 |
| ストリーム・メタデータ |
op_typeはSTREAM_METADATAです |
プロデューサおよびソース・コンテキストを記録し、再表示されるときに診断をリフレッシュします。 |
| オブジェクト・メタデータ |
op_typeはOBJECT_METADATAです |
qual_tableによって、列、プリミティブ型、NULL値可能性およびキー・フラグをキャッシュします。 |
| DML |
op_typeはINSERT、UPDATE、DELETEまたはUPSERTです。 |
前後のセマンティクスに従って行の変更を適用します。 |
| DDL |
op_typeがDDLで、ddlが存在する |
オブジェクトと文を処理し、必要に応じてリフレッシュされたメタデータ/スキーマを予期します。 |
JSONスキーマ・レコード
デフォルトでは、データ・ストリームは、そのスキーマを必要とするレコード・タイプを送信する前にJSONスキーマ・レコードを発行します。スキーマ・レコードではJSONスキーマ・ドラフト4が使用され、次のフィールドが含まれます:
| フィールド |
意味 |
id |
スキーマ・タイプの安定した識別子、および表固有のスキーマの場合は修飾オブジェクト。 |
title |
判読可能なスキーマ・タイトル。 |
$schema |
JSONスキーマ方言、http://json-schema.org/draft-04/schema#。 |
type |
最上位のJSON型、object。 |
definitions |
必要に応じて、列またはメタデータ定義を再利用できます。 |
properties |
許可されるフィールドとその制約。 |
required |
スキーマのインスタンスに必要なフィールド。 |
additionalProperties |
スキーマによって宣言されていないフィールドが受け入れられるかどうか。 |
コンシューマ・ルール:スキーマ・レコードにop_typeを含めることはできません。スキーマ構造およびidで検出します。スキーマは、ソース・メタデータまたはストリーム構成が変更されたときに再度送信できます。
| フィールド |
サブフィールド |
摘要 |
op_type |
- |
STREAM_METADATA. |
producer |
name, version |
データ・ストリーム・プロデューサのアイデンティティとソフトウェアのバージョン。 |
database |
name, version, charset, timeZone |
ソース・データベース・コンテキスト。値を情報およびソース依存として処理します。 |
machine |
node, system, release, version, hardware |
ホスト・オペレーティング・システムのコンテキスト。 |
source |
file、uri、uriHistory (存在する場合)、creationTime、compatibility |
ソース・トレイルまたはプロセス・コンテキスト。 |
オブジェクト・メタデータ・レコードは、DMLのエンコードに使用される現在の表定義を示します。op_type: OBJECT_METADATA、qual_tableおよびcolumnsオブジェクトがあります。各列には次のものが含まれます。
| カラム属性 |
摘要 |
type |
JSONプリミティブ分類(string、number、booleanなど)。表固有のJSONスキーマは、nullなど、受け入れられる完全なタイプに使用します。 |
null |
取得されたメタデータに従ってソース列をNULLにできるかどうか。 |
key |
列が、オブジェクトのGoldenGateで認識されるキーの一部であるかどうか。 |
{
"op_type": "OBJECT_METADATA",
"qual_table": "SALES.ORDERS",
"columns": {
"ORDER_ID": {"type": "number", "null": false, "key": true},
"STATUS": {"type": "string", "null": false, "key": false},
"TOTAL_AMOUNT": {"type": "number", "null": true, "key": false}
}
}
DMLレコード
| デフォルト・フィールド |
デフォルトで必須 |
意味 |
qual_table |
はい |
完全修飾表の名前。名前とプレゼンスは、metaFields.qualifiedTableを使用して変更できます。 |
op_type |
はい |
操作の文字列デフォルトはINSERT、UPDATE、DELETE、UPSERTで、文字列はカスタマイズできます。 |
op_ts |
はい |
現在のデータ・ストリーム・スキーマのISO 8601形式のソース操作タイムスタンプ。 |
xid |
はい |
文字列として表されるソース・トランザクション識別子。形式はソースに依存します。 |
pos |
はい |
不透明な回復位置。正確に格納します。解析しないでください。 |
before |
条件付き |
必要な列が取得された場合の更新および削除操作の前イメージ。名前はカスタマイズできます。 |
after |
条件付き |
必要な列が取得されたときの挿入および更新操作のためのアフター・イメージ。名前はカスタマイズできます。 |
| オプションのメタデータ |
いいえ |
csn、操作順序、トランザクション・インジケータ、主キー、カタログ/スキーマ/表、処理タイムスタンプ、トークン、環境値および静的フィールド。 |
前後のイメージ・マトリックス
| オペレーション |
before |
after |
ノート |
| INSERT |
通常不在 |
新規行イメージ |
証跡で使用可能な列のみが発行されます。 |
| UPDATE |
元の値 |
新規値 |
証跡およびソース・ロギングによって、イメージが完全か部分かが決まります。 |
| 削除 |
削除された行イメージ |
通常不在 |
キー列および必要な監査列が取得されていることを確認します。 |
| アップサート |
ランタイム・スキーマ依存 |
結果の行イメージ |
ソース・パイプラインに対して生成されたスキーマおよび操作契約を使用します。 |
DMLの例
{
"qual_table": "SALES.ORDERS",
"op_type": "INSERT",
"op_ts": "2026-07-13T04:01:01.123456Z",
"xid": "example-transaction-1001",
"pos": "G-QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVo=1001",
"after": {
"ORDER_ID": 1001,
"STATUS": "NEW",
"TOTAL_AMOUNT": 125.50
}
}
{
"qual_table": "SALES.ORDERS",
"op_type": "UPDATE",
"op_ts": "2026-07-13T04:02:12.654321Z",
"xid": "example-transaction-1002",
"pos": "G-R0hJSktMTU5PUFFSU1RVVldYWVo=1002",
"before": {"ORDER_ID": 1001, "STATUS": "NEW"},
"after": {"ORDER_ID": 1001, "STATUS": "APPROVED"}
}
{
"qual_table": "SALES.ORDERS",
"op_type": "DELETE",
"op_ts": "2026-07-13T04:03:15.000000Z",
"xid": "example-transaction-1003",
"pos": "G-SktMTU5PUFFSU1RVVldYWVo=1003",
"before": {"ORDER_ID": 1001, "STATUS": "APPROVED"}
}
DDLレコード
| フィールド |
意味 |
op_type |
DDL |
op_ts |
DDL操作のタイムスタンプ。 |
xid |
DDLレコードに関連付けられたトランザクション識別子。 |
pos |
DDLレコードの不透明なリカバリ位置。 |
ddl.object.catalog |
ソースが提供するカタログ名。空の文字列にできます。 |
ddl.object.schema |
スキーマ名または所有者名。 |
ddl.object.object |
影響を受けるオブジェクト名。 |
ddl.statement |
DDLテキスト。maxDDLTextSizeを超えると切り捨てられます。 |
{
"op_type": "DDL",
"op_ts": "2026-07-13T04:04:30.000000Z",
"xid": "example-transaction-1004",
"pos": "G-TU5PUFFSU1RVVldYWVo=1004",
"ddl": {
"object": {
"catalog": "",
"schema": "SALES",
"object": "ORDERS"
},
"statement": "ALTER TABLE SALES.ORDERS ADD CUSTOMER_TIER VARCHAR2(20)"
}
}
cloudEventsFormatが有効な場合、GoldenGateレコードはCloudEvents JSON dataメンバーで継承されます。標準のCloudEvents属性はイベントを識別します。type、sourceおよびidの値をランタイム契約値として処理し、別のストリームからのハードコーディングの例ではなく、生成されたYAMLおよび実際のレコードを検査します。
{
"specversion": "1.0",
"type": "<runtime event type>",
"source": "<runtime event source>",
"id": "<runtime event id>",
"datacontenttype": "application/json",
"data": {
"qual_table": "SALES.ORDERS",
"op_type": "INSERT",
"op_ts": "2026-07-13T04:01:01.123456Z",
"xid": "example-transaction-1001",
"pos": "G-QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVo=1001",
"after": {"ORDER_ID": 1001, "STATUS": "NEW"}
}
}