Payload- und Schemareferenz

Data Streams beschreibt selbst, wann JSON-Schema- und Metadatendatensätze aktiviert sind. Die genaue Datensatzausprägung kann sich ändern, wenn Ausgabefelder umbenannt, optionale Metadaten aktiviert, das Datensatzmodell geändert oder Quellmetadaten geändert werden. Die generierten AsyncAPI YAML- und In-Band-JSON-Schemadatensätze sind die maßgeblichen Laufzeitdefinitionen.

Klassifizierung Identifikation Verarbeitungsleitfaden
Schemadatensatz Enthält id, $schema, type und properties Cache nach id; nicht als Geschäftsdaten weiterleiten.
Streammetadaten op_type lautet STREAM_METADATA. Producer- und Quellkontext aufzeichnen; Diagnose aktualisieren, wenn sie wieder angezeigt wird.
Objektmetadaten op_type lautet OBJECT_METADATA. Cachen Sie Spalten, primitive Typen, Nullbarkeit und Schlüssel-Flags nach qual_table.
DML op_type ist INSERT, UPDATE, DELETE oder UPSERT Wenden Sie die Zeilenänderung entsprechend der Vor/Nach-Semantik an.
DDL op_type ist DDL, und ddl ist vorhanden Verarbeiten Sie das Objekt und die Anweisung, und erwarten Sie gegebenenfalls aktualisierte Metadaten/Schema.

JSON-Schemadatensätze

Standardmäßig gibt Data Streams einen JSON-Schemadatensatz aus, bevor ein Datensatztyp gesendet wird, der dieses Schema erfordert. Schemadatensätze verwenden JSON-Schemaentwurf 4 und enthalten die folgenden Felder:

Feld Bedeutung
id Stabile ID für den Schematyp und für tabellenspezifische Schemas das qualifizierte Objekt.
title Menschlich lesbarer Schematitel.
$schema JSON-Schemadialekt, http://json-schema.org/draft-04/schema#.
type JSON-Typ der obersten Ebene, object.
definitions Wiederverwendbare Spalten- oder Metadatendefinitionen bei Bedarf.
properties Zulässige Felder und ihre Constraints.
required Erforderliche Felder für Instanzen des Schemas.
additionalProperties Ob Felder, die nicht vom Schema deklariert wurden, akzeptiert werden.

Consumer-Regel: Erwarten Sie nicht, dass ein Schemadatensatz op_type enthält. Ermitteln Sie sie anhand der Schemastruktur und id. Ein Schema kann erneut gesendet werden, wenn sich die Quellmetadaten oder die Streamkonfiguration ändern.

Streammetadatendatensatz

Feld Subfelder Beschreibung
op_type - STREAM_METADATA.
producer name, version Identität und Softwareversion des Data Stream-Producers.
database name, version, charset, timeZone Quelldatenbankkontext. Werte als informativ und quellabhängig behandeln.
machine node, system, release, version, hardware Hostbetriebssystemkontext.
source file, uri, uriHistory, sofern vorhanden, creationTime, compatibility Quelltrail oder Prozesskontext.

Objektmetadatendatensatz

Ein Objektmetadatensatz beschreibt die aktuelle Tabellendefinition, die zur Codierung von DML verwendet wird. Er enthält op_type: OBJECT_METADATA, qual_table und ein columns-Objekt. Jede Spalte enthält:

Spaltenattribut Beschreibung
type Primitive JSON-Klassifizierung wie string, number oder boolean. Verwenden Sie das tabellenspezifische JSON-Schema für die vollständigen akzeptierten Typen, einschließlich null.
null Gibt an, ob die Quellspalte gemäß den erfassten Metadaten Null sein kann.
key Gibt an, ob die Spalte Teil des Schlüssels ist, der GoldenGate für das Objekt bekannt ist.
{
  "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}
  }
}

DML-Datensatz

Standardfeld Standardmäßig erforderlich Bedeutung
qual_table Ja Vollqualifizierter Tabellenname. Der Name und die Präsenz können mit metaFields.qualifiedTable geändert werden.
op_type Ja Vorgangszeichenfolge. Die Standardwerte sind INSERT, UPDATE, DELETE, UPSERT. Zeichenfolgen können angepasst werden.
op_ts Ja Zeitstempel des Quellvorgangs in ISO 8601-Form in aktuellen Data Streams-Schemas.
xid Ja Quelltransaktions-ID, die als Zeichenfolge dargestellt wird. Das Format ist quellabhängig.
pos Ja Undurchsichtige Erholungsposition. Genau speichern; nicht parsen.
before Bedingt Vor Image für Aktualisierungs- und Löschvorgänge, wenn die erforderlichen Spalten erfasst wurden. Der Name kann angepasst werden.
after Bedingt Nach dem Image für Einfüge- und Aktualisierungsvorgänge, wenn die erforderlichen Spalten erfasst wurden. Der Name kann angepasst werden.
Optionale Metadaten Nein csn, Vorgangssequenz, Transaktionsindikator, Primärschlüssel, Katalog/Schema/Tabelle, Verarbeitungszeitstempel, Token, Umgebungswerte und statische Felder.

Vor und nach Bildmatrix

Arbeitsvorgang before after Notizen
INSERT Normalerweise abwesend Neues Zeilenbild Es werden nur Spalten ausgegeben, die im Trail verfügbar sind.
UPDATE Originalwerte Neue Werte Das Trail- und Quelllogging bestimmen, ob Bilder vollständig oder teilweise sind.
LÖSCHEN Bild der gelöschten Zeile Normalerweise abwesend Stellen Sie sicher, dass Schlüsselspalten und erforderliche Auditspalten erfasst werden.
UPSERT Laufzeitschemaabhängig Ergebniszeilenbild Verwenden Sie den generierten Schema- und Vorgangsvertrag für die Quellpipeline.

DML – Beispiele

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

DDL-Datensatz

Feld Bedeutung
op_type DDL.
op_ts Zeitstempel für DDL-Vorgang.
xid Transaktions-ID, die dem DDL-Datensatz zugeordnet ist.
pos Nicht transparente Wiederherstellungsposition für den DDL-Datensatz.
ddl.object.catalog Katalogname, wenn die Quelle einen bereitstellt. Kann eine leere Zeichenfolge sein.
ddl.object.schema Schemaname oder Eigentümername.
ddl.object.object Name des betroffenen Objekts.
ddl.statement DDL-Text, abgeschnitten, wenn er maxDDLTextSize überschreitet.
{
  "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)"
  }
}

CloudEvents-Format

Wenn cloudEventsFormat aktiviert ist, wird der GoldenGate-Datensatz im JSON-Element data CloudEvents übertragen. Standardattribute der CloudEvents kennzeichnen das Ereignis. Behandeln Sie die Werte von type, source und id als Laufzeitvertragswerte, und prüfen Sie die generierten YAML- und Istdatensätze, anstatt Beispiele aus einem anderen Stream zu hartcodieren.

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