JSON-Ausgabe konfigurieren
Die folgende Tabelle zeigt das Modell operation und row.
| Modell | Ausprägung | Anleitung |
|---|---|---|
op |
Metadaten auf Datensatz- und Spaltenebene unter den Objekten before und after. |
Empfohlen für CDC, da explizite Bildsemantik beibehalten wird. |
row |
Spaltenwerte auf Record-Ebene statt verschachtelter Bildobjekte. | Nur verwenden, wenn der nachgelagerte Vertrag eine einfache Zeile erwartet. Das tabellenspezifische Laufzeitschema definiert, welches Image für jeden Vorgang dargestellt wird. |
op mit flatten=true |
Verschachtelte Imagenamen werden mit Spaltennamen verkettet. Beispiel: before.STATUS und after.STATUS, wenn das Trennzeichen . lautet. |
Nützlich für flache Waschbecken, die noch vor/nach der Unterscheidung benötigt werden. |
Core-JSON-Eigenschaften
| Eigenschaft | Standard/Limits | Beschreibung |
|---|---|---|
$schema |
ogg:outputFormatJson |
JSON-Ausgabekonfigurationsschema-ID. |
model |
op; op oder row |
Modell aufzeichnen. |
beforeImageName |
before; 1-32 Zeichen |
Name des Before-Image-Objekts im Operationsmodell. |
afterImageName |
after; 1-32 Zeichen |
Name des After-Image-Objekts im Operationsmodell. |
omitNullColumnValues |
false |
Lässt Spalten aus, deren Wert Null ist. Dadurch können fehlende und Nullwerte für ausgelassene Felder nicht mehr unterschieden werden. |
treatAllColumnsAsStrings |
false |
Schreibt alle Spaltenwerte als Zeichenfolgen anstelle von nativen JSON-Primitiven. |
flatten |
false |
Blättert vor und nach Bildspalten im Betriebsmodell. |
flattenDelimiter |
0-32 Zeichen | Trennzeichen zwischen Bildname und Spaltenname, wenn vereinfacht. |
delimiter |
0-32 Zeichen | Trennzeichen für Formatierungsdatensatz. WebSocket-Consumer sollten den von der AsyncAPI-YAML beschriebenen Standardarrayvertrag normalerweise beibehalten. |
staticFields |
Objekt / keine | Fügt Felder mit konstanten Werten zu Ausgabe-Records hinzu. |
operationStrings |
EINFÜGEN, AKTUALISIEREN, LÖSCHEN, ABSCHNEIDEN, UPSERT, DDL | Passen Sie Vorgangslabels an. Stimmen Sie sich mit jedem Verbraucher ab, bevor Sie sich ändern. |
Schema- und Metadatenemission
| Eigenschaft | Standard | Auswirkung |
|---|---|---|
includeJSONSchemaRecord |
true |
Gibt JSON-Schemadatensätze für Streammetadaten-, Objektmetadaten-, DML- und DDL-Datensätze aus. |
includeObjectMetadataRecords |
true |
Gibt Metadaten der Tabellenspalte aus. |
includeStreamMetadataRecord |
true |
Gibt Metadaten der Producer- und Quelldatenbank aus. |
Empfohlen: Lassen Sie alle drei Einstellungen aktiviert, es sei denn, eine gesteuerte externe Schemaregistrierung ersetzt sie. Die Deaktivierung von Schema- oder Metadatendatensätzen reduziert das Netzwerkvolumen, überträgt jedoch die Versions- und Discovery-Zuständigkeit an die Consumer-Plattform.
Größen- und Großwertkontrollen
| Eigenschaft | Standard | Minimum | Maximum | Verhalten |
|---|---|---|---|---|
maxLobSize |
64.000 | 1 | 18.446.744.073.709.552.000 | LOB-Daten werden über diese Größe hinaus in Byte abgeschnitten. |
maxDDLTextSize |
1.000.000 | 1 | 4.294.967.295 | DDL-Anweisungstext wird über diese Größe in Byte gekürzt. |
maxRecordSize |
1.048.576 | 131.072 | 10.485.760 | Ein Datensatz, der die Größe überschreitet, wird abgeschnitten oder als Chunking ausgeführt. |
truncateOrChunk |
truncate |
- | truncate oder chunk |
Wählt die Verarbeitung von übergroßen Datensätzen. |
Wenn truncateOrChunk chunk ist, konsumieren Sie die Chunk-Metadaten genau wie vom Laufzeitschema definiert. Erfinden Sie keinen Wiederaufbauvertrag. Laden Sie die maximale LOB- und DDL-Größe des Tests, da die WebSocket-Bibliothek, der Proxy und die Downstream-Plattform zusätzliche Frame- oder Meldungslimits festlegen können.
Felder "Metadaten"
Die meisten metaFields-Einträge akzeptieren entweder einen booleschen Wert oder eine Zeichenfolge. true enthält das Feld mit seinem Standardausgabenamen, false lässt es weg, und eine Zeichenfolge enthält es unter diesem benutzerdefinierten Namen. env, sys und tokens akzeptieren spezialisierte Objekte oder Werte, die durch das REST-Schema definiert sind.
| Eigenschaft | Standard | Bedeutung |
|---|---|---|
qualifiedTable |
true |
Vollqualifizierter Objektname. Das Standard-Datenstreams-Feld ist normalerweise qual_table. |
opType |
true |
Vorgangstyp. Das Standardfeld ist normalerweise op_type. |
opTs |
true |
Vorgangszeitstempel. Das Standardfeld ist normalerweise op_ts. |
pos |
true |
Undurchsichtige Erholungsposition. Deaktivieren Sie nicht für einen wiederherstellbaren Consumer. |
xid |
true |
Herkunftstransaktions-ID. |
table |
false |
Nicht qualifizierter Tabellenname. |
schema |
false |
Schemaname oder Eigentümername. |
catalog |
false |
Katalogname, sofern verfügbar. |
csn |
false |
Quell-Commit-Folgenummer. |
opSeqno |
false |
Datensatzfolgenummer innerhalb der Transaktion. |
transInd |
false |
Transaktionsindikator B, M, E oder W. |
primaryKeys |
false |
Spaltennamen oder -werte des Primärschlüssels entsprechend dem konfigurierten Formatierungsvertrag. |
opTsMicroSecs |
false |
Operationszeitstempel als Mikrosekunden nach der Epoche. |
currentTs |
false |
Aktueller Verarbeitungszeitstempel. |
currentTsMicroSecs |
false |
Aktueller Verarbeitungszeitstempel als Mikrosekunden nach der Epoche. |
tokens |
null |
Benutzertoken, GoldenGate-Token, alle Token oder eine konfigurierte Teilmenge. |
env |
null |
Ausgewählte GoldenGate-Umgebungswerte. |
sys |
null |
Ausgewählte Systemumgebungswerte. Vermeiden Sie es, Geheimnisse aufzudecken. |
Empfohlene Enterprise-Metadatenkonfiguration
"metaFields": {
"qualifiedTable": true,
"opType": true,
"opTs": true,
"pos": true,
"xid": true,
"csn": "csn",
"opSeqno": "op_seqno",
"transInd": "trans_ind",
"primaryKeys": "primary_keys"
}
Explizite Zeichenfolgennamen machen den öffentlichen Payload-Vertrag klar und vermeiden, dass Formatter-Standardnamen für optionale Metadaten verwendet werden.