配置 JSON 输出
下表显示了操作和行模型
| 型号 | 配置 | 指导 |
|---|---|---|
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 的列。这使得省略字段的缺失和空值无法区分。 |
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 时,使用与运行时方案完全相同的块元数据。请勿发明重新装配合同。负载测试最大 LOB 和 DDL 大小,因为 WebSocket 库、代理和下游平台可能会施加额外的帧或消息限制。
元数据字段
大多数 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"
}
显式字符串名称可清除公共有效负载合同,并避免依赖格式化程序默认名称作为可选元数据。