Serialisierungsformate in Neptune-Streams - Amazon Neptune

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Serialisierungsformate in Neptune-Streams

Amazon Neptune verwendet zwei verschiedene Formate für die Serialisierung von Diagrammänderungsdaten in Protokollstreams, je nachdem, ob das Diagramm mit Gremlin oder SPARQL erstellt wurde.

Beide Formate verwenden das gleiche Format für die Serialisierung von Datensätzen, wie in Neptune-Streams-API-Antwortformat beschrieben, das die folgenden Felder enthält:

  • commitTimestamp   –   Der Zeitpunkt, zu dem das Commit für die Transaktion angefordert wurde, in Millisekunden ab der Unix-Epoche.

  • eventId   –   Die Sequenz-ID des Stream-Änderungsdatensatzes.

  • data— Der serialisierte Gremlin-, SPARQL- oder Änderungsdatensatz. OpenCypher Die Serialisierungsformate für jeden Datensatz werden in den nächsten Abschnitten ausführlicher beschrieben.

  • op   –   Die Operation, die die Änderung erstellt hat.

PG_JSON-Änderungsserialisierungsformat

Anmerkung

Ab Engine-Version 1.1.0.0 ist das Gremlin-Stream-Ausgabeformat (GREMLIN_JSON) veraltet, das vom Gremlin-Stream-Endounkt (https://Neptune-DNS:8182/gremlin/stream) ausgegeben wird. Es wird durch PG_JSON ersetzt, das zurzeit mit GREMLIN_JSON identisch ist.

Ein Gremlin- oder openCypher-Änderungsdatensatz, der im Feld data einer Protokoll-Stream-Antwort enthalten ist, hat die folgenden Felder:

  • id – Zeichenfolge, erforderlich.

    Die ID des Gremlin- oder openCypher-Elements.

  • type – Zeichenfolge, erforderlich.

    Der Typ dieses Gremlin- oder openCypher-Elements. Muss einer der folgenden sein:

    • vl – Eckpunktbezeichnung für Gremlin; Knotenbezeichnung für openCypher.

    • vp – Eckpunkteigenschaften für Gremlin; Knoteneigenschaften für openCypher.

    • e – Kante und Kantenbezeichnung für Gremlin; Beziehung und Beziehungstyp für openCypher.

    • ep – Kanteneigenschaften für Gremlin; Beziehungseigenschaften für openCypher.

  • key – Zeichenfolge, erforderlich.

    Der Name der Eigenschaft. Für Elementbezeichnungen ist dies „label“.

  • value – value-Objekt, erforderlich.

    Dies ist ein JSON-Objekt, das ein value-Feld für den Wert selbst und ein datatype-Feld für den JSON-Datentyp dieses Werts enthält.

    "value": { "value": "the new value", "dataType": "the JSON datatype of the new value" }
  • from – Zeichenfolge, optional.

    Wenn dies eine Kante ist (Typ = „e“), die ID des entsprechenden Eckpunkts oder Quellknotens Von.

  • to – Zeichenfolge, optional.

    Wenn dies eine Kante ist (Typ = „e“), die ID des entsprechenden Eckpunkts oder Zielknotens Bis.

Gremlin-Beispiele
  • Das folgende Beispiel zeigt eine Gremlin-Eckpunktbezeichnung.

    { "id": "an ID string", "type": "vl", "key": "label", "value": { "value": "the new value of the vertex label", "dataType": "String" } }
  • Das folgende Beispiel zeigt eine Gremlin-Eckpunkteigenschaft.

    { "id": "an ID string", "type": "vp", "key": "the property name", "value": { "value": "the new value of the vertex property", "dataType": "the datatype of the vertex property" } }
  • Das folgende Beispiel zeigt eine Gremlin-Kante.

    { "id": "an ID string", "type": "e", "key": "label", "value": { "value": "the new value of the edge", "dataType": "String" }, "from": "the ID of the corresponding "from" vertex", "to": "the ID of the corresponding "to" vertex" }
openCypher-Beispiele
  • Das folgende Beispiel zeigt eine openCypher-Knotenbezeichnung.

    { "id": "an ID string", "type": "vl", "key": "label", "value": { "value": "the new value of the node label", "dataType": "String" } }
  • Das folgende Beispiel zeigt eine openCypher-Knoteneigenschaft.

    { "id": "an ID string", "type": "vp", "key": "the property name", "value": { "value": "the new value of the node property", "dataType": "the datatype of the node property" } }
  • Das folgende Beispiel zeigt eine openCypher-Beziehung.

    { "id": "an ID string", "type": "e", "key": "label", "value": { "value": "the new value of the relationship", "dataType": "String" }, "from": "the ID of the corresponding source node", "to": "the ID of the corresponding target node" }

SPARQL NQUADS-Änderungsserialisierungsformat

Neptune protokolliert Änderungen an SPARQL-Quads im Diagramm mithilfe der Resource-Description-Framework (RDF)-Sprache N-QUADS, die in der Spezifikation W3C RDF 1.1 N-Quads definiert ist.

Das data-Feld im Änderungsdatensatz enthält einfach ein stmt-Feld mit einer N-QUADS-Anweisung, die das geänderte Quad ausdrückt, wie im folgenden Beispiel gezeigt.

"stmt" : "<https://test.com/s> <https://test.com/p> <https://test.com/o> .\n"