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à.
Comando dello strumento di caricamento Neptune
Carica i dati da un bucket Amazon S3 in un'istanza database Neptune.
Per caricare i dati, devi inviare una HTTP POST
richiesta all'endpoint. https://
I parametri per la your-neptune-endpoint
:port
/loaderloader
richiesta possono essere inviati nel POST
corpo o come parametri URL -encoded.
Importante
Il MIME tipo deve essere. application/json
Il bucket S3 deve trovarsi nella stessa AWS regione del cluster.
Nota
È possibile caricare i dati crittografati da Amazon S3 se sono stati crittografati utilizzando la modalità SSE-S3
di Amazon S3. In questo caso, Neptune è in grado di impersonare le credenziali dell'utente e di effettuare chiamate a s3:getObject
per conto dell'utente.
Puoi anche caricare dati crittografati da Amazon S3 che sono stati crittografati utilizzando questa SSE-KMS
modalità, purché il tuo IAM ruolo includa le autorizzazioni necessarie per l'accesso. AWS KMS Senza AWS KMS le autorizzazioni appropriate, l'operazione di caricamento in blocco non riesce e restituisce una risposta. LOAD_FAILED
Neptune non supporta attualmente il caricamento di dati Amazon S3 crittografati utilizzando la modalità SSE-C
.
Non è necessario attendere il completamento di un processo di caricamento prima di iniziarne un altro. Neptune può accodare fino a 64 richieste di processo alla volta, a condizione che i relativi parametri queueRequest
siano tutti impostati su "TRUE"
. L'ordine di coda dei lavori sarà first-in-first-out (). FIFO Se invece non si desidera che un processo di caricamento sia messo in coda, è possibile impostare il relativo parametro queueRequest
su "FALSE"
(valore predefinito), in modo che il caricamento abbia esito negativo se ne è già in corso un altro.
È possibile utilizzare il parametro dependencies
per accodare un'attività che deve essere eseguita solo dopo che le attività precedenti specificate nella coda sono state completate correttamente. Se si esegue questa operazione e uno qualsiasi di queste attività specificate non riesce, l'attività non verrà eseguita e il relativo stato verrà impostato su LOAD_FAILED_BECAUSE_DEPENDENCY_NOT_SATISFIED
.
Sintassi della richiesta dello strumento di caricamento Neptune
{ "source" : "
string
", "format" : "string
", "iamRoleArn" : "string
", "mode": "NEW|RESUME|AUTO
", "region" : "us-east-1
", "failOnError" : "string
", "parallelism" : "string
", "parserConfiguration" : { "baseUri" : "http://base-uri-string
", "namedGraphUri" : "http://named-graph-string
" }, "updateSingleCardinalityProperties" : "string
", "queueRequest" : "TRUE", "dependencies" : ["load_A_id
", "load_B_id
"] }
Parametri della richiesta dello dello strumento di caricamento Neptune
-
source
— Un Amazon S3URI.Il
SOURCE
parametro accetta un Amazon S3 URI che identifica un singolo file, più file, una cartella o più cartelle. Neptune carica ogni file di dati in qualsiasi cartella specificata.URIPuò essere in uno dei seguenti formati.
s3://
bucket_name
/object-key-name
https://s3.amazonaws.com/
bucket_name
/object-key-name
https://s3.us-east-1.amazonaws.com/
bucket_name
/object-key-name
L'
object-key-name
elemento di URI è equivalente al parametro prefix in una chiamata Amazon ListObjectsAPIS3. Identifica tutti gli oggetti nel bucket Amazon S3 specificato i cui nomi iniziano con il prefisso specificato. Può trattarsi di un singolo file o una singola cartella oppure di più file e/o cartelle.La cartella o le cartelle specificate possono contenere più file di vertici e più file di archi.
Ad esempio, se avevi la seguente struttura di cartelle e i seguenti file in un bucket Amazon S3 denominato:
bucket-name
s3://bucket-name/a/bc s3://bucket-name/ab/c s3://bucket-name/ade s3://bucket-name/bcd
Se il parametro source è specificato come
s3://bucket-name/a
, verranno caricati i primi tre file.s3://bucket-name/a/bc s3://bucket-name/ab/c s3://bucket-name/ade
-
format
: formato dei dati. Per ulteriori informazioni sui formati di dati per il comando NeptuneLoader
, vedi Utilizzo del bulk loader Amazon Neptune per importare dati.Valori consentiti
csv
per il formato CSVdati Gremlin.opencypher
per il formato dei openCypher CSVdati.ntriples
per il formato RDFdati N-Triples. nquads
per il formato dati N-Quads RDF. rdfxml
per il formato RDF\ XML RDF data. turtle
per il formato RDF dati Turtle.
-
iamRoleArn
— Amazon Resource Name (ARN) per un IAM ruolo che deve essere assunto dall'istanza DB Neptune per l'accesso al bucket S3. Per informazioni su come creare un ruolo che abbia accesso ad Amazon S3 e su come associarlo a un cluster Neptune, vedi Prerequisiti: IAM ruolo e accesso ad Amazon S3.A partire dalla versione 1.2.1.0.R3 del motore, puoi anche concatenare più ruoli IAM se l'istanza DB Neptune e il bucket Amazon S3 si trovano in account diversi. AWS In questo caso,
iamRoleArn
contiene un elenco di ruoli separati da virgole, come descritto in. ARNs Concatenamento IAM dei ruoli in Amazon Neptune Per esempio:curl -X POST https://localhost:8182/loader \ -H 'Content-Type: application/json' \ -d '{ "source" : "s3://
(the target bucket name)
/(the target date file name)
", "iamRoleArn" : "arn:aws:iam::(Account A ID)
:role/(RoleA)
,arn:aws:iam::(Account B ID)
:role/(RoleB)
,arn:aws:iam::(Account C ID)
:role/(RoleC)
", "format" : "csv", "region" : "us-east-1" }' -
region
— Ilregion
parametro deve corrispondere alla AWS regione del cluster e al bucket S3.Amazon Neptune è disponibile nelle seguenti regioni :
Stati Uniti orientali (Virginia settentrionale):
us-east-1
Stati Uniti orientali (Ohio):
us-east-2
Stati Uniti occidentali (California settentrionale):
us-west-1
Stati Uniti occidentali (Oregon):
us-west-2
Canada (Centrale):
ca-central-1
Sud America (San Paolo):
sa-east-1
Europa (Stoccolma):
eu-north-1
Europa (Spagna):
eu-south-2
Europa (Irlanda):
eu-west-1
Europa (Londra):
eu-west-2
Europa (Parigi):
eu-west-3
Europa (Francoforte):
eu-central-1
Medio Oriente (Bahrein):
me-south-1
Medio Oriente (UAE):
me-central-1
Israele (Tel Aviv):
il-central-1
Africa (Città del Capo):
af-south-1
Asia Pacifico (Hong Kong):
ap-east-1
Asia Pacifico (Tokyo):
ap-northeast-1
Asia Pacifico (Seoul):
ap-northeast-2
Asia Pacifico (Osaka):
ap-northeast-3
Asia Pacifico (Singapore):
ap-southeast-1
Asia Pacifico (Sydney):
ap-southeast-2
Asia Pacifico (Giacarta):
ap-southeast-3
Asia Pacifico (Mumbai):
ap-south-1
Cina (Pechino):
cn-north-1
Cina (Ningxia):
cn-northwest-1
AWS GovCloud (Stati Uniti occidentali):
us-gov-west-1
AWS GovCloud (Stati Uniti orientali):
us-gov-east-1
-
mode
: modalità del processo di caricamento.Valori consentiti:
RESUME
,NEW
,AUTO
.Valore predefinito:
AUTO
-
RESUME
— In RESUME modalità, il loader cerca un carico precedente da questa fonte e, se ne trova uno, riprende il processo di caricamento. Se non viene trovata alcuna attività di caricamento precedente, il loader si arresta.Il loader evita di ricaricare i file caricati correttamente in un'attività precedente. Tenta di elaborare solo i file non caricati. Se sono stati eliminati i dati caricati in precedenza dal cluster Neptune, tali dati non vengono ricaricati in questa modalità. Se un processo di caricamento precedente ha caricato correttamente tutti i file dalla stessa origine, nulla viene ricaricato e lo strumento di caricamento restituisce un risultato positivo.
NEW
— In NEW modalità, crea una nuova richiesta di carico indipendentemente dai carichi precedenti. Questa modalità può essere utilizzata per ricaricare tutti i dati provenienti da un'origine dopo che sono stati eliminati dati caricati precedentemente dal cluster Neptune o per caricare nuovi dati disponibili nella stessa origine.-
AUTO
— In AUTO modalità, il loader cerca un processo di caricamento precedente dalla stessa fonte e, se ne trova uno, riprende quel lavoro, proprio come in modalità.RESUME
Se il loader non trova un'attività di caricamento precedente dalla stessa origine, carica tutti i dati dall'origine, proprio come in modalità
NEW
.
-
-
failOnError
: un flag per attivare un arresto completo in caso di errore.Valori consentiti:
"TRUE"
,"FALSE"
.Valore predefinito:
"TRUE"
.Quando questo parametro è impostato su
"FALSE"
, il loader tenta di caricare tutti i dati nella posizione specificata, saltando eventuali voci con errori.Quando questo parametro è impostato su
"TRUE"
, il loader si arresta non appena rileva un errore. I dati caricati fino a quel punto persistono. -
parallelism
: si tratta di un parametro facoltativo che può essere impostato per ridurre il numero di thread utilizzati dal processo di caricamento in blocco.Valori consentiti:
LOW
— Il numero di thread utilizzati è il numero di thread disponibili vCPUs diviso per 8.MEDIUM
— Il numero di thread utilizzati è il numero di thread disponibili vCPUs diviso per 2.HIGH
— Il numero di thread utilizzati è uguale al numero di thread disponibili. vCPUs-
OVERSUBSCRIBE
— Il numero di thread utilizzati è il numero di thread disponibili vCPUs moltiplicato per 2. Se viene utilizzato questo valore, il bulk loader occupa tutte le risorse disponibili.Ciò non significa, tuttavia, che l'
OVERSUBSCRIBE
impostazione comporti un utilizzo del 100%CPU. Poiché l'operazione di carico è limitata all'I/O, l'CPUutilizzo massimo previsto è compreso tra il 60% e il 70%.
Valore predefinito:
HIGH
L'
parallelism
impostazione a volte può causare un deadlock tra i thread durante il caricamento dei dati. openCypher Quando ciò accade, Neptune restituisce l'erroreLOAD_DATA_DEADLOCK
. Di solito è possibile risolvere il problema impostandoparallelism
su un valore inferiore e riprovando il comando di caricamento. -
parserConfiguration
: un oggetto opzionale con valori di configurazione del parser aggiuntivi. Ciascuno dei parametri figlio è anche facoltativo:Nome Valore di esempio Descrizione namedGraphUri
http://aws.amazon.com/neptune/vocab/v01/DefaultNamedGraph
Il grafico predefinito per tutti i RDF formati quando non viene specificato alcun grafico (per i formati non quad e le NQUAD voci senza grafico). Il valore predefinito è http://aws.amazon.com/neptune/vocab/v01/DefaultNamedGraph
.baseUri
http://aws.amazon.com/neptune/default
La base URI per i formatiRDF/XMLe Turtle. Il valore predefinito è http://aws.amazon.com/neptune/default
.allowEmptyStrings
true
Gli utenti di Gremlin devono essere in grado di passare valori di stringa vuoti («») come proprietà dei nodi e degli spigoli durante il caricamento dei dati. CSV Se
allowEmptyStrings
è impostato sufalse
(valore predefinito), le stringhe vuote vengono trattate come valori null e non vengono caricate.Se
allowEmptyStrings
è impostato sutrue
, lo strumento di caricamento considera le stringhe vuote come valori di proprietà validi e le carica di conseguenza.Per ulteriori informazioni, consulta SPARQLGrafico predefinito e grafici con nome.
-
updateSingleCardinalityProperties
: è un parametro facoltativo che controlla il modo in cui lo strumento di caricamento in blocco tratta un nuovo valore per le proprietà di vertici o archi a cardinalità singola. Questo non è supportato per il caricamento openCypher dei dati (vediCaricamento dei dati openCypher ).Valori consentiti:
"TRUE"
,"FALSE"
.Valore predefinito:
"FALSE"
.Come impostazione predefinita o quando
updateSingleCardinalityProperties
è impostato esplicitamente su"FALSE"
, il loader considera un nuovo valore come un errore, perché viola la cardinalità singola.Quando
updateSingleCardinalityProperties
è impostato invece su"TRUE"
, il bulk loader sostituisce il valore esistente con quello nuovo. Se valori di proprietà multipli edge o vertice a cardinalità singola vengono forniti nei file di origine caricati, il valore finale alla fine del caricamento in blocco potrebbe essere uno qualsiasi di questi nuovi valori. Il loader garantisce solo che il valore esistente è stato sostituito da uno di quelli nuovi. -
queueRequest
: si tratta di un parametro flag opzionale che indica se la richiesta di caricamento può essere accodata o meno.Non è necessario attendere il completamento di un processo di caricamento prima di emettere quello successivo, perché Neptune può accodare fino a 64 processi alla volta, a condizione che i relativi parametri
queueRequest
siano tutti impostati su"TRUE"
. L'ordine di coda dei lavori sarà first-in-first-out (FIFO).Se il parametro
queueRequest
viene omesso o impostato su"FALSE"
, la richiesta di caricamento avrà esito negativo se un'altra attività di caricamento è già in esecuzione.Valori consentiti:
"TRUE"
,"FALSE"
.Valore predefinito:
"FALSE"
. -
dependencies
: si tratta di un parametro facoltativo che può rendere subordinata una richiesta di caricamento in coda al completamento di uno o più processi precedenti nella coda.Neptune può accodare fino a 64 richieste di caricamento alla volta, se i relativi parametri
queueRequest
sono impostati su"TRUE"
. Il parametrodependencies
consente di rendere l'esecuzione di tale richiesta in coda dipendente dal completamento corretto di una o più richieste precedenti specificate nella coda.Ad esempio, se
Job-A
eJob-B
del caricamento sono indipendenti l'una dall'altra, maJob-C
richiede cheJob-A
eJob-B
siano completate prima del suo avvio, procedere come segue:Inviare
load-job-A
eload-job-B
una dopo l'altra in qualsiasi ordine e salvare i loro id di caricamento.Inviare
load-job-C
con gli id di caricamento delle due attività nel campodependencies
:
"dependencies" : ["
job_A_load_id
", "job_B_load_id
"]A causa del parametro
dependencies
, il bulk loader non avviaJob-C
fino a quandoJob-A
eJob-B
non sono state completate correttamente. Se una di queste attività non riesce, l'attività non verrà eseguita e il suo stato sarà impostato suLOAD_FAILED_BECAUSE_DEPENDENCY_NOT_SATISFIED
.È possibile impostare più livelli di dipendenza in questo modo, in modo che l'errore di un'attività causi l'annullamento di tutte le richieste direttamente o indirettamente dipendenti da essa.
-
userProvidedEdgeIds
— Questo parametro è richiesto solo quando si caricano openCypher dati che contengono una relazioneIDs. Deve essere incluso e impostato suTrue
quando la openCypher relazione IDs viene fornita esplicitamente nei dati di caricamento (scelta consigliata).Se
userProvidedEdgeIds
è assente o è impostato suTrue
, in ogni file delle relazioni all'interno del caricamento deve esistere una colonna:ID
.Se
userProvidedEdgeIds
è presente ed è impostato suFalse
, i file delle relazioni all'interno del caricamento non devono contenere una colonna:ID
. Lo strumento di caricamento Neptune genera automaticamente un ID per ogni relazione.È utile fornire una relazione in modo IDs esplicito in modo che il caricatore possa riprendere il caricamento dopo la correzione dell'errore nei CSV dati, senza dover ricaricare le relazioni già caricate. Se la relazione IDs non è stata assegnata in modo esplicito, il loader non può riprendere un caricamento non riuscito se è stato necessario correggere un file di relazione e deve invece ricaricare tutte le relazioni.
-
accessKey
— [deprecato] Un ID della chiave di accesso di un IAM ruolo con accesso al bucket S3 e ai file di dati.Il parametro
iamRoleArn
è invece consigliato. Per informazioni su come creare un ruolo che abbia accesso ad Amazon S3 e su come associarlo a un cluster Neptune, vedi Prerequisiti: IAM ruolo e accesso ad Amazon S3.Per ulteriori informazioni, consulta l'argomento relativo alle chiavi di accesso (ID chiave di accesso e chiave di accesso segreta).
-
secretKey
: [obsoleto] il parametroiamRoleArn
è invece consigliato. Per informazioni su come creare un ruolo che abbia accesso ad Amazon S3 e su come associarlo a un cluster Neptune, vedi Prerequisiti: IAM ruolo e accesso ad Amazon S3.Per ulteriori informazioni, consulta l'argomento relativo alle chiavi di accesso (ID chiave di accesso e chiave di accesso segreta).
Considerazioni speciali per il caricamento dei dati openCypher
Quando si caricano openCypher dati in CSV formato, il parametro di formato deve essere impostato su
opencypher
.Il
updateSingleCardinalityProperties
parametro non è supportato per i openCypher carichi perché tutte le openCypher proprietà hanno un'unica cardinalità. Il formato di openCypher caricamento non supporta gli array e se un valore ID appare più di una volta, viene considerato un duplicato o un errore di inserimento (vedi sotto).-
Il loader Neptune gestisce i duplicati che incontra nei dati nel modo seguente: openCypher
-
Se lo strumento di caricamento incontra più righe con lo stesso ID nodo, queste vengono unite utilizzando la seguente regola:
Tutte le etichette nelle righe vengono aggiunte al nodo.
Per ogni proprietà, viene caricato solo uno dei valori della proprietà. La selezione di quello da caricare non è deterministica.
Se lo strumento di caricamento incontra più righe con lo stesso ID relazione, ne viene caricata solo una. La selezione di quella da caricare non è deterministica.
Lo strumento di caricamento non aggiorna mai i valori delle proprietà di un nodo o di una relazione esistente nel database se incontra dati di caricamento con l'ID del nodo o della relazione esistente. Tuttavia, carica le etichette e le proprietà dei nodi che non sono presenti nel nodo o nella relazione esistente.
-
-
Sebbene non sia necessario eseguire assegnazioni IDs alle relazioni, di solito è una buona idea (vedi il parametro sopra riportato).
userProvidedEdgeIds
Senza una relazione esplicitaIDs, il caricatore deve ricaricare tutte le relazioni in caso di errore in un file di relazione, anziché riprendere il caricamento dal punto in cui non era riuscito.Inoltre, se i dati di caricamento non contengono una relazione esplicitaIDs, il loader non ha modo di rilevare relazioni duplicate.
Ecco un esempio di comando load: openCypher
curl -X POST https://
your-neptune-endpoint
:port
/loader \ -H 'Content-Type: application/json' \ -d ' { "source" : "s3://bucket-name
/object-key-name
", "format" : "opencypher", "userProvidedEdgeIds": "TRUE", "iamRoleArn" : "arn:aws:iam::account-id
:role/role-name
", "region" : "region
", "failOnError" : "FALSE", "parallelism" : "MEDIUM", }'
La risposta strumento di caricamento è la stessa del normale. Per esempio:
{ "status" : "200 OK", "payload" : { "loadId" : "
guid_as_string
" } }
Sintassi della risposta dello strumento di caricamento Neptune
{ "status" : "200 OK", "payload" : { "loadId" : "
guid_as_string
" } }
200 OK
Il processo di caricamento avviato correttamente restituisce il codice 200
.