Configurar Saída JSON
A tabela a seguir mostra o modelo de operação e linha
| Modelo | Forma | Orientação |
|---|---|---|
op |
Metadados no nível de registro e valores de coluna em objetos before e after. |
Recomendado para CDC porque preserva a semântica de imagem explícita. |
row |
Valores de coluna no nível de registro em vez de objetos de imagem aninhados. | Use somente quando o contrato downstream esperar uma linha simples. O esquema de runtime específico da tabela define qual imagem é representada para cada operação. |
op com flatten=true |
Os nomes de imagens aninhadas são concatenados com nomes de coluna, por exemplo, before.STATUS e after.STATUS quando o delimitador é .. |
Útil para pias planas que ainda precisam de distinção antes/depois. |
Propriedades JSON principais
| Propriedade | Padrão / limites | Descrição |
|---|---|---|
$schema |
ogg:outputFormatJson |
Identificador do esquema de configuração de saída JSON. |
model |
op; op ou row |
Modelo de registro. |
beforeImageName |
before; 1 a 32 caracteres |
Nome do objeto antes da imagem no modelo de operação. |
afterImageName |
after; 1 a 32 caracteres |
Nome do objeto pós-imagem no modelo de operação. |
omitNullColumnValues |
false |
Omite colunas cujo valor é nulo. Isso torna o campo ausente e nulo indistinguível para campos omitidos. |
treatAllColumnsAsStrings |
false |
Grava todos os valores de coluna como strings em vez de primitivas JSON nativas. |
flatten |
false |
Flattens antes e depois de colunas de imagem no modelo de operação. |
flattenDelimiter |
0-32 caracteres | Delimitador entre o nome da imagem e o nome da coluna quando nivelado. |
delimiter |
0-32 caracteres | Delimitador de registro do formatador. Os consumidores do WebSocket normalmente devem manter o contrato de array padrão descrito pelo AsyncAPI YAML. |
staticFields |
Objeto/nenhum | Adiciona campos com valores constantes aos registros de saída. |
operationStrings |
INSERIR, ATUALIZAR, EXCLUIR, TRUNCAR, UPSERT, DDL | Personaliza rótulos de operação. Coordene com todos os consumidores antes de mudar. |
Emissão de esquema e metadados
| Propriedade | Padrão | Efeito |
|---|---|---|
includeJSONSchemaRecord |
true |
Emite registros do Esquema JSON para metadados de fluxo, metadados de objeto, DML e registros DDL. |
includeObjectMetadataRecords |
true |
Emite metadados da coluna da tabela. |
includeStreamMetadataRecord |
true |
Emite metadados do produtor e do banco de dados de origem. |
Recomendado: Mantenha todas as três definições ativadas, a menos que um registro de esquema externo controlado as substitua. A desativação de registros de esquema ou metadados reduz o volume da rede, mas transfere a responsabilidade de controle de versão e descoberta para a plataforma do consumidor.
Controles de tamanho e grande valor
| Propriedade | Padrão | Mínimo | Máximo | Comportamento |
|---|---|---|---|---|
maxLobSize |
64.000 | 1 | 18.446.744.073.709.552.000 | Os dados de LOB são truncados além desse tamanho em bytes. |
maxDDLTextSize |
1.000.000 | 1 | 4.294.967.295 | O texto da instrução DDL é truncado além desse tamanho em bytes. |
maxRecordSize |
1.048.576 | 131.072 | 10.485.760 | Um registro que excede o tamanho é truncado ou dividido em partes. |
truncateOrChunk |
truncate |
- | truncate ou chunk |
Seleciona o tratamento de registros de grande porte. |
Quando truncateOrChunk for chunk, consuma os metadados de chunk exatamente conforme definido pelo esquema de runtime. Não invente um contrato de remontagem. Carregue os tamanhos máximos de LOB e DDL do teste porque a biblioteca WebSocket, o proxy e a plataforma downstream podem impor limites adicionais de quadro ou mensagem.
Campos de metadados
A maioria das entradas metaFields aceita um Booliano ou uma string. true inclui o campo com seu nome de saída padrão, false omite e uma string o inclui nesse nome personalizado. env, sys e tokens aceitam objetos ou valores especializados definidos pelo esquema REST.
| Propriedade | Padrão | Significado |
|---|---|---|
qualifiedTable |
true |
Nome do objeto totalmente qualificado. O campo Fluxo de Dados Padrão normalmente é qual_table. |
opType |
true |
Tipo de operação. O campo padrão é normalmente op_type. |
opTs |
true |
Timestamp da operação. O campo padrão é normalmente op_ts. |
pos |
true |
Posição opaca de recuperação. Não desative para um consumidor recuperável. |
xid |
true |
Identificador da transação de origem. |
table |
false |
Nome de tabela não qualificado. |
schema |
false |
Nome do esquema ou proprietário. |
catalog |
false |
Nome do catálogo quando disponível. |
csn |
false |
Número de sequência de commit de origem. |
opSeqno |
false |
Número de sequência do registro na transação. |
transInd |
false |
Indicador de transação B, M, E ou W. |
primaryKeys |
false |
Nomes ou valores de coluna de chave primária de acordo com o contrato do formatador configurado. |
opTsMicroSecs |
false |
Timestamp da operação como microssegundos após a época. |
currentTs |
false |
Data e hora do processamento atual. |
currentTsMicroSecs |
false |
Timestamp de processamento atual como microssegundos após a época. |
tokens |
null |
Tokens do usuário, tokens GoldenGate, todos os tokens ou um subconjunto configurado. |
env |
null |
Valores de ambiente GoldenGate selecionados. |
sys |
null |
Valores de ambiente do sistema selecionados. Evite expor segredos. |
Configuração recomendada de metadados empresariais
"metaFields": {
"qualifiedTable": true,
"opType": true,
"opTs": true,
"pos": true,
"xid": true,
"csn": "csn",
"opSeqno": "op_seqno",
"transInd": "trans_ind",
"primaryKeys": "primary_keys"
}
Nomes de string explícitos tornam o contrato de payload público claro e evitam depender de nomes padrão do formatador para metadados opcionais.