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 de graphe dans les flux de journaux, selon que le graphe a été créé à l'aide de Gremlin ou de SPARQL.

Les deux formats partagent un format de sérialisation des enregistrements commun, comme décrit dans Format de réponse de l'API Neptune Streams, 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— L'enregistrement sérialisé de Gkremlin, SPARQL ou OpenCypher de modification. 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.

Format de sérialisation des modifications PG_JSON

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 de modification Gremlin ou openCypher, contenu dans le champ data d'une réponse de flux de journaux, comporte les champs suivants :

  • id : chaîne, obligatoire.

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

  • type : chaîne, obligatoire.

    Type de cet élément Gremlin ou openCypher. 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 : arête et étiquette d'arête pour Gremlin ; relation et type de relation pour openCypher.

    • ep : propriétés de l'arête pour Gremlin ; propriétés de la relation pour openCypher.

  • 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 objet JSON qui contient un champ value pour la valeur elle-même et un champ datatype pour le type de données JSON 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" }
Exemples openCypher
  • Voici un exemple d'étiquette de nœud openCypher.

    { "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 nœud openCypher.

    { "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 relation openCypher.

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

Format de sérialisation des modifications SPARQL NQUADS

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

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

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