Exécution du préprocesseur des différences entre les fichiers de chargement de données

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. 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.

Le préprocesseur des différences entre les fichiers est disponible pour l'utilitaire de chargement de données seulement. Il permet de comparer deux fichiers d'entrée, par exemple un fichier chargé précédemment et sa nouvelle version. 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. Ce préprocesseur peut être échelonné en vue de la comparaison de fichiers comportant des millions d'enregistrements.

Le préprocesseur des différences entre les fichiers n'est pas un outil de comparaison de fichiers dont l'objectif est général. Si le contenu de l'ancien fichier que vous comparez existe dans votre base de données HCL Commerce, le chargement du fichier de différences généré dans votre base de données équivaut à charger le nouveau fichier entier. Si le fichier de différences généré est plus petit que votre nouveau fichier, le chargement du fichier de différences peut réduire le temps de chargement global requis pour mettre à jour votre base de données afin d'y ajouter le contenu de votre nouveau fichier.

Vous pouvez aussi utiliser le préprocesseur des différences entre les fichiers en tant que processus distinct du chargement réel des données dans votre base de données. Vous pouvez l'utiliser pour générer un fichier de différences sans charger le fichier. Si vous interrompez le préprocesseur avant le chargement du fichier, il n'a pas d'impact sur votre base de données ou les performances de votre système HCL Commerce. Vous pouvez choisir de charger le fichier de différences ultérieurement. Chargez le fichier de différences à l'aide de l'utilitaire de chargement de données lorsque l'impact du processus de chargement sur votre base de données et les performances du système HCL Commerce est le moins important.

L'identification des différences entre les fichiers est implémentée en tant que préprocesseur de lecteur de données. Il s'exécute au début de l'initialisation du lecteur de données lorsque vous exécutez l'utilitaire de chargement de données. Par défaut, deux préprocesseurs de lecteur de données sont fournis pour l'identification des différences entre les fichiers : l'un pour comparer des fichiers CSV (CSVFileDiffPreprocessor) et l'autre pour comparer des fichiers XML (XmlFileDiffPreprocessor).

Le préprocesseur de lecteur de données est spécifié sous la forme d'un sous-élément DataReaderPreprocessor dans l'élément DataReader du fichier de configuration d'objet métier de chargement de données. Par exemple :
<_config:DataReader className="com.ibm.commerce.foundation.dataload.datareader.CSVReader" firstLineIsHeader="true" useHeaderAsColumnName="true" >
   <_config:DataReaderPreprocessor className="com.ibm.commerce.foundation.dataload.datareader.CSVFileDiffPreprocessor" />
</_config:DataReader>

Il n'est pas nécessaire de spécifier explicitement ce préprocesseur pour identifier les différences entre les fichiers. Pour identifier les différences entre les fichiers, il suffit de spécifier les valeurs de propriété de la colonne de clé afin d'identifier de façon unique les enregistrements dans vos fichiers d'entrée. Vous devez aussi spécifier l'emplacement de l'ancien fichier à comparer. Si vous incluez ces deux propriétés requises d'identification des différences entre les fichiers dans vos fichiers de configuration, le préprocesseur des différences entre les fichiers s'exécute automatiquement lorsque vous exécutez l'utilitaire de chargement de données. Pour plus d'informations sur la configuration de l'utilitaire de chargement de données pour qu'il identifie les différences entre les fichiers, voir Configuration de l'utilitaire de chargement de données pour l'exécution du préprocesseur des différences entre les fichiers.

Meilleures pratiques

Lorsque vous exécutez le préprocesseur des différences entre les fichiers, tenez compte des recommandations et des conseils suivants :
  • Utilisez l'identification des différences entre les fichiers uniquement lorsque vos données sont mises à jour et gérées sur votre système dorsal et chargées selon une routine dans votre base de données de production.
  • Vérifiez que le chargement de votre ancien fichier d'entrée a abouti. Veillez à ce que les éventuelles erreurs rencontrées dans ce fichier ont été corrigées dans le fichier et dans votre base de données source. Si vous corrigez les erreurs dans l'ancien fichier mais pas dans votre base de données source, celles-ci pourront exister dans votre nouveau fichier d'entrée. Elles pourront aussi apparaître dans le fichier de différences généré.
  • Vérifiez que votre utilitaire de chargement de données est configuré en vue de son exécution en mode remplacement.
  • Si vos fichiers d'entrée sont des fichiers CSV, veillez à inclure un en-tête avec les colonnes appropriées. Si cet en-tête est modifié d'un fichier à l'autre, le nouveau fichier entier peut être identifié comme ayant été modifié et inclus dans le fichier de différences.
  • Veillez à ne pas réarranger vos colonnes ou éléments XML. Si l'ordre est modifié, tous les enregistrements sont considérés comme modifiés et inclus dans le fichier de différences. L'identification des différences entre les fichiers utilise une comparaison de chaînes pour comparer l'entrée d'enregistrement complète dans chaque fichier. Il n'est pas nécessaire de trier vos enregistrements si l'ordre dans lequel les enregistrements apparaissent est réarrangé. Le préprocesseur peut identifier et omettre les enregistrements en double.
  • Le préprocesseur des différences entre les fichiers peut effectuer une comparaison reposant sur les colonnes de sorte qu'il n'a pas besoin de comparer chaque enregistrement avec la chaîne d'enregistrement complète. Avec la comparaison reposant sur les colonnes, la disposition des colonnes ou des éléments XML dans les fichiers peut être ignorée. Vous pouvez configurer la comparaison afin d'inclure ou d'exclure des colonnes spécifiques. Utilisez la comparaison reposant sur les colonnes lorsque des fichiers d'entrée incluent des colonnes ou des éléments XML qui sont disposés différemment dans les divers fichiers d'entrée.
  • Si vos fichiers incluent des colonnes ou des éléments XML qui incluent des valeurs qui sont toujours différentes et qui n'ont pas d'impact sur la modification véritable d'un enregistrement, excluez les colonnes de la comparaison. Pour exclure ce type de colonne, configurez le préprocesseur afin d'utiliser la comparaison reposant sur les colonnes et configurez une liste d'exclusion de colonnes pour le prétraitement
  • Si vous fichiers n'incluent que quelques colonnes ou éléments qui déterminent si un enregistrement est véritablement modifié et s'il doit être mis à jour, vous pouvez comparer uniquement ces colonnes ou ces éléments. Pour inclure uniquement ces colonnes, configurez le préprocesseur pour qu'il utilise la comparaison reposant sur les colonnes et configurez une liste d'inclusion de colonnes pour le prétraitement.
  • Vérifiez que vos fichiers de configuration identifient les fichiers corrects pour la comparaison. Par exemple, si vous exécutez des chargements de catalogue et de stock selon une routine, assurez-vous de ne pas comparer un fichier de stock à un fichier de catalogue. Sinon, tous les enregistrements figurant dans le nouveau fichier seront inclus dans le fichier de différences généré. De plus, le temps de chargement ne sera pas réduit lors de l'exécution du préprocesseur.

Limitations

Lorsque vous exécutez le préprocesseur des différences entre les fichiers afin d'améliorer les performances de chargement des données, vous devez comprendre le comportement et les limitations de l'identification des différences entre les fichiers :
  • Vous devez exécuter le préprocesseur des différences entre les fichiers avec l'utilitaire de chargement de données en mode remplacement. Ce préprocesseur génère une erreur si vous exécutez l'utilitaire de chargement de données en mode insertion ou suppression.
  • L'identification des différences entre les fichiers ne peut comparer que deux fichiers CSV ou deux fichiers XML. Si vous tentez de comparer un fichier CSV et un fichier XML, des erreurs surviennent.
  • Le fichier de différences généré peut contenir des enregistrements qui existent dans votre base de données. Le préprocesseur compare seulement les deux fichiers d'entrée. La comparaison n'est pas effectuée par rapport à votre base de données pour omettre les enregistrements du fichier de différences qui existent dans votre base de données.
  • Le fichier de différences généré peut contenir des enregistrements qui sont chargés avec l'ancien fichier d'entrée lorsque le préprocesseur rencontre des modifications mineures. Par exemple, si l'ordre des colonnes pour vos enregistrements change d'un fichier à l'autre, le fichier de différences inclut ces enregistrements même si les données de ces colonnes n'ont pas été modifiées.
    Vous pouvez configurer le préprocesseur pour qu'il utilise une comparaison reposant sur les colonnes, qui permet d'ignorer certaines modifications mineures. Avec cette comparaison, le préprocesseur peut ignorer les différences mineures suivantes entre les enregistrements et les fichiers :
    • Une valeur de colonne n'inclut pas de guillemets dans un fichier, mais en inclut dans l'autre fichier, par exemple pour les jetons CSV.
    • Un enregistrement inclut une ou plusieurs virgules supplémentaires à la fin de l'enregistrement dans un fichier.
    • Les fichiers incluent les mêmes colonnes, mais dans un ordre différent.
  • Le préprocesseur des différences entre les fichiers compare toutes les données qui se trouvent dans vos fichiers d'entrée, même celles qui figurent dans des colonnes exclues du chargement. S'il identifie des différences en raison de ces colonnes, les enregistrements qui sont des doubles des données réelles chargées avec l'ancien fichier d'entrée peuvent être inclus dans le fichier de différences.

    Vous pouvez configurer le préprocesseur pour qu'il ignore des colonnes spécifiques ou pour comparer uniquement des colonnes spécifiques. Si vous configurez le préprocesseur pour qu'il ignore des colonnes spécifiques ou pour qu'il ne compare que des colonnes spécifiques, le préprocesseur utilise la comparaison reposant sur les colonnes automatiquement.

  • L'identification des différences entre des fichiers XML peut être plus long que la comparaison de fichiers CSV. En effet, les fichiers XML sont plus volumineux que des fichiers CSV contenant la même quantité de données.
  • Le préprocesseur se comporte comme si le chargement de l'ancien fichier d'entrée a abouti dans votre base de données avant d'identifier les différences entre les fichiers. Si l'ancien fichier n'est pas chargé correctement, vous devez corriger les éventuelles erreurs survenues au cours du processus de chargement et vous assurer que l'ancien fichier est chargé. Si l'ancien fichier n'est pas chargé, il se peut que le fichier de différences généré ne soit pas chargé correctement. Le chargement peut échouer en raison de certains enregistrements de l'ancien fichier, qui sont supposés être déjà chargés.
  • Si un utilisateur change les données qui figurent dans votre base de données HCL Commerce après le chargement de l'ancien fichier d'entrée, il se peut que le chargement du fichier de différences généré ne soit pas équivalent au chargement du nouveau fichier entier. Si vous utilisez le préprocesseur des différences entre les fichiers, il est recommandé de ne pas mettre à jour les mêmes données avec d'autres outils HCL Commerce tels que le Management Center.
  • Si un valideur d'espace de travail peut changer les données une fois l'ancien fichier chargé, il n'est pas recommandé d'identifier les différences entre les fichiers pour les données que vous chargez dans l'espace de travail.
  • Si vous configurez le préprocesseur pour qu'il utilise la comparaison reposant sur les colonnes, l'exécution du préprocesseur des différences entre les fichiers CSV peut être plus longue.