

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à.

# Esempio: caricamento di dati in un'istanza database Neptune
<a name="bulk-load-data"></a>

Questo esempio illustra come caricare dati in Amazon Neptune. Se non diversamente specificato, è necessario seguire questi passaggi da un'istanza Amazon Elastic Compute Cloud (Amazon EC2) nello stesso Amazon Virtual Private Cloud (VPC) dell'istanza database Neptune.

## Prerequisiti per l'esempio di caricamento di dati
<a name="bulk-load-tutorial-prereqs"></a>

Prima di iniziare, devi:
+ Istanza database Neptune.

  Per informazioni sull'avvio di un'istanza database Neptune, consulta [Creazione di un cluster Amazon Neptune](get-started-create-cluster.md).
+ Bucket Amazon Simple Storage Service (Amazon S3) in cui inserire i file di dati.

  Puoi utilizzare un bucket esistente. Se non disponi di un bucket S3, consulta [Creare un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingABucket.html) nella *[Guida alle operazioni di base di Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/)*.
+ Dati del grafo da caricare, in uno dei formati supportati dallo strumento di caricamento Neptune:

  Se state usando Gremlin per interrogare il vostro grafico, Neptune può caricare i dati in un formato comma-separated-values (`CSV`), come descritto in. [Formato dati di caricamento Gremlin](bulk-load-tutorial-format-gremlin.md)

  Se si utilizza openCypher per eseguire query sul grafo, Neptune può anche caricare i dati in un formato `CSV` specifico di openCypher, come descritto in [Formato di caricamento dei dati openCypher](bulk-load-tutorial-format-opencypher.md).

  Se si utilizza SPARQL, Neptune può caricare i dati in diversi formati RDF, come descritto in [Formati dei dati di caricamento RDF](bulk-load-tutorial-format-rdf.md).
+ Ruolo IAM che deve essere assunto dall'istanza database Neptune dotato di una policy IAM che consenta l'accesso ai file di dati nel bucket S3. La policy deve concedere le autorizzazioni per la lettura e la presentazione di elenchi.

   Per informazioni su come creare un ruolo che abbia accesso ad Amazon S3 e su come associarlo a un cluster Neptune, vedi [Prerequisiti: ruolo IAM e accesso ad Amazon S3](bulk-load-tutorial-IAM.md).
**Nota**  
L'API Neptune `Load` necessita solo dell'accesso in lettura ai file di dati. Non è necessario che la policy IAM conceda l'accesso in scrittura o l'accesso all'intero bucket.
+ Endpoint VPC Amazon S3. Per ulteriori informazioni, consulta la sezione [Creazione di un endpoint VPC Amazon S3](#bulk-load-prereqs-s3).

### Creazione di un endpoint VPC Amazon S3
<a name="bulk-load-prereqs-s3"></a>

Lo strumento di caricamento Neptune richiede un endpoint VPC per Amazon S3.

**Per configurare l'accesso ad Amazon S3**

1. Accedi Console di gestione AWS e apri la console Amazon VPC all'indirizzo. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)

1. Nel riquadro di navigazione a sinistra, scegli **Endpoints** (Endpoint).

1. Scegliere **Create Endpoint** (Crea endpoint).

1. Scegli il **Service Name (Nome servizio)** `com.amazonaws.region.s3`.
**Nota**  
Se la regione indicata qui non è corretta, verifica che lo sia la regione della console.

1. Scegli il VPC che contiene l'istanza database Neptune.

1. Selezionare la casella di controllo accanto alle tabelle di routing associate alle sottoreti correlate al proprio cluster. Se si dispone di una sola tabella di routing, è necessario selezionare la casella corrispondente.

1. Scegliere **Create Endpoint** (Crea endpoint).

Per ulteriori informazioni sulla creazione dell'endpoint, consulta [Endpoint VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html#create-vpc-endpoint) nella *Guida per l'utente di Amazon VPC*. Per informazioni sulle limitazioni degli endpoint VPC, consulta [Endpoint VPC per Amazon S3](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-s3.html).

**Per caricare i dati in un'istanza database Neptune**

1. Copiare i file di dati in un bucket Amazon S3. Il bucket S3 deve trovarsi nella stessa AWS regione del cluster che carica i dati.

   È possibile utilizzare il seguente AWS CLI comando per copiare i file nel bucket.
**Nota**  
Non è necessario eseguire questo comando dall'istanza Amazon EC2.

   ```
   aws s3 cp data-file-name s3://bucket-name/object-key-name
   ```
**Nota**  
In Amazon S3 un **nome chiave dell'oggetto** è il percorso intero di un file, incluso il nome.  
*Esempio:* nel comando `aws s3 cp datafile.txt s3://examplebucket/mydirectory/datafile.txt`, il nome chiave dell'oggetto è **`mydirectory/datafile.txt`**.

   In alternativa, puoi utilizzare il Console di gestione AWS per caricare file nel bucket S3. Apri la console Amazon S3 all'indirizzo [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)e scegli un bucket. Nell'angolo superiore sinistro, scegli **Upload (Carica)** per caricare i file.

1. Da una finestra a riga di comando, inserisci quanto segue per eseguire lo strumento di caricamento Neptune, utilizzando i valori corretti per l'endpoint, il percorso Amazon S3, il formato e l'ARN del ruolo IAM.

   Il parametro `format` può essere uno dei seguenti valori: `csv` per Gremlin, `opencypher` per openCypher o `ntriples`, `nquads`, `turtle` e `rdfxml` per RDF. Per informazioni sugli altri parametri, vedi [Comando dello strumento di caricamento Neptune](load-api-reference-load.md).

   Per informazioni su come trovare il nome host dell'istanza database Neptune, consulta la sezione [Connessione agli endpoint Amazon Neptune](feature-overview-endpoints.md).

   Il parametro della regione deve corrispondere alla regione del cluster e del bucket S3.

Amazon Neptune è disponibile nelle seguenti regioni: AWS 
   + 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`
   + Canada occidentale (Calgary): `ca-west-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 (Emirati Arabi Uniti): `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 (Melbourne): `ap-southeast-4`
   + Asia Pacifico (Malesia): `ap-southeast-5`
   + Asia Pacifico (Mumbai): `ap-south-1`
   + Asia Pacifico (Hyderabad): `ap-south-2`
   + 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`

   ```
   curl -X POST \
       -H 'Content-Type: application/json' \
       https://your-neptune-endpoint:port/loader -d '
       {
         "source" : "s3://bucket-name/object-key-name",
         "format" : "format",
         "iamRoleArn" : "arn:aws:iam::account-id:role/role-name",
         "region" : "region",
         "failOnError" : "FALSE",
         "parallelism" : "MEDIUM",
         "updateSingleCardinalityProperties" : "FALSE",
         "queueRequest" : "TRUE",
         "dependencies" : ["load_A_id", "load_B_id"]
       }'
   ```

   Per informazioni su come creare un ruolo IAM e associarlo a un cluster Neptune, vedi [Prerequisiti: ruolo IAM e accesso ad Amazon S3](bulk-load-tutorial-IAM.md).
**Nota**  
Consulta [Parametri della richiesta dello dello strumento di caricamento Neptune](load-api-reference-load.md#load-api-reference-load-parameters) per informazioni dettagliate sui parametri della richiesta di caricamento. In breve:  
Il parametro `source` accetta un URI Amazon S3 che punta a un file singolo o a una cartella. Se si specifica una cartella, Neptune carica tutti i file di dati presenti nella cartella.  
La cartella può contenere più file vertex e più file edge.  
l'URI può 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`
Il parametro `format` può essere uno dei seguenti:  
Formato CSV Gremlin (`csv`) per i grafi di proprietà Gremlin
Formato CSV openCypher (`opencypher`) per i grafi di proprietà openCypher
Formato N -Triples (`ntriples`) per RDF/SPARQL
Formato N-Quads (`nquads`) per RDF/SPARQL
Formato RDF/XML (`rdfxml`) per RDF/SPARQL
Formato Turtle (`turtle`) per RDF/SPARQL
Il parametro opzionale `parallelism` consente di limitare il numero di thread utilizzati nel processo di caricamento in blocco. Può essere impostato su `LOW`, `MEDIUM`, `HIGH` o `OVERSUBSCRIBE`.  
Quando `updateSingleCardinalityProperties` è impostato su `"FALSE"`, lo strumento di caricamento restituisce un errore se viene fornito più di un valore in un file di origine caricato per una proprietà vertice a cardinalità singola o edge.  
L'impostazione di `queueRequest` su `"TRUE"` fa sì che la richiesta di caricamento venga inserita in una coda se è già in esecuzione un’attività di caricamento.  
Il parametro `dependencies` rende l'esecuzione della richiesta di caricamento subordinata al completamento di una o più attività di caricamento già inserita nella coda.

1. Lo strumento di caricamento Neptune restituisce un oggetto `id` del processo che consente di controllare lo stato o di annullare il processo di caricamento, ad esempio:

   ```
   {
       "status" : "200 OK",
       "payload" : {
           "loadId" : "ef478d76-d9da-4d94-8ff1-08d9d4863aa5"
       }
   }
   ```

1. Inserisci il comando seguente per ottenere lo stato del caricamento con il valore `loadId` della **Fase 3**:

   ```
   curl -G 'https://your-neptune-endpoint:port/loader/ef478d76-d9da-4d94-8ff1-08d9d4863aa5'
   ```

   Se lo stato del caricamento elenca un errore, è possibile richiedere uno stato più dettagliato e un elenco degli errori. Per maggiori informazioni ed esempi, consulta [API Neptune Loader Get-Status](load-api-reference-status.md).

1. (Facoltativo) Annullare il processo `Load`.

   inserisci il comando seguente per eseguire un `Delete` del processo dello strumento di caricamento con il valore `id` del processo della **Fase 3**:

   ```
   curl -X DELETE 'https://your-neptune-endpoint:port/loader/ef478d76-d9da-4d94-8ff1-08d9d4863aa5'
   ```

   Il comando `DELETE` restituisce il codice HTTP `200 OK` ad annullamento eseguito.

   I dati provenienti dai file dal processo di caricamento terminato non vengono ripristinati. I dati rimangono nell'istanza database Neptune.