Optimisation d'un chargement en vrac sur Amazon 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.

Optimisation d'un chargement en vrac sur Amazon Neptune

Utilisez les stratégies suivantes pour réduire le temps de chargement au minimum pour un chargement en vrac Neptune :

  • Nettoyez vos données :

    • Assurez-vous de convertir vos données enformat de données supportéavant le chargement.

    • Supprimez tous les doublons ou les erreurs connues.

    • Réduisez le nombre de prédicats uniques (tels que les propriétés des arêtes et des sommets) autant que possible.

  • Optimisez vos fichiers :

    • Si vous chargez des fichiers volumineux tels que des fichiers CSV à partir d'un compartiment Amazon S3, le chargeur peut séparer les fichiers volumineux et gérer la simultanéité pour vous.

    • Si vous chargez plusieurs fichiers depuis un dossier Amazon S3, le chargeur charge automatiquement les fichiers de sommet en premier, puis les fichiers Edge par la suite.

    • La division de très gros fichiers en quelques fichiers plus petits permet au chargeur de les traiter en parallel.

    • La compression des fichiers réduit les temps de transfert. Le chargeur supportegzipcompression des fichiers sources.

  • Vérifiez les paramètres de votre chargeur :

    • Si aucune autre opération n'est requise de votre part pendant le chargement, utilisez leOVERSUBSCRIBE  parallelismparamètre. Ce paramètre oblige le chargeur en bloc à utiliser toutes les ressources CPU disponibles lors de son exécution. Il faut généralement 60 à 70 % de la capacité du processeur pour que l'opération fonctionne aussi rapidement que les contraintes d'E/S le permettent.

      Note

      Lorsqueparallelismest défini surOVERSUBSCRIBEouHIGH(paramètre par défaut), lors du chargement des données OpenCypher, les threads risquent de rencontrer une condition de course et de blocage, ce qui entraîneLOAD_DATA_DEADLOCKErreur. Dans ce cas, définissezparallelismà un réglage inférieur et réessayez de charger.

    • Si votre tâche de chargement doit inclure plusieurs demandes de chargement, utilisezqueueRequestparamètre. ParamètrequeueRequestpourTRUEpermet à Neptune de mettre vos demandes en file d'attente afin que vous n'ayez pas à attendre qu'une demande soit terminée avant d'en émettre une autre.

    • Si vos demandes de chargement sont mises en file d'attente, vous pouvez définir des niveaux de dépendance à l'aide dudependenciesparamètre, de sorte que l'échec d'une tâche entraîne l'échec des tâches dépendantes. Cela permet d'éviter des incohérences dans les données chargées.

    • Si une tâche de chargement doit impliquer la mise à jour de valeurs précédemment chargées, veillez à définirupdateSingleCardinalityPropertiesparamètreTRUE. Dans le cas contraire, le chargeur considérera comme une erreur toute tentative de mise à jour d'une valeur de cardinalité unique existante. Pour les données Gremlin, la cardinalité est également spécifiée dans les en-têtes des colonnes de propriétés (voirEn-têtes de colonne de propriété).

    • Vous pouvez utiliser le pluginfailOnErrorparamètre permettant de déterminer si les opérations de chargement en bloc doivent échouer ou se poursuivre en cas d'erreur. Vous pouvez également utilisermodeparamètre pour s'assurer qu'une tâche de chargement reprend le chargement à partir du point où une tâche précédente a échoué plutôt que de recharger des données déjà chargées.

  • Monses d'échelle— Réglez la taille maximale de l'instance d'écriture de votre cluster de bases de données avant le chargement en bloc. Notez que si vous procédez ainsi, vous devez soit augmenter la taille de toutes les instances de réplica en lecture du cluster de bases de données, soit les supprimer jusqu'à ce que vous ayez fini de charger les données.

    Lorsque votre chargement groupé est terminé, veillez à redimensionner l'instance de scripteur.

VoirParamètres de demandepour plus de détails sur la définition des paramètres de demande du chargeur.