設定 JSON 輸出
下表顯示 operation 和 row 模型
| 模型 | 形狀 | 指引 |
|---|---|---|
op |
記錄層級的描述資料,以及 before 和 after 物件底下的資料欄值。 |
建議用於 CDC,因為它會保留明確的影像語意。 |
row |
記錄層級的資料欄值,而非巢狀影像物件。 | 僅在下游合約預期為純文字列時使用。表格特定的程式實際執行綱要定義每項作業所代表的影像。 |
op 與 flatten=true |
巢狀影像名稱會與資料欄名稱串接,例如當分隔符號為 . 時,before.STATUS 與 after.STATUS。 |
對於在區別之前 / 之後仍需要的扁平水槽非常有用。 |
核心 JSON 特性
| 財產 | 預設 / 限制 | 說明 |
|---|---|---|
$schema |
ogg:outputFormatJson |
JSON 輸出組態綱要 ID。 |
model |
op;op 或 row |
記錄模型。 |
beforeImageName |
before;1-32 個字元 |
作業模型中前影像物件的名稱。 |
afterImageName |
after;1-32 個字元 |
作業模型中後影像物件的名稱。 |
omitNullColumnValues |
false |
忽略值為空值的資料欄。這會讓遺漏的欄位無法區分遺漏和空值。 |
treatAllColumnsAsStrings |
false |
將所有資料欄值寫入為字串,而非原生 JSON 原始類型。 |
flatten |
false |
在作業模型中的影像資料欄之前和之後展開。 |
flattenDelimiter |
0-32 字元 | 均一化時影像名稱與資料欄名稱之間的分隔符號。 |
delimiter |
0-32 字元 | 格式器記錄分界字元。WebSocket 使用者通常應保留 AsyncAPI YAML 所描述的預設陣列合約。 |
staticFields |
物件 / 無 | 新增具有常數值的欄位至輸出記錄。 |
operationStrings |
插入,更新,刪除,截斷,更新插入,DDL | 自訂作業標籤。變更前與每個消費者協調。 |
綱要和描述資料排放
| 財產 | 預設 | 效果 |
|---|---|---|
includeJSONSchemaRecord |
true |
發出串流描述資料、物件描述資料、DML 以及 DDL 記錄的 JSON 綱要記錄。 |
includeObjectMetadataRecords |
true |
發出表格資料欄描述資料。 |
includeStreamMetadataRecord |
true |
發出產生器和來源資料庫描述資料。 |
建議:除非管控的外部綱要登錄取代這三個設定值,否則請將這三個設定值全部保持啟用。停用綱要或描述資料記錄可減少網路磁碟區,但會將啟動多版本功能和尋找職責傳輸至用戶平台。
大小和大值控制
| 財產 | 預設 | 最小值 | 最大值 | 行為 |
|---|---|---|---|---|
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"
}
明確的字串名稱可讓公用有效負載 (Payload) 合約清除,並避免依靠格式化程式預設名稱作為選擇性描述資料。