Configurer la sortie JSON

Le tableau suivant présente le modèle d'opération et de ligne

Modèle Forme Conseils
op Métadonnées au niveau de l'enregistrement et valeurs de colonne sous les objets before et after. Recommandé pour le CDC car il préserve une sémantique d'image explicite.
row Valeurs de colonne au niveau de l'enregistrement plutôt qu'objets image imbriqués. A utiliser uniquement lorsque le contrat en aval attend une ligne à plat. Le schéma d'exécution propre à la table définit l'image représentée pour chaque opération.
op avec flatten=true Les noms d'image imbriquée sont concaténés avec les noms de colonne, par exemple before.STATUS et after.STATUS lorsque le délimiteur est .. Utile pour les éviers plats qui ont encore besoin de distinction avant/après.

Propriétés JSON principales

Propriété Par défaut / limites Description
$schema ogg:outputFormatJson Identificateur de schéma de configuration de sortie JSON.
model op ; op ou row Modèle d'enregistrement.
beforeImageName before ; 1 à 32 caractères Nom de l'objet before-image dans le modèle d'opération.
afterImageName after ; 1 à 32 caractères Nom de l'objet après image dans le modèle d'opération.
omitNullColumnValues false Omet les colonnes dont la valeur est NULL. Cela rend les champs manquants et NULL indiscernables pour les champs omis.
treatAllColumnsAsStrings false Ecrit toutes les valeurs de colonne en tant que chaînes au lieu des primitives JSON natives.
flatten false Aplatit les colonnes d'image avant et après dans le modèle de fonctionnement.
flattenDelimiter 0-32 caractères Délimiteur entre le nom d'image et le nom de colonne lorsqu'il est mis à plat.
delimiter 0-32 caractères Délimiteur d'enregistrement de formateur. Les consommateurs WebSocket doivent normalement conserver le contrat de tableau par défaut décrit par le YAML AsyncAPI.
staticFields Objet / aucun Ajoute des champs avec des valeurs constantes aux enregistrements de sortie.
operationStrings INSÉRER, METTRE À JOUR, SUPPRIMER, TRONQUER, UPSERT, DDL Personnalise les étiquettes d'opération. Coordonnez-vous avec chaque consommateur avant de changer.

Émission de schémas et de métadonnées

Propriété Valeur par défaut Effet
includeJSONSchemaRecord true Emet des enregistrements de schéma JSON pour les métadonnées de flux, les métadonnées d'objet, les instructions LMD et les enregistrements LDD.
includeObjectMetadataRecords true Emet les métadonnées de colonne de table.
includeStreamMetadataRecord true Emet les métadonnées de la base de données source et du producteur.

Recommandé : conservez les trois paramètres activés, sauf si un registre de schéma externe régi les remplace. La désactivation des enregistrements de schéma ou de métadonnées réduit le volume réseau, mais transfère la responsabilité de gestion des versions et de repérage à la plate-forme destinataire.

Contrôles de taille et de grande valeur

Propriété Valeur par défaut Minimum Maximum Comportement
maxLobSize 64 000 1 18 446 744 073 709 552 000 Les données LOB sont tronquées au-delà de cette taille en octets.
maxDDLTextSize 1 000 000 1 4 294 967 295 Le texte de l'instruction LDD est tronqué au-delà de cette taille en octets.
maxRecordSize 1 048 576 131 072 10 485 760 Un enregistrement dépassant la taille est tronqué ou tronqué.
truncateOrChunk truncate - truncate ou chunk Sélectionne la gestion des enregistrements surdimensionnés.

Lorsque truncateOrChunk est défini sur chunk, utilisez les métadonnées de bloc exactement comme défini par le schéma d'exécution. N'inventez pas de contrat de réassemblage. Chargez les tailles LOB et DDL maximales de test car la bibliothèque WebSocket, le proxy et la plate-forme en aval peuvent imposer des limites de cadre ou de message supplémentaires.

Champs de métadonnées

La plupart des entrées metaFields acceptent une valeur booléenne ou une chaîne. true inclut le champ avec son nom de sortie par défaut, false l'ignore et une chaîne l'inclut sous ce nom personnalisé. env, sys et tokens acceptent des objets ou des valeurs spécialisés définis par le schéma REST.

Propriété Valeur par défaut Signification
qualifiedTable true Nom d'objet qualifié complet. Le champ Data Streams par défaut est normalement qual_table.
opType true Type d'opération. Le champ par défaut est normalement op_type.
opTs true Horodatage d'opération. Le champ par défaut est normalement op_ts.
pos true Position opaque de récupération. Ne pas désactiver pour un consommateur récupérable.
xid true Identifiant du mouvement d'origine.
table false Nom de table non qualifié.
schema false Nom de schéma ou de propriétaire.
catalog false Nom du catalogue, si disponible.
csn false Numéro de séquence de la validation source.
opSeqno false Numéro de séquence d'enregistrement au sein de la transaction.
transInd false Indicateur de transaction B, M, E ou W.
primaryKeys false Noms ou valeurs de colonne de clé primaire selon le contrat de formateur configuré.
opTsMicroSecs false Horodatage de l'opération en microsecondes après la période.
currentTs false Horodatage du traitement en cours.
currentTsMicroSecs false Horodatage de traitement en cours en microsecondes après la période.
tokens null Jetons utilisateur, jetons GoldenGate, tous les jetons ou un sous-ensemble configuré.
env null Valeurs d'environnement GoldenGate sélectionnées.
sys null Valeurs d'environnement système sélectionnées. Évitez d'exposer des secrets.
"metaFields": {
  "qualifiedTable": true,
  "opType": true,
  "opTs": true,
  "pos": true,
  "xid": true,
  "csn": "csn",
  "opSeqno": "op_seqno",
  "transInd": "trans_ind",
  "primaryKeys": "primary_keys"
}

Les noms de chaîne explicites rendent le contrat de charge utile public clair et évitent de s'appuyer sur les noms par défaut du formateur pour les métadonnées facultatives.