Format de chargement des données openCypher - 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.

Format de chargement des données openCypher

Pour charger des données openCypher à l'aide du format CSV openCypher, vous devez spécifier les nœuds et les relations dans des fichiers séparés. Le chargeur peut charger les données à partir de plusieurs de ces fichiers de nœuds et fichiers de relations en une seule tâche de chargement.

Pour chaque commande de chargement, l'ensemble de fichiers à charger doit avoir le même préfixe de chemin dans un compartiment Amazon Simple Storage Service. Vous spécifiez ce préfixe dans le paramètre source. Les noms et les extensions de fichier ne sont pas importants.

Dans Amazon Neptune, le format CSV openCypher est conforme à la spécification CSV RFC 4180. Pour plus d'informations, consultez Common Format and MIME Type for CSV Files (https://tools.ietf.org/html/rfc4180) sur le site web Internet Engineering Task Force (IETF).

Note

Ces fichiers DOIVENT être encodés au format UTF-8.

Chaque fichier possède une ligne d'en-têtes séparés par des virgules, qui contient à la fois les en-têtes de colonne système et les en-têtes de colonne des propriétés.

En-têtes de colonne système dans les fichiers de chargement de données openCypher

Une colonne système spécifique ne peut apparaître qu'une seule fois dans chaque fichier. Toutes les étiquettes d'en-tête de colonne système sont sensibles à la casse.

Les en-têtes de colonne système obligatoires et autorisés sont différents pour les fichiers de chargement de nœuds et les fichiers de chargement de relations openCypher :

En-têtes de colonnes système dans les fichiers de nœuds

  • :ID : (obligatoire) ID du nœud.

    Un espace d'ID facultatif peut être ajouté à l'en-tête de colonne du nœud :ID comme ceci : :ID(ID Space). Par exemple : :ID(movies).

    Lorsque vous chargez des relations qui connectent les nœuds de ce fichier, utilisez les mêmes espaces d'ID dans les colonnes :START_ID et/ou :END_ID des fichiers de relations.

    La colonne du nœud :ID peut éventuellement être stockée en tant que propriété sous la forme property name:ID. Par exemple : name:ID.

    Les ID de nœud doivent être uniques pour tous les fichiers de nœuds des chargements actuels et précédents. Si un espace d'ID est utilisé, les ID de nœud doivent être uniques dans tous les fichiers de nœuds qui utilisent le même espace d'ID lors des chargements actuels et précédents.

  • :LABEL : étiquette du nœud.

    Plusieurs valeurs d'étiquette sont autorisées, séparées par des points-virgules (;).

En-têtes de colonnes système dans les fichiers de relations

  • :ID : ID de la relation. Obligatoire lorsque userProvidedEdgeIds est défini sur true (valeur par défaut), mais non valide quand userProvidedEdgeIds indique false.

    Les ID de relation doivent être uniques pour tous les fichiers de relations des chargements actuels et précédents.

  • :START_ID : (obligatoire) ID du nœud à partir duquel cette relation commence.

    Un espace d'ID peut être associé à la colonne d'ID de départ sous la forme :START_ID(ID Space). L'espace d'ID attribué à l'ID du nœud de départ doit correspondre à l'espace d'ID attribué au nœud dans son fichier de nœud.

  • :END_ID : (obligatoire) ID du nœud où cette relation se termine.

    Un espace d'ID peut être associé à la colonne d'ID de fin sous la forme :END_ID(ID Space). L'espace d'ID attribué à l'ID du nœud de fin doit correspondre à l'espace d'ID attribué au nœud dans son fichier de nœud.

  • :TYPE : type de relation. Les relations ne peuvent avoir qu'un seul type.

Note

Consultez Chargement de données openCypher pour plus d'informations sur la façon dont les ID de nœud ou de relation dupliqués sont gérés par le processus de chargement en bloc.

En-têtes de colonnes de propriétés dans les fichiers de chargement de données openCypher

Vous pouvez spécifier qu'une colonne contient les valeurs d'une propriété particulière à l'aide d'un en-tête de colonne de propriété sous la forme suivante :

propertyname:type

Les espaces, les virgules, le retour en chariot et les caractères de nouvelle ligne ne sont pas autorisés dans les en-têtes de colonne. Les noms de propriétés ne peuvent donc pas inclure ces caractères. Voici un exemple d'en-tête de colonne pour une propriété nommée age de type Int :

age:Int

La colonne avec age:Int comme en-tête de colonne devrait alors contenir un entier ou une valeur vide sur chaque ligne.

Types de données dans les fichiers de chargement de données Neptune openCypher

  • Bool ou Boolean : champ booléen. Les valeurs autorisées sont true et false.

    Toute valeur autre que true qui est traitée comme false.

  • Byte : nombre entier compris entre -128 et 127.

  • Short : nombre entier compris entre -32,768 et 32,767.

  • Int : nombre entier compris entre -2^31 et 2^31 - 1.

  • Long : nombre entier compris entre -2^63 et 2^63 - 1.

  • Float : nombre à virgule flottante IEEE 754 32 bits. La notation décimale et la notation scientifique sont toutes deux prises en charge. Infinity, -Infinity, et NaN sont tous reconnus, mais pas INF.

    Les valeurs contenant trop de chiffres sont arrondies à la valeur la plus proche (une valeur intermédiaire est arrondie à 0 pour le dernier chiffre restant au niveau du bit).

  • Double : nombre à virgule flottante IEEE 754 64 bits. La notation décimale et la notation scientifique sont toutes deux prises en charge. Infinity, -Infinity, et NaN sont tous reconnus, mais pas INF.

    Les valeurs contenant trop de chiffres sont arrondies à la valeur la plus proche (une valeur intermédiaire est arrondie à 0 pour le dernier chiffre restant au niveau du bit).

  • String : les guillemets sont facultatifs. Les virgules et les caractères de saut de ligne et de retour à la ligne font automatiquement l'objet d'un échappement s'ils sont inclus dans une chaîne entourée de guillemets doubles (") comme "Hello, World".

    Vous pouvez inclure des guillemets dans une chaîne qui contient déjà des guillemets en utilisant deux guillemets d'affilée comme "Hello ""World""".

  • DateTime : date Java dans l'un des formats ISO 8601 suivants :

    • yyyy-MM-dd

    • yyyy-MM-ddTHH:mm

    • yyyy-MM-ddTHH:mm:ss

    • yyyy-MM-ddTHH:mm:ssZ

Types de données diffusées automatiquement dans les fichiers de chargement de données Neptune openCypher

Les types de données diffusées automatiquement sont fournis pour charger des types de données qui ne sont pas actuellement pris en charge nativement par Neptune. Les données de ces colonnes sont stockées sous forme de chaînes, mot pour mot, sans vérification par rapport au format prévu. Voici les types de données diffusées automatiquement qui sont autorisés :

  • Char : champ Char. Stocké sous forme de chaîne.

  • Date, LocalDate, et LocalDateTime : consultez Instants temporels Neo4j pour obtenir une description des types date, localdate et localdatetime. Les valeurs sont chargées telles quelles sous forme de chaînes, sans validation.

  • Duration : consultez le format de durée Neo4j. Les valeurs sont chargées telles quelles sous forme de chaînes, sans validation.

  • Point : champ de point destiné au stockage de données spatiales. Consultez Instants spatiaux. Les valeurs sont chargées telles quelles sous forme de chaînes, sans validation.

Exemple de format de chargement openCypher

Le schéma suivant, tiré du TinkerPop Modern Graph, montre un exemple de deux nœuds et d'une relation :

Schéma de deux nœuds et d'une relation entre eux.

Voici le graphe au format de chargement Neptune openCypher normal.

Fichier de nœud :

:ID,name:String,age:Int,lang:String,:LABEL v1,"marko",29,,person v2,"lop",,"java",software

Fichier de relation :

:ID,:START_ID,:END_ID,:TYPE,weight:Double e1,v1,v2,created,0.4

Vous pouvez également utiliser les espaces d'ID et l'ID en tant que propriétés, comme suit :

Fichier du premier nœud :

name:ID(person),age:Int,lang:String,:LABEL "marko",29,,person

Fichier du deuxième nœud :

name:ID(software),age:Int,lang:String,:LABEL "lop",,"java",software

Fichier de relation :

:ID,:START_ID,:END_ID,:TYPE,weight:Double e1,"marko","lop",created,0.4