Référence de la charge utile et du schéma

Data Streams s'auto-décrit lorsque les enregistrements de schéma et de métadonnées JSON sont activés. La forme exacte de l'enregistrement peut changer lorsque les champs de sortie sont renommés, que les métadonnées facultatives sont activées, que le modèle d'enregistrement est modifié ou que les métadonnées source sont modifiées. Les enregistrements de schéma JSON in-band et YAML AsyncAPI générés sont les définitions d'exécution faisant autorité.

Classification Identification Conseils de traitement
Enregistrement de schéma Contient id, $schema, type et properties Mettre en cache par id ; ne pas acheminer en tant que données métier.
Métadonnées de flux op_type est STREAM_METADATA Enregistrer le producteur et le contexte source ; actualiser les diagnostics lorsqu'ils réapparaissent.
Métadonnées d'objet op_type est OBJECT_METADATA Mettez en cache les colonnes, les types primitifs, la capacité d'affectation de valeur NULL et les indicateurs de clé par qual_table.
LMD (langage de manipulation de données) op_type est INSERT, UPDATE, DELETE ou UPSERT. Appliquez le changement de ligne selon la sémantique avant/après.
DDL op_type est DDL et ddl est présent Traitez l'objet et l'instruction, puis attendez-vous à ce que les métadonnées/schéma soient actualisées, le cas échéant.

Enregistrements de schéma JSON

Par défaut, les flux de données émettent un enregistrement de schéma JSON avant d'envoyer un type d'enregistrement qui requiert ce schéma. Les enregistrements de schéma utilisent le brouillon 4 du schéma JSON et contiennent les champs suivants :

Champ Signification
id Identificateur stable du type de schéma et, pour les schémas propres à une table, de l'objet qualifié.
title Titre de schéma lisible par l'utilisateur.
$schema Dialecte de schéma JSON, http://json-schema.org/draft-04/schema#.
type Type JSON de niveau supérieur, object.
definitions Définitions de colonne ou de métadonnées réutilisables si nécessaire.
properties Champs autorisés et leurs contraintes.
required Champs requis pour les instances du schéma.
additionalProperties Indique si les champs non déclarés par le schéma sont acceptés.

Règle de consommateur : un enregistrement de schéma ne doit pas contenir op_type. Détectez-le par structure de schéma et par id. Un schéma peut être envoyé à nouveau lorsque les métadonnées source ou la configuration du flux de données changent.

Enregistrement de métadonnées de flux

Champ Sous-champs Description
op_type - STREAM_METADATA.
producer name, version Identité du producteur de flux de données et version du logiciel.
database name, version, charset, timeZone Contexte de base de données source. Traite les valeurs comme informationnelles et dépendantes de la source.
machine node, system, release, version, hardware Contexte de système d'exploitation d'hôte.
source file, uri, uriHistory quand présent, creationTime, compatibility Contexte de trace ou de processus source.

Enregistrement de métadonnées d'objet

Un enregistrement de métadonnées d'objet décrit la définition de table en cours utilisée pour encoder les instructions LMD. Il contient op_type: OBJECT_METADATA, qual_table et un objet columns. Chaque colonne contient :

Attribut de colonne Description
type Classification primitive JSON telle que string, number ou boolean. Utilisez le schéma JSON propre à la table pour tous les types acceptés, y compris null.
null Indique si la colonne source peut être NULL en fonction des métadonnées capturées.
key Indique si la colonne fait partie de la clé connue sous le nom GoldenGate pour l'objet.
{
  "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}
  }
}

Enregistrement DML

Champ par défaut Requis par défaut Signification
qual_table Oui Nom de table qualifié complet. Le nom et la présence peuvent être modifiés avec metaFields.qualifiedTable.
op_type Oui Chaîne d'opération. Les valeurs par défaut sont INSERT, UPDATE, DELETE et UPSERT ; les chaînes peuvent être personnalisées.
op_ts Oui Horodatage de l'opération source au format ISO 8601 dans les schémas Data Streams en cours.
xid Oui Identifiant de la transaction source représenté par une chaîne. Le format dépend de la source.
pos Oui Position opaque de récupération. Stocker exactement ; ne pas analyser.
before Conditionnel Avant image pour les opérations de mise à jour et de suppression lorsque les colonnes requises ont été capturées. Le nom peut être personnalisé.
after Conditionnel Après l'image pour les opérations d'insertion et de mise à jour lorsque les colonnes requises ont été capturées. Le nom peut être personnalisé.
Métadonnées facultatives Non csn, séquence d'opération, indicateur de transaction, clés primaires, catalogue/schéma/table, horodatages de traitement, jetons, valeurs d'environnement et champs statiques.

Matrice d'image avant et après

Opération before after Notes
INSERT Normalement absent Nouvelle image de ligne Seules les colonnes disponibles dans la trace sont émises.
UPDATE Valeurs d'origine Nouvelles valeurs La trace (trail) et la journalisation source déterminent si les images sont complètes ou partielles.
SUPPRIMER Image de ligne supprimée Normalement absent Assurez-vous que les colonnes de clé et les colonnes d'audit requises sont capturées.
METTRE À JOUR Dépend du schéma d'exécution Image de ligne résultante Utilisez le schéma et le contrat d'opération générés pour le pipeline source.

Exemples LMD

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

Enregistrement DDL

Champ Signification
op_type DDL.
op_ts Horodatage de l'opération LDD.
xid Identifiant de transaction associé à l'enregistrement DDL.
pos Position de récupération opaque pour l'enregistrement DDL.
ddl.object.catalog Nom du catalogue lorsque la source en fournit un ; peut être une chaîne vide.
ddl.object.schema Nom de schéma ou de propriétaire.
ddl.object.object Nom de l'objet affecté.
ddl.statement Texte LDD tronqué s'il dépasse 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)"
  }
}

Format CloudEvents

Lorsque cloudEventsFormat est activé, l'enregistrement GoldenGate est transféré dans le membre data JSON CloudEvents. Les attributs CloudEvents standard identifient l'événement. Traitez les valeurs de type, source et id comme des valeurs de contrat d'exécution et examinez les enregistrements YAML et réels générés plutôt que les exemples de codage en dur à partir d'un autre flux.

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