Carga útil y referencia de esquema

Data Streams se describe automáticamente cuando los registros de metadatos y esquemas JSON están activados. La unidad de registro exacta puede cambiar cuando se cambia el nombre de los campos de salida, se activan los metadatos opcionales, se cambian los modelos de registro o se cambian los metadatos de origen. Los registros de esquema JSON YAML y en banda generados AsyncAPI son las definiciones de tiempo de ejecución autorizadas.

Clasificación Identificación Orientación para el procesamiento
Registro de esquema Contiene id, $schema, type y properties Almacene en caché mediante id; no direccione como datos de negocio.
Metadatos de flujo op_type es STREAM_METADATA Registre el contexto de origen y productor; actualice el diagnóstico cuando vuelva a aparecer.
Metadatos de objeto op_type es OBJECT_METADATA Columnas de caché, tipos primitivos, nulidad e indicadores de clave mediante qual_table.
DML op_type es INSERT, UPDATE, DELETE o UPSERT Aplique el cambio de fila según la semántica anterior/después.
DDL op_type es DDL y ddl está presente Procese el objeto y la sentencia y, a continuación, espere que se refresquen los metadatos/esquema cuando corresponda.

Registros de esquema JSON

Por defecto, Data Streams emite un registro de esquema JSON antes de enviar un tipo de registro que requiera ese esquema. Los registros de esquema utilizan el borrador 4 del esquema JSON y contienen los siguientes campos:

Campo Significado
id Identificador estable para el tipo de esquema y, para los esquemas específicos de la tabla, el objeto calificado.
title Título de esquema legible por el usuario.
$schema Dialecto de esquema JSON, http://json-schema.org/draft-04/schema#.
type Tipo JSON de nivel superior, object.
definitions Definiciones de metadatos o columnas reutilizables cuando sea necesario.
properties Campos permitidos y sus restricciones.
required Campos necesarios para las instancias del esquema.
additionalProperties Si se aceptan campos no declarados por el esquema.

Regla de consumidor: no espere que un registro de esquema contenga op_type. Detectarlo por estructura de esquema y id. Se puede volver a enviar un esquema cuando cambien los metadatos de origen o la configuración del flujo.

Registro de metadatos de flujo

Campo Subcampos Descripción
op_type - STREAM_METADATA.
producer name, version Identidad del productor de flujo de datos y versión de software.
database name, version, charset, timeZone Contexto de base de datos de origen. Tratar los valores como informativos y dependientes de la fuente.
machine node, system, release, version, hardware Contexto del sistema operativo del host.
source file, uri, uriHistory cuando esté presente, creationTime, compatibility Contexto de proceso o pista de origen.

Registro de metadatos de objeto

Un registro de metadatos de objeto describe la definición de tabla actual utilizada para codificar DML. Tiene op_type: OBJECT_METADATA, qual_table y un objeto columns. Cada columna contiene:

Atributo de columna Descripción
type Clasificación primitiva JSON, como string, number o boolean. Utilice el esquema JSON específico de la tabla para los tipos aceptados completos, incluido null.
null Si la columna de origen puede ser nula según los metadatos capturados.
key Si la columna forma parte de la clave conocida por GoldenGate para el 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 por defecto Obligatorio por defecto Significado
qual_table Sí Nombres de tablas totalmente cualificadas. El nombre y la presencia se pueden cambiar con metaFields.qualifiedTable.
op_type Sí Cadena de operación. Los valores por defecto son INSERT, UPDATE, DELETE, UPSERT; las cadenas se pueden personalizar.
op_ts Sí Registro de hora de operación de origen en formato ISO 8601 en esquemas de flujos de datos actuales.
xid Sí Identificador de transacción de origen representado como una cadena. El formato depende del origen.
pos Sí Posición de recuperación opaca. Almacene exactamente; no analice.
before Condicional Antes de la imagen para las operaciones de actualización y supresión cuando se capturaron las columnas necesarias. Los nombres se pueden personalizar.
after Condicional Después de la imagen para las operaciones de inserción y actualización cuando se capturaron las columnas necesarias. Los nombres se pueden personalizar.
Metadatos opcionales No csn, secuencia de operación, indicador de transacción, claves primarias, catálogo/esquema/tabla, registros de hora de procesamiento, tokens, valores de entorno y campos estáticos.

Matriz de imagen antes y después

Operación before after Notas
INSERT Normalmente ausente Nueva imagen de fila Solo se emiten las columnas disponibles en la pista.
UPDATE Valores Originales Nuevos valores El registro de origen y de pista determinan si las imágenes son completas o parciales.
SUPRIMIR Imagen de fila eliminada Normalmente ausente Asegúrese de que se capturan las columnas de clave y las columnas de auditoría necesarias.
UPSERT Dependiente de esquema de tiempo de ejecución Imagen de fila resultante Utilice el esquema generado y el contrato de operación para el pipeline de origen.

Ejemplos 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 Registro de hora de la operación DDL.
xid Identificador de transacción asociado al registro DDL.
pos Posición de recuperación opaca para el registro DDL.
ddl.object.catalog Nombre del catálogo cuando el origen proporciona uno; puede ser una cadena vacía.
ddl.object.schema Esquema o nombre de propietario.
ddl.object.object Nombre de objeto afectado.
ddl.statement Texto DDL truncado si supera 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

Cuando cloudEventsFormat está activado, el registro GoldenGate se lleva en el miembro data de JSON CloudEvents. Los atributos CloudEvents estándar identifican el evento. Tratar los valores de type, source y id como valores de contrato de tiempo de ejecución e inspeccionar los registros reales y de YAML generados en lugar de codificar ejemplos de otro flujo.

{
  "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"}
  }
}