Configuration de l'utilitaire de chargement de données pour l'exécution du préprocesseur des différences entre les fichiers
Si vous chargez régulièrement le même fichier d'entrée de chargement de données généré depuis un système ou une source externe, vous pouvez choisir d'exécuter le préprocesseur des différences entre les fichiers dans le cadre du processus de chargement de données pour vous assurer de charger uniquement les nouvelles modifications lorsque vous chargez votre fichier d'entrée le plus récent.
Avant de commencer
- Identifiez les deux fichiers d'entrée de chargement de données à comparer et pour lesquels générer un fichier de différences.
- Chargez l'ancien fichier d'entrée dans votre base de données HCL Commerce. Si des enregistrements se trouvent dans l'ancien fichier et dans le nouveau fichier auquel l'ancien fichier est comparé, ils n'apparaîtront pas dans le fichier de différences généré ou dans votre base de données. Pour éviter que des enregistrements ne soient jamais chargés dans votre base de données, vérifiez que le contenu de l'ancien fichier est chargé dans votre base de données.
Pourquoi et quand exécuter cette tâche
Un outil de comparaison des fichiers est disponible sous la forme d'un préprocesseur de lecteur de données lorsque vous exécutez l'utilitaire de chargement de données. Ce préprocesseur des différences entre les fichiers peut être utilisé pour lire et comparer deux fichiers CSV ou XML. Il utilise une classe de lecteur de données différente pour lire les fichiers CSV (CSVFileDiffPreprocessor) et les fichiers XML (XmlFileDiffPreprocessor) ; par conséquent, vous ne pouvez pas comparer un fichier CSV à un fichier XML.
Propriétés de configuration pour le préprocesseur des différences entre les fichiers
keyColumns, qui doit être spécifiée dans le fichier de configuration d'objet métier.| Propriété de configuration | Description |
|---|---|
keyColumns |
Obligatoire. Les colonnes de clé sont des colonnes CSV ou des éléments XML qui identifient un enregistrement dans votre fichier d'entrée de façon unique. |
numberOfSplitFiles |
Facultatif. Utilisez cette propriété pour spécifier en combien de fichiers les fichiers d'entrées doivent être fractionnés lorsque l'ancien fichier d'entrée est trop volumineux pour être stocké dans la mémoire. Il est recommandé de spécifier |
checkDuplicatedKeys |
Facultatif. Associez cette propriété à la valeur true pour procéder à une vérification supplémentaire des entrées en double. Il est recommandé d'associer |
diffFileDirectory |
Facultatif. Cette propriété permet de changer le répertoire dans lequel le fichier de différences généré est sauvegardé. |
dataReaderPreprocessOnly |
Facultatif. Associez cette propriété à la valeur true pour arrêter le processus de chargement de données une fois le fichier de différences généré et sauvegardé. |
cleanupSplitFiles |
Facultatif. Si vos fichiers d'entrée sont fractionnés, vous pouvez associer cette propriété à la valeur false pour sauvegarder les fichiers plus petits temporaires générés. Si cette propriété a pour valeur true ou est omise, les fichiers plus petits générés sont supprimés une fois fusionnés. |
columnBasedCompare |
Facultatif. Indique si le préprocesseur doit utiliser une comparaison reposant sur les colonnes pour comparer les fichiers. Vous pouvez définir les valeurs suivantes pour cette propriété :
Remarque : l'exécution de la configuration d'une comparaison reposant sur les colonnes peut être plus longue que l'application du comportement par défaut du préprocesseur des différences entre les fichiers. Avec une comparaison reposant sur les colonnes, le préprocesseur doit exécuter une recherche supplémentaire dans les fichiers. |
includeCompareColumns |
Facultatif. Indique si le préprocesseur des différences entre les fichiers doit comparer des colonnes spécifiques seulement. Utilisez une liste d'éléments séparés par une virgule comme valeur pour cette propriété afin d'identifier les colonnes à comparer. Les colonnes qui ne figurent pas dans cette liste sont ignorées au cours de la comparaison des fichiers. Lorsque vous incluez cette propriété, la propriété columnBasedCompare est configurée par défaut avec la valeur true si elle n'est pas configurée explicitement.Si vous incluez à la fois la propriété Si vous incluez la propriété Remarque : Si vous incluez la propriété includeCompareColumns sans définir de valeur, et que la propriété excludeCompareColumns n'est pas non plus associée à une valeur, le préprocesseur des différences entre les fichiers compare les colonnes de clé seulement. Dans ce cas, le fichier de différences généré inclut uniquement les enregistrements provenant du nouveau fichier d'entrée dont la valeur de colonne de clé ne figure pas dans l'ancien fichier d'entrée. |
excludeCompareColumns |
Facultatif. Indique si le préprocesseur des différences entre les fichiers doit exclure des colonnes spécifiques de la comparaison. Utilisez une liste d'éléments séparés par une virgule comme valeur pour cette propriété afin d'identifier les colonnes à exclure de la comparaison. Toutes les autres colonnes sont comparées. Lorsque vous incluez cette propriété, la propriété columnBasedCompare est configurée par défaut avec la valeur true si elle n'est pas configurée explicitement.Si vous incluez à la fois la propriété Si vous incluez la propriété |
Configuration de l'identification des différences entre les fichiers pour la gestion de fichiers d'entrée volumineux
Le préprocesseur des différences entre les fichiers charge l'ancien fichier d'entrée dans une mappe de hachage dans votre mémoire système et compare cette mappe de hachage au nouveau fichier d'entrée afin de générer un fichier de différences. Si l'ancien fichier est trop volumineux pour être chargé dans votre mémoire système, le préprocesseur des différences entre les fichiers le fractionne en fichiers plus petits. Le nouveau fichier d'entrée est également fractionné en fichiers plus petits (le même nombre). Le préprocesseur génère un fichier de différences pour chaque paire de ces fichiers plus petits, puis fusionne ces fichiers en un fichier de différences unique plus grand.
Par défaut, le préprocesseur des différences entre les fichiers détermine automatiquement le nombre de fichiers de fractionnement d'un ficher volumineux. Vous pouvez choisir de configurer le nombre de fichiers de fractionnement pour vos fichiers d'entrée volumineux. Si vous configurez cette propriété, assurez-vous de spécifier un nombre de fichiers suffisamment élevé pour que tous les enregistrements du fichier d'entrée puissent être stockés dans la mémoire.
Le fractionnement des fichiers d'entrée en fichiers plus petits nécessite un certain temps de traitement et une certaine quantité d'espace disque. Si votre système dispose d'une mémoire physique suffisante et utilise une machine virtuelle Java 64 bits, il suffit d'augmenter la taille de segment de mémoire maximale de la machine virtuelle Java pour gérer les fichiers d'entrée volumineux. Si votre système dispose d'une mémoire suffisante et que le préprocesseur ne fractionne pas les fichiers d'entrée, le fichier de différences peut être généré plus rapidement. Pour plus d'informations sur l'optimisation des performances de la machine virtuelle Java, notamment de la taille de segment de mémoire de la machine virtuelle Java, voir Réglage des performances de la machine virtuelle Java.
Procédure
-
Mettez à jour le fichier de configuration d'objet métier du chargement de données pour votre objet métier afin d'inclure le préprocesseur des différences entre les fichiers lorsque l'utilitaire de chargement de données s'exécute.
-
Mettez à jour le fichier de configuration de l'ordre de chargement des données pour que l'ordre de chargement identifie l'emplacement des fichiers à comparer. Pour exécuter le préprocesseur des différences entre les fichiers, vous devez identifier deux fichiers.
Exemple : la version chargée précédemment et la version plus récente d'un fichier.
Lorsque vous spécifiez
oldLocationpour un fichier, vous indiquez que le préprocesseur des différences entre les fichiers doit être exécuté. Le type de fichier que vous identifiez pour la comparaison détermine le lecteur de données (CSV ou XML) que le préprocesseur doit utiliser. - Exécutez l'utilitaire pour l'utilitaire de chargement de données. Le préprocesseur des différences entre les fichiers s'exécute et génère et sauvegarde le fichier de différences. Selon vos configurations, l'utilitaire de chargement de données peut ensuite charger le fichier de différences ou arrêter le processus de chargement de données pour que vous puissiez passer en revue le fichier de différences et le charger ultérieurement.
Exemple
<_config:DataLoadConfiguration xsi:schemaLocation="http://www.ibm.com/xmlns/prod/commerce/foundation/config ../xsd/wc-dataload.xsd">
<_config:DataLoadEnvironment configFile="wc-dataload-env.xml"/>
<_config:LoadOrder commitCount="100" batchSize="1" dataLoadMode="Replace" >
<_config:LoadItem name="CatalogEntry" businessObjectConfigFile="wc-loader-catalog-entry.xml" >
<_config:property name="dataReaderPreprocessOnly" value="true"/>
<_config:DataSourceLocation location="c:/temp/dataload/samples/CatalogEntryNew.csv" oldLocation="c:/temp/dataload/samples/CatalogEntryOld.csv" />
</_config:LoadItem>
</_config:LoadOrder>
</_config:DataLoadConfiguration>Dans cet exemple de fichier de configuration, les deux fichiers se trouvent dans un répertoire exemple temporaire. Une fois l'exécution du préprocesseur terminée, le fichier de différences généré, CatalogEntryNew_diff_2013.03.28_12.01.01.001.csv, est sauvegardé dans le même répertoire temporaire. Cet exemple inclut la propriété de configuration dataReaderPreprocessOnly qui indique que l'utilitaire de chargement de données doit exécuter le préprocesseur des différences entre les fichiers uniquement. Pour exécuter le préprocesseur, le fichier de configuration spécifie que l'utilitaire de chargement de données doit être exécuté en mode remplacement.