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 d'enregistrement commun, comme décrit dansFormat 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— Identificateur de séquence de l'enregistrement de changement de flux.

  • data— Enregistrement de modification sérialisé Gremlin, SPARQL ou OpenCypher. Les formats de sérialisation de chaque enregistrement sont décrits plus en détail dans les sections suivantes.

  • op— Opération qui a créé la modification.

Format de sérialisation des modifications PG_JSON

Note

À partir deversion 1.1.0.0 du moteur, le format de sortie de flux Gremlin (GREMLIN_JSON) 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 ledatad'une réponse de flux de journal, 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 Vertex pour Gremlin ; étiquette de nœud pour OpenCypher.

    • vp— Propriétés des sommets pour Gremlin ; propriétés de nœud pour OpenCypher.

    • e— Étiquette Edge et Edge pour Gremlin ; type de relation et de relation pour OpenCypher.

    • ep— Propriétés Edge pour Gremlin ; propriétés de relation pour OpenCypher.

  • key— Chaîne, obligatoire.

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

  • valuevalueObjet, 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'un nœud (type = « e »), ID du correspondantà partir desommet ou nœud source.

  • to— Chaîne, facultatif.

    S'il s'agit d'un nœud (type = « e »), ID du correspondantpoursommet ou nœud cible.

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

Neptune consigne les modifications apportées aux quadruplts SPARQL dans le graphe à l'aide du Resource Description Framework (RDF).N-QUADSlangue définie dans leQuads N-Quads W3C RDF 1.1Spécification.

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"