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.
Exportation des résultats de requêtes Gremlin vers Amazon S3
À partir de la version 1.4.3.0 du moteur, Amazon Neptune prend en charge l'exportation des résultats des requêtes Gremlin directement vers Amazon S3. Cette fonctionnalité vous permet de gérer efficacement les résultats de requêtes volumineux en les exportant vers un compartiment Amazon S3 au lieu de les renvoyer sous forme de réponse à une requête.
Pour exporter les résultats de la requête vers Amazon S3, utilisez l'call()étape avec le nom du neptune.query.exportToS3 service comme dernière étape de votre requête Gremlin. L'étape terminale dans les pilotes Tinkerpop utilisant le Bytecode call() Les paramètres d'exportation doivent être fournis sous forme de valeurs de chaîne.
Note
La requête contenant l'call()étape neptune.query.exportToS3 échouera si elle n'est pas utilisée comme étape finale. Les clients Gremlin utilisant le bytecode peuvent utiliser les étapes du terminal. Consultez les bonnes pratiques relatives à Gremlin dans la documentation Amazon Neptune pour plus d'informations.
g.V() ... .call('neptune.query.exportToS3', [ 'destination': 's3://your-bucket/path/result.json', 'format': 'GraphSONv3', 'kmskeyArn': 'optional-kms-key-arn' ])
Parameters
-
destination: obligatoire - L'URI Amazon S3 dans lequel les résultats seront écrits. -
format: obligatoire - Le format de sortie ne prend actuellement en charge que « GraphsonV3». -
keyArn: facultatif - L'ARN d'une AWS KMS clé pour le chiffrement côté serveur Amazon S3.
Exemples
Exemple de requête
g.V(). hasLabel('Comment'). valueMap(). call('neptune.query.exportToS3', [ 'destination': 's3://your-bucket/path/result.json', 'format': 'GraphSONv3', 'keyArn': 'optional-kms-key-arn' ])
Exemple de réponse à une requête
{ "destination":"s3://your-bucket/path/result.json, "exportedResults": 100, "exportedBytes": 102400 }
Conditions préalables
-
Votre instance de base de données Neptune doit avoir accès à Amazon S3 via un point de terminaison VPC de type passerelle.
-
Pour utiliser un AWS KMS chiffrement personnalisé dans la requête, un point de terminaison Interface-type VPC AWS KMS est requis pour permettre à Neptune de communiquer avec. AWS KMS
-
Vous devez activer l'authentification IAM sur Neptune et disposer des autorisations IAM appropriées pour écrire dans le compartiment Amazon S3 cible. Le fait de ne pas le faire provoquera une erreur de 400 requêtes erronées « L'authentification IAM du cluster doit être activée pour l'exportation S3 ».
-
Le compartiment Amazon S3 cible :
-
Le compartiment Amazon S3 cible ne doit pas être public.
Block public accessdoit être activé. -
La destination Amazon S3 cible doit être vide.
-
Le compartiment Amazon S3 cible doit être associé à une règle de cycle de
Delete expired object delete markers or incomplete multipart uploadsvieDelete incomplete multipart uploads. Consultez la mise à jour de la gestion du cycle de vie d'Amazon S3 : prise en charge des chargements partitionnés et suppression de marqueurspour plus d'informations.
-
Le compartiment Amazon S3 cible doit avoir une règle de cycle de vie activée et être
Delete incomplete multipart uploadsdéfinie surDelete expired object delete markers or incomplete multipart uploadsune valeur supérieure à celle que prendra l'évaluation des requêtes (par exemple, 7 jours). Cela est nécessaire pour supprimer les téléchargements incomplets (qui ne sont pas directement visibles mais entraîneraient des coûts) au cas où Neptune ne pourrait pas les terminer ou les abandonner (par exemple, en raison d'échecs). instance/engine Consultez la mise à jour de la gestion du cycle de vie d'Amazon S3 : prise en charge des chargements partitionnés et suppression de marqueurspour plus d'informations.
-
Considérations importantes
-
L'étape d'exportation doit être la dernière étape de votre requête Gremlin.
-
Si un objet existe déjà à l'emplacement Amazon S3 spécifié, la requête échouera.
-
La durée maximale d'exécution des requêtes d'exportation est limitée à 11 heures et 50 minutes. Cette fonctionnalité utilise des sessions d'accès direct. Il est actuellement limité à 11 heures et 50 minutes pour éviter les problèmes d'expiration des jetons.
Note
La requête d'exportation respecte toujours le délai d'expiration de la requête. Pour les exportations volumineuses, vous devez utiliser un délai d'attente de requête approprié.
-
Tous les nouveaux objets chargés vers Amazon S3 sont automatiquement chiffrés.
-
Pour éviter les coûts de stockage liés à des chargements partitionnés incomplets en cas d'erreurs ou de pannes, nous vous recommandons de définir une règle de cycle de vie avec
Delete incomplete multipart uploadsvotre compartiment Amazon S3.
Format de la réponse
Plutôt que de renvoyer directement les résultats de la requête, celle-ci renvoie des métadonnées relatives à l'opération d'exportation, notamment le statut et les détails de l'exportation. Les résultats de la requête dans Amazon S3 seront au format GraphsonV3
{ "data": { "@type": "g:List", "@value": [ { "@type": "g:Map", "@value": [ "browserUsed", { "@type": "g:List", "@value": [ "Safari" ] }, "length", { "@type": "g:List", "@value": [ { "@type": "g:Int32", "@value": 7 } ] }, "locationIP", { "@type": "g:List", "@value": [ "192.0.2.0/24" ] }, "creationDate", { "@type": "g:List", "@value": [ { "@type": "g:Date", "@value": 1348341961000 } ] }, "content", { "@type": "g:List", "@value": [ "no way!" ] } ] }, { "@type": "g:Map", "@value": [ "browserUsed", { "@type": "g:List", "@value": [ "Firefox" ] }, "length", { "@type": "g:List", "@value": [ { "@type": "g:Int32", "@value": 2 } ] }, "locationIP", { "@type": "g:List", "@value": [ "203.0.113.0/24" ] }, "creationDate", { "@type": "g:List", "@value": [ { "@type": "g:Date", "@value": 1348352960000 } ] }, "content", { "@type": "g:List", "@value": [ "ok" ] } ] }, ... ] } }
Sécurité
-
Toutes les données transférées vers Amazon S3 sont cryptées en transit à l'aide du protocole SSL.
-
Vous pouvez spécifier une AWS KMS clé pour le chiffrement côté serveur des données exportées. Amazon S3 chiffre les nouvelles données par défaut. Si le compartiment est configuré pour utiliser une AWS KMS clé spécifique, cette clé est utilisée.
-
Neptune vérifie que le bucket cible n'est pas public avant de démarrer l'exportation.
-
Cross-account et les exportations interrégionales ne sont pas prises en charge.
Gestion des erreurs
-
Le compartiment Amazon S3 cible est public.
-
L'objet spécifié existe déjà.
-
Vous ne disposez pas des autorisations suffisantes pour écrire dans le compartiment Amazon S3.
-
L'exécution de la requête dépasse la limite de temps maximale.
Bonnes pratiques
-
Utilisez les règles de cycle de vie des compartiments Amazon S3 pour nettoyer les chargements partitionnés incomplets.
-
Surveillez vos opérations d'exportation à l'aide des journaux et des métriques Neptune. Vous pouvez vérifier le point de terminaison d'état du Gremlin pour voir si une requête est en cours d'exécution. Tant que le client n'a pas reçu de réponse, la requête sera supposée être en cours d'exécution.