ペイロードおよびスキーマ・リファレンス

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)"
  }
}

CloudEvents形式

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"}
  }
}