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