Exemple : Chargement de données dans une instance de base de données Neptune - 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.

Exemple : Chargement de données dans une instance de base de données Neptune

Cet exemple montre comment charger des données dans Amazon Neptune. Sauf indication contraire, vous devez suivre ces étapes à partir d'une instance Amazon Elastic Compute Cloud (Amazon EC2) située dans le même Amazon Virtual Private Cloud (VPC) que votre instance de base de données Neptune.

Prérequis pour l'exemple de chargement de données

Avant de commencer, les prérequis suivants doivent être remplis :

  • Une instance de base de données Neptune.

    Pour plus d'informations sur le lancement d'une instance de base de données Neptune, consultezCréation d'un nouveau cluster de bases de données Neptune.

  • Un compartiment Amazon Simple Storage Service (Amazon S3) dans lequel placer les fichiers de données.

    Vous pouvez utiliser un compartiment existant. Si vous n'avez pas de compartiment S3, consultez la rubriqueCréation d'un compartimentdans leManuel de mise en route Amazon S3.

  • Données graphiques à charger, dans l'un des formats supportés par le chargeur Neptune :

    Si vous utilisez Gremlin pour interroger votre graphique, Neptune peut charger des données dans un comma-separated-values (CSV), tel que décrit dansFormat de données Gremlin.

    Si vous utilisez OpenCypher pour interroger votre graphe, Neptune peut également charger des données dans un fichier spécifique à OpenCypherCSVformat, tel que décrit dansFormat de chargement pour les données OpenCypher.

    Si vous utilisez SPARQL, Neptune peut charger des données dans un certain nombre de formats RDF, comme décrit dansFormat de données de chargement RDF.

  • Un rôle IAM que l'instance de base de données Neptune doit assumer et qui dispose d'une politique IAM qui autorise l'accès aux fichiers de données du compartiment S3. La stratégie doit accorder des autorisations de lecture et de type Liste.

    Pour plus d'informations sur la création d'un rôle ayant accès à Amazon S3, puis sur son association à un cluster Neptune, voirPrérequis : Rôle IAM et accès à Amazon S3.

    Note

    Le NeptuneLoadL'API a besoin d'un accès en lecture aux fichiers de données uniquement. La politique IAM n'a pas besoin d'autoriser l'accès en écriture ou l'accès à l'ensemble du bucket.

  • Point de terminaison d'un VPC Amazon S3. Pour plus d'informations, consultez la section Création d'un point de terminaison VPC Amazon S3.

Création d'un point de terminaison VPC Amazon S3

Le chargeur Neptune nécessite un point de terminaison de VPC pour Amazon S3.

Pour configurer l'accès à Amazon S3

  1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon VPC à l'adresse https://console.aws.amazon.com/vpc/.

  2. Dans le panneau de navigation de gauche, sélectionnez Points de terminaison.

  3. Choisissez Create Endpoint (Créer un point de terminaison).

  4. Pour Service Name (Nom du service), choisissez com.amazonaws.region.s3.

    Note

    Si la région dans ce champ est incorrecte, assurez-vous que la région de la console est correcte.

  5. Choisissez le VPC qui contient votre instance de base de données Neptune.

  6. Cochez la case en regard des tables de routage associées aux sous-réseaux liés à votre cluster. Si vous n'avez qu'une seule table de routage, vous devez cocher cette case.

  7. Choisissez Create Endpoint (Créer un point de terminaison).

Pour plus d'informations sur la création du point de terminaison,Points de terminaison des VPCdans leAmazon VPC User Guide. Pour plus d'informations sur les limites des points de terminaison VPC,Points de terminaison de VPC pour Amazon S3.

Pour charger des données dans une instance de base de données Neptune

  1. Copiez les fichiers de Amazon S3 un compartiment Le compartiment S3 doit être situé dans le même compartimentAWSRégion en tant que cluster qui charge les données.

    Vous pouvez utiliser la commande AWS CLI suivante pour copier les fichiers dans le compartiment.

    Note

    Cette commande n'a pas besoin d'être exécutée à partir de l'instance Amazon EC2.

    aws s3 cp data-file-name s3://bucket-name/object-key-name
    Note

    Dans Amazon S3,Nom de clé d'objetest le chemin complet d'un fichier, y compris son nom.

    Exemple : Dans la commandeaws s3 cp datafile.txt s3://examplebucket/mydirectory/datafile.txt, le nom de clé de l'objet estmydirectory/datafile.txt.

    Vous pouvez également utiliser AWS Management Console pour charger les fichiers dans le compartiment S3. Ouvrez la console Amazon S3 àhttps://console.aws.amazon.com/s3/, et choisissez un compartiment. Dans le coin supérieur gauche, choisissez Upload (Charger) pour charger les fichiers.

  2. À partir d'une fenêtre de ligne de commande, entrez ce qui suit pour exécuter le chargeur Neptune. Remplacez les valeurs du point de terminaison, du chemin Amazon S3, du format et des clés d'accès.

    Dans laformatle paramètre peut être l'une des valeurs suivantes :csvpour Gremlin,openCypherpour OpenCypher, ountriples,nquads,turtle, etrdfxmlpour RDF. Pour plus d'informations sur les autres paramètres, consultez Commande Neptune Loader.

    Pour plus d'informations sur la recherche du nom d'hôte de votre instance de base de données Neptune, consultez leConnexion aux points de terminaison Amazon NeptuneSection Disses.

    Le paramètre de région doit correspondre à la région du cluster et au compartiment S3.

    Amazon NeptuneAWSRégions :

    • USA Est (Virginie du Nord) :us-east-1

    • USA Est (Ohio) :us-east-2

    • USA Ouest (Californie du Nord) :us-west-1

    • USA Ouest (Oregon) :us-west-2

    • Canada (Central) :ca-central-1

    • Amérique du Sud (São Paulo) :sa-east-1

    • Europe (Stockholm) :eu-north-1

    • Europe (Irlande) :eu-west-1

    • Europe (Londres) :eu-west-2

    • Europe (Paris) :eu-west-3

    • Europe (Francfort) :eu-central-1

    • Moyen-Orient (Bahreïn)me-south-1

    • Afrique (Le Cap) :af-south-1

    • Asie-Pacifique (Hong Kong) :ap-east-1

    • Asie-Pacifique (Tokyo) :ap-northeast-1

    • Asie-Pacifique (Séoul) :ap-northeast-2

    • Asie-Pacifique (Singapour) :ap-southeast-1

    • Asie-Pacifique (Sydney)ap-southeast-2

    • Asie-Pacifique (Mumbai)ap-south-1

    • Chine (Pékin) :cn-north-1

    • Chine (Ningxia) :cn-northwest-1

    • AWS GovCloud (USA Ouest) :us-gov-west-1

    • AWS GovCloud (US-East) :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"] }'

    Pour plus d'informations sur la création et l'association d'un rôle IAM à un cluster Neptune, consultezPrérequis : Rôle IAM et accès à Amazon S3.

    Note

    Pour de plus amples informations sur les paramètres de demande de chargement, veuillez consulter Paramètres de demande Neptune Loader. En bref :

    Dans lasourceLe paramètre accepte un URI Amazon S3 qui pointe vers un seul fichier ou un dossier. Si vous spécifiez un dossier, Neptune charge tous les fichiers de données qu'il contient.

    Le dossier peut contenir plusieurs fichiers de sommet et plusieurs fichiers d'arc.

    L'URI peut être à l'un des formats suivants.

    • 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

    Ce paramètre format peut être l'un des suivants :

    • Format CSV Gremlin (csv) pour les graphes de propriétés de Gremlin

    • Format OpenChiffre CSV (openCypher) pour les graphes de propriétés d'OpenCypher

    • Format N -Triples (ntriples) pour RDF/SPARQL

    • Format N-Quads (nquads) pour RDF/SPARQL

    • Format RDF/XML (rdfxml) pour RDF/SPARQL

    • Format Turtle (turtle) pour RDF/SPARQL

    Le paramètre facultatif parallelism vous permet de limiter le nombre de threads utilisés dans le processus de chargement en bloc. Il peut être défini sur LOW, MEDIUM, HIGH ou OVERSUBSCRIBE.

    Lorsque la valeur updateSingleCardinalityProperties est définie sur "FALSE", le chargeur renvoie une erreur si plusieurs valeurs sont fournies dans un fichier source en cours de chargement pour une propriété de sommet d'une arête ou d'une seule cardinalité.

    Si queueRequest est défini sur "TRUE", la demande de chargement est placée dans une file d'attente lorsqu'une tâche de chargement est déjà en cours d'exécution.

    Avec le paramètre dependencies, l'exécution de la demande de chargement dépend de la réussite d'une ou de plusieurs tâches de chargement qui ont déjà été placées dans la file d'attente.

  3. Le chargeur Neptune renvoie une tâcheidqui vous permet de vérifier l'état ou d'annuler le processus de chargement ; par exemple :

    { "status" : "200 OK", "payload" : { "loadId" : "ef478d76-d9da-4d94-8ff1-08d9d4863aa5" } }
  4. Saisissez la commande suivante pour obtenir le statut du chargement avec le paramètre loadId de l'étape 3 :

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

    Si le statut du chargement signale une erreur, vous pouvez demander un statut plus détaillé et une liste des erreurs. Pour plus d'informations et d'exemples, consultez API d'obtention du statut de Neptune Loader.

  5. (Facultatif) Annulez la tâche Load.

    Saisissez la commande suivante pour supprimer (Delete) la tâche de chargement (loader) avec l'id de tâche de l'étape 3 :

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

    La commande DELETE renvoie le code HTTP 200 OK lorsque l'annulation a réussi.

    Les données des fichiers de la tâche de chargement qui ont fini de se charger ne sont pas annulées. Les données restent dans l'instance de base de données Neptune.