Réglage des performances de l'utilitaire de chargement de données

Les travaux planifiés de l'utilitaire de chargement de données peuvent avoir un impact sur les performances de HCL Commerce. Vous pouvez réduire l'impact de ce processus en réglant les performances du chargement de données de manière appropriée pour votre implémentation.

Lorsque vous considérez la façon d'ajuster votre processus de chargement de données, veillez à examiner les rapports récapitulatifs du chargement de données qui sont générés après l'exécution de l'utilitaire de chargement de données. Ces rapports permettent d'identifier les éléments du processus de chargement de données qui doivent être réglés pour améliorer les performances.

Avant de commencer

Vérifiez que vous connaissez et comprenez bien les tâches et concepts suivants qui sont liés à l'utilitaire de chargement de données :
  • Exécution de l'utilitaire de chargement de données
  • Configuration de l'utilitaire de chargement de données

Parallélisation du chargement de données

Lorsqu'il est utilisé avec des données au format CSV, le chargement de données peut être exécuté avec plusieurs unités d'exécution d'écriture. Cela peut augmenter considérablement les performances de chargement pour de grands ensembles de données qui sont formatées en tenant compte de la parallélisation.

Pour plus d'informations sur la parallélisation du chargement de données, voir Parallélisation du chargement des données .

Mode de chargement de données

Le paramètre du mode de chargement de données est utilisé pour définir le type du processus de chargement que l'utilitaire de chargement de données doit exécuter. Vous pouvez définir ce mode sur Insert (insertion), Replace (remplacer) ou Delete (supprimer) dans le fichier wc-dataload.xml pour les données que vous chargez. En général, c'est le mode Replace qui est utilisé, mais les modes Insert et Delete sont plus rapides. L'exécution de l'utilitaire en mode Insert ou Delete ne nécessite pas de résoudre autant d'ID à l'aide de l'utilitaire de résolution d'ID. Lorsque vous utilisez les modes Insert ou Delete, assurez-vous que ces actions sont les seules opérations de base de données requises par votre fichier CSV.

Prétraitement des différences de fichiers

Vous pouvez exécuter un prétraitement des différences de fichiers pour des chargements de données de routine afin d'améliorer les performances de l'utilitaire de chargement de données lors du chargement de ces fichiers. Ce préprocesseur vous permet de comparer deux fichiers d'entrée, comme un fichier chargé précédemment et une nouvelle version de ce fichier. Le préprocesseur génère un fichier de différences contenant uniquement les enregistrements du nouveau fichier qui ne figurent pas dans l'ancien fichier ou les enregistrements qui ont été modifiés par rapport à l'ancien fichier. L'utilitaire de chargement de données peut alors charger ce fichier de différences. Si les fichiers que vous chargez régulièrement contiennent un grand nombre d'enregistrements précédemment chargés, l'exécution de cette différence de fichiers peut permettre de réduire les temps de chargement. L'identification des différences entre les fichiers permet de réduire le temps de chargement requis pour charger vos mises à jour de routine dans votre base de données HCL Commerce, de réduire le temps d'utilisation du serveur, et d'améliorer les performances du serveur.

Vous pouvez configurer le préprocesseur de différence de fichier d'utilitaire de chargement des données pour comparer des fichiers selon les valeurs dans chaque colonne, au lieu d'enregistrements complets pour identifier les enregistrements modifiés. Vous pouvez également configurer le préprocesseur de différence de fichier pour ignorer des colonnes spécifiques lorsque le processus compare les fichiers.

Pour plus d'informations sur ce préprocesseur, voir Exécution du préprocesseur des différences entre les fichiers de chargement de données.

Options de validation

La configuration de l'utilitaire de chargement de données pour valider les données que vous chargez peut affecter les performances de chargement de données. La validation des données que vous chargez est effectuée sur la base de données HCL Commerce. Si vous validez un grand nombre d'enregistrements ou si le processus de validation détecte un grand nombre d'enregistrements non valides, ce processus de validation peut affecter les performances. Par défaut, les options de validation suivantes sont disponibles en tant que propriétés configurables pour l'utilitaire de chargement de données :
attributeValueValidation
Validation de la valeur de l'attribut. La valeur d'attribut est obligatoire sauf dans une relation de produit et d'attribut de définition.
validateAttribute
Vérifie qu'une SKU et un produit possèdent des attributs de définition compatibles, lorsque la SKU est déplacée sous le produit. La logique de validation détermine si les attributs ou les valeurs autorisées à créer, mettre à jour ou supprimer appartiennent au magasin en cours.
validateCatalog
Vérifie si plusieurs catalogues maître sont créés pour un magasin. Si le magasin prend en charge des catalogue de ventes, la validation vérifie si une entrée de catalogue appartient à plus d'une catégorie maître. La validation vérifie également si une valeur autorisée pour un attribut peut être désignée comme valeur par défaut dans le magasin en cours.
validateCatalogEntry
Indique si les types de SKU et de produit doivent être vérifiés lorsque le chargement de données ajoute une SKU sous un produit. Cette vérification consiste à s'assurer que la SKU est réellement une SKU et que le produit est réellement un produit.
validateCatalogGroup
Indique si un groupe de catalogue appartient à un catalogue spécifié.
validateUniqueDN
Valide l'unicité du nom distinctif permettant d'identifier un utilisateur dans un fichier CSV. Par défaut, pour optimiser les performances de chargement de données, les utilisateurs indiqués dans le fichier CSV sont identifiés par l'ID de connexion au lieu du nom distinctif.
Si aucun processus de validation n'est requis pour les données que vous chargez, prenez soin d'affecter la valeur false à la propriété configurable de sorte qu'aucune validation ne soit effectuée.

Cache du résolveur d'ID

Si la taille du cache du résolveur d'ID est suffisante, ce cache peut stocker tous les ID requis pour une table de base de données dans laquelle les données sont chargées. Si la taille de ce cache est insuffisante pour stocker tous les ID requis, aucun ID n'est mis en mémoire cache. Lorsque les ID ne sont pas en mise en mémoire cache, le processus de chargement des données requiert que les ID soient résolus directement dans la base de données. Lorsque vous configurez votre définition de cache, tenez compte du comportement suivant :
  • La mise en mémoire cache de tous les ID d'une table volumineuse peut prendre beaucoup de temps au résolveur d'ID. Si vous chargez peu d'enregistrements dans une table comportant de nombreux enregistrements et ID individuels à mettre en cache, la résolution directe des ID dans la base de données peut nécessiter moins de temps que la mise en cache de tous les ID pour l'ensemble d'une table et la résolution des ID dans le cache. Vous pouvez configurer la taille du cache de sorte qu'il soit trop petit pour stocker les ID des tables volumineuses, mais assez grand pour mettre en cache les tables plus petites afin de résoudre les ID dans le cache. En réduisant la taille de ce cache, vous pouvez réduire le temps passé à la mise en cache des ID de toute une table dans laquelle vous ne chargez que quelques enregistrements.
  • Le cache du résolveur d'ID est vidé après le chargement dans le fichier de configuration de l'ordre de chargement. Si vous exécutez plusieurs fichiers CSV, le cache doit être de nouveau rempli après chaque élément chargé. Si plusieurs fichiers CSV chargent des données dans les mêmes tables, pensez à fusionner les fichiers lorsque cela est possible pour limiter le temps de mise en cache nécessaire pour remplir de nouveau la table avec les mêmes données d'ID de table.
Pour régler votre résolveur d'ID, définissez une valeur initiale garantissant que toutes les tables dans lesquelles vous chargez des données peuvent être mises en mémoire cache. Ensuite, définissez un second scénario de chargement de données avec la valeur 0 affectée au cache de résolveur d'ID. Dans les deux cas, indiquez le paramètre -Dcom.ibm.commerce.foundation.dataload.idresolve.level=FINE lorsque vous exécutez l'utilitaire de chargement de données. Ce paramètre ajoute les temps de résolution à la trace, notamment le temps nécessaire pour alimenter la mémoire cache (si cette valeur n'est pas 0), et le temps nécessaire pour résoudre les ID dans la base de données ou la mémoire cache. Ces temps vous aident à déterminer si vous pouvez augmenter ou diminuer la mise en cache des ID et réduire le temps nécessaire pour résoudre les ID des données que vous chargez.
La taille du cache du résolveur d'ID est défini dans le fichier de configuration de l'environnement de chargement de données. Voici un exemple de déclaration d'une mémoire cache pouvant stocker 1 million d'enregistrements :
<_config:IDResolver className="com.ibm.commerce.foundation.dataload.idresolve.IDResolverImpl" cacheSize="1000000"/>
Pour faciliter le réglage du cache du résolveur d'ID, examinez le rapport récapitulatif de chargement de données une fois un chargement de données terminé. Ce rapport indique le temps total nécessaire à la résolution et à la vérification par le résolveur d'ID des ID des objets chargés. L'utilitaire de chargement de données peut également être configuré pour générer davantage d'informations sur le processus du résolveur d'ID de chargement de données. Ces informations supplémentaires sont les suivantes :
  • Temps nécessaire à l'extraction et au chargement des ID pour une table dans le cache du résolveur d'ID
  • Nombre d'entrées par table stockées dans le cache
  • Nombre d'accès au cache par table pour la résolution d'ID
  • Temps nécessaire à la résolution des ID d'une table directement depuis la table de base de données
  • Nombre d'accès à la base de données pour la résolution des ID d'une table
Elles permettent également de déterminer s'il est plus efficace de résoudre et de vérifier les ID d'une table dans le cache du programme de résolution d'ID ou directement dans la base de données. Vous pouvez ensuite ajuster la taille du cache du résolveur d'ID en conséquence ou exclure des ID de certaines tables afin qu'elles ne soient pas incluses dans le cache. Pour en savoir plus sur les informations de résolveur d'ID pouvant être incluses dans le rapport récapitulatif de chargement de données, voir Vérification du résultat du chargement des données.

Taille de lot et nombre de validations

Modifiez les paramètres de la taille de lot et du nombre de validations de l'utilitaire de chargement de données pour réduire l'effet de temps d'attente du réseau et réduire la charge de traitement sur le Transaction server. Le nombre de validations doit être un multiple de la taille de lot. Le paramètre de nombre de validations indique le nombre de lignes vidées dans une seule transaction avant qu'une validation soit émise. Les transactions de base de données sont chargées en lots. Ces lots sont conservés dans la mémoire Java jusqu'à ce qu'un nombre suffisant de lignes soit stocké pour un cliché. Ensuite, le contenu des lots est stocké dans la base de données sous la forme d'un paquet unique de données. Les lots sont stockés dans la base de données jusqu'à la validation suivante et le chargement des modifications par la base de données.

Si vous augmentez la taille des lots, vous pouvez réduire l'effet du temps d'attente des réseaux sur le processus de chargement de données. Si vous augmentez la taille des lots, vous pouvez réduire le nombre de lots devant être envoyés vers la base de données. Le temps de réponse de la base de données peut également être réduit en augmentant la taille de lot.

En augmentant le nombre de validations, vous pouvez réduire la charge de traitement sur le Transaction server. Si vous augmentez le nombre de validations, la charge sur la base de données s'accroît. Lorsque le nombre de validations est augmenté, un plus grand nombre d'enregistrements est validé dans la base de données en une seule transaction. Cette augmentation se traduit par moins de données non validées qui restent stockées sur votre Transaction server et moins de transactions globales requises pour valider les données.

Les valeurs des paramètres de taille de lot et de nombre de validations sont définies dans le fichier de configuration de l'ordre de chargement des données et sont généralement comprises entre 500 et 1000. Voici un exemple de déclaration des paramètres de la taille de lot et du nombre de validations :
<_config:LoadOrder commitCount="1000" batchSize="500" dataLoadMode="Replace">

Taille de segment de la machine virtuelle Java (JVM)

Lorsque vous réglez le cache du résolveur d'ID, vous pouvez ajuster l'allocation de segment mémoire JVM. La taille du segment JVM doit être proportionnelle à celle du cache du résolveur d'ID. Par exemple, si le cache du résolveur d'ID est volumineux, indiquez une taille de segment de machine virtuelle Java élevée. Avec une taille de cache élevée pour le résolveur d'ID, l'utilitaire de chargement de données ne résout pas directement les ID depuis la base de données. Le résolveur d'ID peut toutefois utiliser intensivement la mémoire du segment JVM. Dans le cas d'une taille de pile JVM d'1 Go, associez la taille du cache du programme de résolution d'ID à une valeur inférieure à 2 millions pour éviter toute erreur de saturation de la mémoire Java. Une exception de mémoire insuffisante au cours du processus de chargement des données indique que la taille du segment mémoire JVM alloué est peut-être trop petite. Vérifiez que le segment mémoire JVM est de taille suffisante pour le cache du résolveur d'ID et les lots stockés en mémoire. Définissez la valeur de la taille de segment JVM à l'aide des paramètres suivants dans l'utilitaire de chargement de données, fichier dataload.sh : -Xms1024m -Xmx4096m

Temps d'attente des réseaux

Si votre environnement est configuré pour qu'une grande distance sépare physiquement les serveurs, le processus de chargement de données peut être impacté. Le temps d'attente de votre réseau peut affecter le temps du cliché lorsque vous exécutez l'utilitaire de chargement de données. Le temps de cliché peut être affiché dans le rapport récapitulatif du chargement de données. Il inclut le temps nécessaire au transfert d'un lot, notamment le temps de réponse de la base de données. Ce temps de cliché comprend également le temps d'attente des réseaux. Si le temps total consacré au cliché est long, votre système peut faire l'objet d'une perte des performances de la base de données ou du réseau, ou des deux. Si vous ajustez votre environnement et que les performances du chargement de données ne se trouvent pas dans la plage de performances attendue, vous devrez peut-être installer HCL Commerce sur un système local pour améliorer les performances de l'utilitaire de chargement des données.

Optimisation de la base de données

En réglant de façon optimale votre base de données, vous pouvez améliorer les performances de l'utilitaire de chargement de données en réduisant le temps nécessaire pour valider les enregistrements. Vous pouvez afficher le temps nécessaire à la validation des enregistrements de données chargés dans le rapport récapitulatif de l'utilitaire de chargement de données. Vous disposez de nombreux outils pour optimiser les performances de votre base de données. Pour plus d'informations sur le réglage des performances de base de données, voir :