Payload e riferimento schema

I flussi di dati descrivono automaticamente quando i record di schema e metadati JSON sono abilitati. La forma esatta del record può cambiare quando i campi di output vengono rinominati, i metadati facoltativi vengono abilitati, le modifiche al modello di record o le modifiche ai metadati di origine. I record YAML AsyncAPI generati e Schema JSON in banda sono le definizioni di runtime autorevoli.

Classificazione Identificazione Guida all'elaborazione
Record schema Contiene id, $schema, type e properties Cache di id; non instradare come dati business.
Metadati flusso op_type è STREAM_METADATA Registrare il producer e il contesto di origine; aggiornare la diagnostica quando viene visualizzata di nuovo.
Metadati oggetto op_type è OBJECT_METADATA Inserisci nella cache colonne, tipi primitivi, annullabilità e flag chiave di qual_table.
DML op_type è INSERT, UPDATE, DELETE o UPSERT Applicare la modifica della riga in base alla semantica precedente/successiva.
DDL op_type è DDL e ddl è presente Elaborare l'oggetto e l'istruzione, quindi prevedere metadati/schemi aggiornati, se applicabile.

Record dello schema JSON

Per impostazione predefinita, Data Streams emette un record di schema JSON prima di inviare un tipo di record che richiede tale schema. I record di schema utilizzano la bozza 4 dello schema JSON e contengono i campi riportati di seguito.

Campo Significato
id Identificativo stabile per il tipo di schema e, per gli schemi specifici della tabella, per l'oggetto qualificato.
title Titolo schema leggibile dall'utente.
$schema Dialetto schema JSON, http://json-schema.org/draft-04/schema#.
type Tipo JSON di livello superiore, object.
definitions Definizioni di colonne o metadati riutilizzabili quando necessario.
properties Campi consentiti e relativi vincoli.
required Campi richiesti per le istanze dello schema.
additionalProperties Indica se i campi non dichiarati dallo schema sono accettati.

Regola di consumo: non si prevede che un record di schema contenga op_type. Rilevarlo in base alla struttura dello schema e a id. È possibile inviare di nuovo uno schema quando i metadati di origine o la configurazione del flusso vengono modificati.

Record metadati flusso

Campo Campi secondari Descrizione
op_type - STREAM_METADATA.
producer name, version Identità del producer di flussi di dati e versione software.
database name, version, charset, timeZone Contesto del database di origine. Considera i valori come informativi e dipendenti dalla fonte.
machine node, system, release, version, hardware Contesto del sistema operativo host.
source file, uri, uriHistory se presente, creationTime, compatibility Percorso di origine o contesto del processo.

Record metadati oggetto

Un record di metadati oggetto descrive la definizione di tabella corrente utilizzata per codificare DML. Ha op_type: OBJECT_METADATA, qual_table e un oggetto columns. Ogni colonna contiene:

Attributo colonna Descrizione
type Classificazione primitiva JSON come string, number o boolean. Utilizzare lo schema JSON specifico della tabella per i tipi accettati completi, incluso null.
null Indica se la colonna di origine può essere nulla in base ai metadati acquisiti.
key Indica se la colonna fa parte della chiave nota a GoldenGate per l'oggetto.
{
  "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}
  }
}

Record DML

Campo predefinito Obbligatorio per impostazione predefinita Significato
qual_table Sì Nome tabella completamente qualificato. Il nome e la presenza possono essere modificati con metaFields.qualifiedTable.
op_type Sì Stringa operazione. Le impostazioni predefinite sono INSERT, UPDATE, DELETE, UPSERT; le stringhe possono essere personalizzate.
op_ts Sì Indicatore orario dell'operazione di origine nel form ISO 8601 negli schemi Data Streams correnti.
xid Sì Identificativo della transazione di origine rappresentato come stringa. Il formato dipende dall'origine.
pos Sì Posizione di recupero opaca. Conservare esattamente; non analizzare.
before Condizionale Prima dell'immagine per le operazioni di aggiornamento ed eliminazione quando sono state acquisite le colonne necessarie. Il nome può essere personalizzato.
after Condizionale Dopo l'immagine per le operazioni di inserimento e aggiornamento quando sono state acquisite le colonne necessarie. Il nome può essere personalizzato.
Metadati facoltativi N. csn, sequenza delle operazioni, indicatore delle transazioni, chiavi primarie, catalogo/schema/tabella, indicatori orari di elaborazione, token, valori di ambiente e campi statici.

Prima e dopo la matrice delle immagini

Operazione before after Note
INSERISCI Normalmente assente Nuova immagine riga Vengono emesse solo le colonne disponibili nel trail.
UPDATE Valori originali Nuovi valori Il log trail e il log di origine determinano se le immagini sono complete o parziali.
ELIMINA Immagine riga eliminata Normalmente assente Assicurarsi che le colonne chiave e le colonne di audit necessarie vengano acquisite.
UPSERT Dipendente dallo schema di runtime Immagine riga risultante Utilizzare lo schema generato e il contratto operativo per la pipeline di origine.

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

Record DDL

Campo Significato
op_type DDL.
op_ts Indicatore orario dell'operazione DDL.
xid Identificativo della transazione associato al record DDL.
pos Posizione di recupero opaca per il record DDL.
ddl.object.catalog Nome del catalogo quando l'origine ne fornisce uno; può essere una stringa vuota.
ddl.object.schema Nome schema o proprietario.
ddl.object.object Nome oggetto interessato.
ddl.statement Testo DDL troncato se 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

Quando cloudEventsFormat è abilitato, il record GoldenGate viene riportato nel membro data JSON CloudEvents. Gli attributi CloudEvents standard identificano l'evento. Considera i valori di type, source e id come valori del contratto runtime e ispeziona gli YAML generati e i record effettivi anziché gli esempi di hardcoding di un altro flusso.

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