JSON出力の構成

次の表に、operationおよび rowモデルを示します

モデル 形状 ガイダンス
op beforeおよびafterオブジェクトの下のレコード・レベルおよび列値のメタデータ。 明示的なイメージ・セマンティクスを保持するため、CDCに推奨されます。
row ネストされたイメージ・オブジェクトではなく、レコード・レベルの列値。 ダウンストリーム契約でフラット行が必要な場合にのみ使用します。表固有のランタイム・スキーマは、操作ごとに表されるイメージを定義します。
opとflatten=true ネストされたイメージ名は、列名(デリミタが.の場合、before.STATUSやafter.STATUSなど)と連結されます。 前後の区別が必要なフラットシンクに便利です。

コアJSONプロパティ

プロパティ デフォルト/制限 摘要
$schema ogg:outputFormatJson JSON出力構成スキーマ識別子。
model op、opまたはrow レコード・モデル。
beforeImageName before、1-32文字 操作モデルのビフォア・イメージ・オブジェクトの名前。
afterImageName after、1-32文字 操作モデルのアフター・イメージ・オブジェクトの名前。
omitNullColumnValues false 値がnullの列を省略します。これにより、省略されたフィールドに対して欠落およびnullを区別できなくなります。
treatAllColumnsAsStrings false すべての列値をネイティブJSONプリミティブではなく文字列として書き込みます
flatten false 操作モデルの前後のイメージ列をフラット化します。
flattenDelimiter 0-32文字 フラット化時のイメージ名と列名の間のデリミタ。
delimiter 0-32文字 フォーマッタ・レコード・デリミタ。通常、WebSocketコンシューマは、AsyncAPI YAMLによって記述されたデフォルトの配列契約を保持する必要があります。
staticFields オブジェクト/なし 出力レコードに定数値を含むフィールドを追加します。
operationStrings INSERT、UPDATE、DELETE、TRUNCATE、UPSERT、DDL 工程ラベルをカスタマイズします。変化する前に、すべての消費者と協調する。

スキーマおよびメタデータの発行

プロパティ デフォルト 効果
includeJSONSchemaRecord true ストリーム・メタデータ、オブジェクト・メタデータ、DMLおよびDDLレコードに対してJSONスキーマ・レコードを発行します。
includeObjectMetadataRecords true 表の列メタデータを出力します。
includeStreamMetadataRecord true プロデューサおよびソース・データベースのメタデータを出力します。

推奨:管理された外部スキーマ・レジストリでこれらが置換されないかぎり、3つの設定をすべて有効にします。スキーマまたはメタデータ・レコードを無効にすると、ネットワーク・ボリュームが減少しますが、バージョニングおよび検出の職責がコンシューマ・プラットフォームに転送されます。

サイズと大きな値の制御

プロパティ デフォルト 最小 最大 動作
maxLobSize 64,000 1 18,446,744,073,709,552,000 LOBデータは、このサイズを超えてバイト単位で切り捨てられます。
maxDDLTextSize 1,000,000 1 4,294,967,295 DDL文のテキストは、このサイズを超えてバイト単位で切り捨てられます。
maxRecordSize 1,048,576 131,072 10,485,760 サイズを超えるレコードは切り捨てられるか、チャンク化されます。
truncateOrChunk truncate - truncateまたはchunk オーバーサイズレコード処理を選択します。

truncateOrChunkがchunkの場合は、ランタイム・スキーマで定義されているとおりにチャンク・メタデータを消費します。再組立契約を発明しないでください。WebSocketライブラリ、プロキシおよびダウンストリーム・プラットフォームによって追加のフレーム制限またはメッセージ制限が課される可能性があるため、テストの最大LOBおよびDDLサイズをロードします。

「メタデータ」フィールド

ほとんどのmetaFieldsエントリは、ブールまたは文字列のいずれかを受け入れます。trueにはデフォルトの出力名を持つフィールドが含まれ、falseはそれを省略し、文字列にはそのカスタム名の下にそのフィールドが含まれます。env、sysおよびtokensは、RESTスキーマで定義された特殊なオブジェクトまたは値を受け入れます。

プロパティ デフォルト 意味
qualifiedTable true 完全修飾オブジェクト名。デフォルトのデータ・ストリーム・フィールドは、通常、qual_tableです。
opType true 操作タイプデフォルト・フィールドは通常、op_typeです。
opTs true 操作のタイムスタンプ。デフォルト・フィールドは通常op_tsです。
pos true 不透明な回復位置。回復可能なコンシューマに対しては無効にしないでください。
xid true ソース取引識別子。
table false 修飾されていない表名。
schema false スキーマ名または所有者名。
catalog false カタログ名(使用可能な場合)。
csn false ソース・コミット順序番号。
opSeqno false トランザクション内のレコード順序番号。
transInd false トランザクション・インジケータB、M、EまたはW。
primaryKeys false 構成されたフォーマッタ契約に従った主キー列名または値。
opTsMicroSecs false エポック後の操作タイムスタンプ(マイクロ秒)。
currentTs false 現在の処理タイムスタンプ。
currentTsMicroSecs false 現在の処理タイムスタンプ(エポックの後のマイクロ秒)。
tokens null ユーザー・トークン、GoldenGateトークン、すべてのトークンまたは構成されたサブセット。
env null 選択したGoldenGate環境値。
sys null 選択したシステム環境値。秘密を暴露することは避けましょう。
"metaFields": {
  "qualifiedTable": true,
  "opType": true,
  "opTs": true,
  "pos": true,
  "xid": true,
  "csn": "csn",
  "opSeqno": "op_seqno",
  "transInd": "trans_ind",
  "primaryKeys": "primary_keys"
}

明示的な文字列名は、パブリック・ペイロード契約を明確にして、オプションのメタデータのフォーマッタのデフォルト名に依存しないようにします。