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
- 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
- Mode de chargement de données
- Prétraitement des différences de fichiers
- Options de validation
- Cache du résolveur d'ID
- Taille de lot et nombre de validations
- Taille de segment de la machine virtuelle Java (JVM)
- Temps d'attente des réseaux
- Optimisation de la base 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
- 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.
Cache du résolveur d'ID
- 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.
-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.<_config:IDResolver className="com.ibm.commerce.foundation.dataload.idresolve.IDResolverImpl" cacheSize="1000000"/>- 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
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.
<_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.

