Formato di caricamento dei dati openCypher - Amazon Neptune

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Formato di caricamento dei dati openCypher

Per caricare i dati openCypher utilizzando il formato CSV openCypher, è necessario specificare nodi e relazioni in file separati. Lo strumento di caricamento può caricare da più di questi file di nodi e file di relazioni in un unico processo di caricamento.

Per ogni comando di caricamento, il set di file da caricare deve avere lo stesso prefisso di percorso in un bucket Amazon Simple Storage Service. Il prefisso viene specificato nel parametro di origine. I nomi e le estensioni effettivi dei file non sono importanti.

In Amazon Neptune, il formato CSV openCypher è conforme alla specifica CSV RFC 4180. Per ulteriori informazioni, vedi Common Format and MIME Type for CSV Files (https://tools.ietf.org/html/rfc4180) nel sito Web Internet Engineering Task Force (IETF).

Nota

Questi file DEVONO essere codificati in formato UTF-8.

Ogni file ha una riga di intestazione separata da virgole che contiene sia intestazioni di colonna di sistema che intestazioni di colonna di proprietà.

Intestazioni di colonna di sistema nei file di caricamento dati openCypher

Una determinata colonna di sistema può essere presente una sola volta in ogni file. Tutte le etichette delle intestazioni di colonna di sistema fanno distinzione tra maiuscole e minuscole.

Le intestazioni di colonna di sistema obbligatorie e consentite sono diverse per i file di caricamento dei nodi e i file di caricamento delle relazioni openCypher:

Intestazioni di colonna di sistema nei file dei nodi

  • :ID: (obbligatorio) ID per il nodo.

    È possibile aggiungere uno spazio ID opzionale all'intestazione di colonna :ID del nodo in questo modo: :ID(ID Space). Un esempio è :ID(movies).

    Quando carichi le relazioni che collegano i nodi in questo file, usa gli stessi spazi ID nelle colonne :START_ID e/o :END_ID dei file delle relazioni.

    La colonna :ID del nodo può essere facoltativamente archiviata come proprietà nel formato property name:ID. Un esempio è name:ID.

    Gli ID nodo devono essere univoci in tutti i file dei nodi nei caricamenti correnti e precedenti. Se viene utilizzato uno spazio ID, gli ID nodo devono essere univoci per tutti i file dei nodi che utilizzano lo stesso spazio ID nei caricamenti correnti e precedenti.

  • :LABEL: etichetta per il nodo.

    Sono consentiti più valori di etichetta, separati da punto e virgola (;).

Intestazioni di colonna di sistema nei file delle relazioni

  • :ID: ID della relazione. È obbligatorio quando userProvidedEdgeIds è true (impostazione predefinita), ma non è valido quando userProvidedEdgeIds è false.

    Gli ID relazione devono essere univoci in tutti i file delle relazioni nei caricamenti correnti e precedenti.

  • :START_ID: (obbligatorio) ID del nodo da cui inizia questa relazione.

    Facoltativamente, è possibile associare uno spazio ID alla colonna ID iniziale nel formato :START_ID(ID Space). Lo spazio ID assegnato all'ID nodo iniziale deve corrispondere allo spazio ID assegnato al nodo nel relativo file dei nodi.

  • :END_ID: (obbligatorio) ID del nodo in cui termina questa relazione.

    Facoltativamente, è possibile associare uno spazio ID alla colonna ID finale nel formato :END_ID(ID Space). Lo spazio ID assegnato all'ID nodo finale deve corrispondere allo spazio ID assegnato al nodo nel relativo file dei nodi.

  • :TYPE: tipo della relazione. Le relazioni possono avere un solo tipo.

Nota

Per informazioni su come vengono gestiti gli ID nodo o relazione duplicati dal processo di caricamento in blocco, vedi Caricamento di dati openCypher.

Intestazioni di colonna di proprietà nei file di caricamento dati openCypher

È possibile specificare che una colonna contenga i valori di una particolare proprietà utilizzando l'intestazione di una colonna di proprietà nel seguente formato:

propertyname:type

Lo spazio, la virgola, il ritorno a senso unico e i caratteri di nuova riga non sono consentiti nelle intestazioni delle colonne, quindi i nomi delle proprietà non possono includere questi caratteri. Ecco un esempio di intestazione di colonna per una proprietà denominata age di tipo Int:

age:Int

La colonna con age:Int come intestazione di colonna dovrebbe quindi contenere un numero intero o un valore vuoto in ogni riga.

Tipi di dati nei file di caricamento dati di Neptune openCypher

  • Bool o Boolean: campo booleano. I valori consentiti sono true e false.

    Qualsiasi valore diverso da true viene trattato come false.

  • Byte: numero intero compreso tra -128 e 127.

  • Short: numero intero compreso tra -32,768 e 32,767.

  • Int: numero intero compreso tra -2^31 e 2^31 - 1.

  • Long: numero intero compreso tra -2^63 e 2^63 - 1.

  • Float: numero in virgola mobile IEEE 754 a 32 bit. Sono supportate sia la notazione decimale che la notazione scientifica. Infinity, -Infinity e NaN sono tutti riconosciuti, mentre INF non lo è.

    I valori che contengono troppe cifre vengono arrotondati al valore più vicino (un valore intermedio viene arrotondato a 0 per l'ultima cifra rimanente a livello di bit).

  • Double: numero in virgola mobile IEEE 754 a 64 bit. Sono supportate sia la notazione decimale che la notazione scientifica. Infinity, -Infinity e NaN sono tutti riconosciuti, mentre INF non lo è.

    I valori che contengono troppe cifre vengono arrotondati al valore più vicino (un valore intermedio viene arrotondato a 0 per l'ultima cifra rimanente a livello di bit).

  • String: le virgolette sono facoltative. Per i caratteri di virgola, nuova riga e ritorno a capo viene automaticamente inserito un carattere di escape, se sono inclusi in una stringa racchiusa tra virgolette doppie (") come "Hello, World".

    È possibile includere le virgolette in una stringa tra virgolette usandone due di seguito come "Hello ""World""".

  • DateTime: data Java in uno dei seguenti formati ISO-8601:

    • yyyy-MM-dd

    • yyyy-MM-ddTHH:mm

    • yyyy-MM-ddTHH:mm:ss

    • yyyy-MM-ddTHH:mm:ssZ

Tipi di dati con trasmissione automatica nei file di caricamento dati di Neptune openCypher

I tipi di dati con trasmissione automatica vengono forniti per caricare tipi di dati attualmente non supportati in modo nativo da Neptune. I dati in tali colonne vengono archiviati letteralmente come stringhe senza alcuna verifica rispetto ai formati previsti. Sono consentiti i seguenti tipi di dati con trasmissione automatica:

  • Char: campo Char. Archiviato come stringa.

  • Date, LocalDate e LocalDateTime: vedi Neo4j Temporal Instants per una descrizione dei tipi date, localdate e localdatetime. I valori vengono caricati letteralmente come stringhe, senza convalida.

  • Duration: vedi Neo4j Duration format. I valori vengono caricati letteralmente come stringhe, senza convalida.

  • Point: campo Point per l'archiviazione di dati spaziali. Vedi Spatial instants. I valori vengono caricati letteralmente come stringhe, senza convalida.

Esempio del formato di caricamento openCypher

Il seguente diagramma tratto dal TinkerPop Modern Graph mostra un esempio di due nodi e una relazione:

Diagramma di due nodi e una relazione tra di essi.

Di seguito è riportato il grafo nel normale formato di caricamento di Neptune openCypher.

File dei nodi:

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

File di relazione:

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

In alternativa, è possibile utilizzare gli spazi ID e l'ID come proprietà, come segue:

File del primo nodo:

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

File del secondo nodo:

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

File di relazione:

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