Formats de sérialisation dans Neptune Streams - Amazon Neptune

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Formats de sérialisation dans Neptune Streams

Amazon Neptune utilise deux formats différents pour sérialiser les données de modification des graphes dans les flux de journaux, selon que le graphe a été créé à l'aide de G705 ou. SPARQL

Les deux formats partagent un format de sérialisation des enregistrements commun, comme décrit dans Format de réponse de Neptune Streams API, qui contient les champs suivants :

  • commitTimestamp : heure à laquelle la validation de la transaction a été demandée, en millisecondes, à partir de l'Unix Epoch.

  • eventId : identifiant de séquence de l'enregistrement de dernière modification du flux.

  • data— Le G705 sérialiséSPARQL, ou enregistrement des OpenCypher modifications. Les formats de sérialisation de chaque enregistrement sont décrits plus en détail dans les sections suivantes.

  • op : opération à l'origine de la modification.

PG_ JSON Modifier le format de sérialisation

Note

Depuis la version 1.1.0.0 du moteur, le format de sortie du flux Gremlin (GREMLIN_JSON) généré par le point de terminaison du flux Gremlin (https://Neptune-DNS:8182/gremlin/stream) est obsolète. Il est remplacé par PG_JSON, qui est actuellement identique àGREMLIN_JSON.

Un enregistrement G705 ou un enregistrement de openCypher modification, contenu dans le data champ d'une réponse au flux de log, contient les champs suivants :

  • id : chaîne, obligatoire.

    L'ID du Gremlin ou de l' openCypher élément.

  • type : chaîne, obligatoire.

    Le type de ce Gremlin ou de cet openCypher élément. Doit être l'un des suivants :

    • vl— Étiquette du sommet pour Gremlin ; étiquette du nœud pour. openCypher

    • vp— Propriétés du sommet pour Gremlin ; propriétés du nœud pour. openCypher

    • e— Étiquette de bord et de bord pour Gremlin ; relation et type de relation pouropenCypher.

    • ep— Propriétés de bord pour G705 ; propriétés de relation pouropenCypher.

  • key : chaîne, obligatoire.

    Nom de la propriété. Pour les étiquettes d'élément, il s'agit de « label ».

  • value : objet value, obligatoire.

    Il s'agit d'un JSON objet qui contient un value champ pour la valeur elle-même et un datatype champ pour le type de JSON données de cette valeur.

    "value": { "value": "the new value", "dataType": "the JSON datatype of the new value" }
  • from : chaîne, facultatif.

    S'il s'agit d'une arête (type="e"), ID du sommet source ou du nœud source correspondant.

  • to : chaîne, facultatif.

    S'il s'agit d'une arête (type="e"), ID du sommet cible ou du nœud cible correspondant.

Exemples Gremlin
  • Voici un exemple d'étiquette de sommet Gremlin.

    { "id": "an ID string", "type": "vl", "key": "label", "value": { "value": "the new value of the vertex label", "dataType": "String" } }
  • Voici un exemple de propriété de sommet Gremlin.

    { "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" } }
  • Voici un exemple d'arc Gremlin.

    { "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 Exemples
  • Voici un exemple d'étiquette de openCypher nœud.

    { "id": "an ID string", "type": "vl", "key": "label", "value": { "value": "the new value of the node label", "dataType": "String" } }
  • Voici un exemple de propriété de openCypher nœud.

    { "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" } }
  • Voici un exemple de openCypher relation.

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

SPARQLNQUADSModifier le format de sérialisation

Neptune enregistre les modifications apportées aux SPARQL quads dans le graphe à l'aide du N-QUADS langage Resource Description Framework (RDF) défini dans la spécification N-Quads 1.1 du W3C RDF.

Le data champ de l'enregistrement de modification contient simplement un stmt champ contenant une QUADS instruction N- exprimant le quadruple modifié, comme dans l'exemple suivant.

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