Payload e Referência de Esquema

O serviço Data Streams é autodescritivo quando o esquema JSON e os registros de metadados estão ativados. A forma exata do registro pode ser alterada quando os campos de saída são renomeados, os metadados opcionais são ativados, as alterações no modelo de registro ou as alterações nos metadados de origem. Os registros gerados do Esquema JSON YAML AsyncAPI e em banda são as definições de runtime autorizadas.

Classificação Identificação Orientação de processamento
Registro do esquema Contém id, $schema, type e properties Cache por id; não roteie como dados de negócios.
Metadados de fluxo op_type é STREAM_METADATA Registre o contexto do produtor e da origem; atualize o diagnóstico quando ele reaparecer.
Metadados do objeto op_type é OBJECT_METADATA Armazene no cache colunas, tipos primitivos, nulidade e flags de chave por qual_table.
DML op_type é INSERT, UPDATE, DELETE ou UPSERT Aplique a alteração de linha de acordo com a semântica antes/depois.
DDL op_type é DDL e ddl está presente Processe o objeto e a instrução e espere metadados/esquema atualizados quando aplicável.

Registros do Esquema JSON

Por padrão, o serviço Data Streams emite um registro do Esquema JSON antes de enviar um tipo de registro que requer esse esquema. Os registros de esquema usam o rascunho 4 do Esquema JSON e contêm os seguintes campos:

Campo Significado
id Identificador estável para o tipo de esquema e, para esquemas específicos da tabela, o objeto qualificado.
title Título do esquema legível por humanos.
$schema Dialeto do Esquema JSON, http://json-schema.org/draft-04/schema#.
type Tipo de JSON de nível superior, object.
definitions Definições de coluna ou metadados reutilizáveis quando necessário.
properties Campos permitidos e suas restrições.
required Campos obrigatórios para instâncias do esquema.
additionalProperties Se os campos não declarados pelo esquema serão aceitos.

Regra do consumidor: Não espere que um registro de esquema contenha op_type. Detecte-o por estrutura de esquema e id. Um esquema pode ser enviado novamente quando os metadados de origem ou a configuração do stream forem alterados.

Registro de metadados de fluxo

Campo Subcampos Descrição
op_type - STREAM_METADATA.
producer name, version Identidade do produtor do Fluxo de Dados e versão do software.
database name, version, charset, timeZone Contexto do banco de dados de origem. Tratar valores como informativos e dependentes de origem.
machine node, system, release, version, hardware Contexto do sistema operacional do host.
source file, uri, uriHistory quando presente, creationTime, compatibility Trilha de origem ou contexto do processo.

Registro de metadados do objeto

Um registro de metadados do objeto descreve a definição de tabela atual usada para codificar DML. Ele tem op_type: OBJECT_METADATA, qual_table e um objeto columns. cada coluna contiver:

Atributo de coluna Descrição
type Classificação primitiva JSON, como string, number ou boolean. Use o Esquema JSON específico da tabela para os tipos aceitos completos, incluindo null.
null Se a coluna de origem pode ser nula de acordo com os metadados capturados.
key Se a coluna faz parte da chave conhecida como GoldenGate para o objeto.
{
  "op_type": "OBJECT_METADATA",
  "qual_table": "SALES.ORDERS",
  "columns": {
    "ORDER_ID": {"type": "number", "null": false, "key": true},
    "STATUS": {"type": "string", "null": false, "key": false},
    "TOTAL_AMOUNT": {"type": "number", "null": true, "key": false}
  }
}

Registro DML

Campo padrão Obrigatório por padrão Significado
qual_table Sim Nome de tabela totalmente qualificado. O nome e a presença podem ser alterados com metaFields.qualifiedTable.
op_type Sim String de operação. Os padrões são INSERT, UPDATE, DELETE, UPSERT; as strings podem ser personalizadas.
op_ts Sim Timestamp da operação de origem no form ISO 8601 nos esquemas atuais do serviço Data Streams.
xid Sim Identificador da transação de origem representado como uma string. O formato é dependente da origem.
pos Sim Posição opaca de recuperação. Armazenar exatamente; não analisar.
before Condicional Antes da imagem para operações de atualização e exclusão quando as colunas necessárias foram capturadas. O nome pode ser personalizado.
after Condicional Após a imagem para operações de inserção e atualização quando as colunas necessárias foram capturadas. O nome pode ser personalizado.
Metadados opcionais Não csn, sequência de operação, indicador de transação, chaves primárias, catálogo/esquema/tabela, timestamps de processamento, tokens, valores de ambiente e campos estáticos.

Matriz de imagem anterior e posterior

Operação before after Observações
INSERT Normalmente ausente Nova imagem de linha Somente colunas disponíveis na trilha são emitidas.
UPDATE Valores originais Novos valores A trilha e o log de origem determinam se as imagens estão completas ou parciais.
EXCLUIR Imagem de linha excluída Normalmente ausente Certifique-se de que as colunas-chave e as colunas de auditoria necessárias sejam capturadas.
ATUALIZAR Dependente do esquema de tempo de execução Imagem da linha resultante Use o esquema gerado e o contrato de operação para o pipeline de origem.

Exemplos de DML

{
  "qual_table": "SALES.ORDERS",
  "op_type": "INSERT",
  "op_ts": "2026-07-13T04:01:01.123456Z",
  "xid": "example-transaction-1001",
  "pos": "G-QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVo=1001",
  "after": {
    "ORDER_ID": 1001,
    "STATUS": "NEW",
    "TOTAL_AMOUNT": 125.50
  }
}
{
  "qual_table": "SALES.ORDERS",
  "op_type": "UPDATE",
  "op_ts": "2026-07-13T04:02:12.654321Z",
  "xid": "example-transaction-1002",
  "pos": "G-R0hJSktMTU5PUFFSU1RVVldYWVo=1002",
  "before": {"ORDER_ID": 1001, "STATUS": "NEW"},
  "after": {"ORDER_ID": 1001, "STATUS": "APPROVED"}
}
{
  "qual_table": "SALES.ORDERS",
  "op_type": "DELETE",
  "op_ts": "2026-07-13T04:03:15.000000Z",
  "xid": "example-transaction-1003",
  "pos": "G-SktMTU5PUFFSU1RVVldYWVo=1003",
  "before": {"ORDER_ID": 1001, "STATUS": "APPROVED"}
}

Registro DDL

Campo Significado
op_type DDL.
op_ts Timestamp da operação DDL.
xid Identificador da transação associado ao registro DDL.
pos Posição de recuperação opaca para o registro DDL.
ddl.object.catalog Nome do catálogo quando a origem fornece um; pode ser uma string vazia.
ddl.object.schema Nome do esquema ou proprietário.
ddl.object.object Nome do objeto afetado.
ddl.statement Texto DDL, truncado se exceder maxDDLTextSize.
{
  "op_type": "DDL",
  "op_ts": "2026-07-13T04:04:30.000000Z",
  "xid": "example-transaction-1004",
  "pos": "G-TU5PUFFSU1RVVldYWVo=1004",
  "ddl": {
    "object": {
      "catalog": "",
      "schema": "SALES",
      "object": "ORDERS"
    },
    "statement": "ALTER TABLE SALES.ORDERS ADD CUSTOMER_TIER VARCHAR2(20)"
  }
}

Formato CloudEvents

Quando o cloudEventsFormat está ativado, o registro GoldenGate é transportado no membro CloudEvents JSON data. Os atributos CloudEvents padrão identificam o evento. Trate os valores de type, source e id como valores de contrato de runtime e inspecione os registros YAML e reais gerados em vez de exemplos de codificação de outro fluxo.

{
  "specversion": "1.0",
  "type": "<runtime event type>",
  "source": "<runtime event source>",
  "id": "<runtime event id>",
  "datacontenttype": "application/json",
  "data": {
    "qual_table": "SALES.ORDERS",
    "op_type": "INSERT",
    "op_ts": "2026-07-13T04:01:01.123456Z",
    "xid": "example-transaction-1001",
    "pos": "G-QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVo=1001",
    "after": {"ORDER_ID": 1001, "STATUS": "NEW"}
  }
}