Preproceso de diferencias de archivos de carga de datos

Puede ejecutar un preproceso de diferencias de archivo para cargas de datos de rutina para mejorar el rendimiento del programa de utilidad de carga de datos para cargar estos archivos. La ejecución de una diferencia de archivos puede reducir el tiempo de carga que se necesita para cargar las actualizaciones de rutina en la base de datos de HCL Commerce, reducir el tiempo de utilización del servidor y mejorar el rendimiento del servidor.

El preprocesador de diferencias de archivos solo está disponible para el programa de utilidad de carga de datos. Utilizando este preprocesador podrá comparar dos archivos de entrada, como un archivo cargado anteriormente y la versión más reciente de este archivo. El preprocesador genera un archivo de diferencias que solo contiene los registros del nuevo archivo que no están en el archivo anterior o que han cambiado respecto a los registros del archivo anterior. Entonces el programa de utilidad de carga de datos puede cargar este archivo de diferencias. Si los archivos cargados de forma rutinaria contienen muchos registros anteriores cargados, la ejecución de este archivo de diferencias puede producir tiempos de carga más cortos. Este preproceso puede escalarse para comparar archivos con millones de registros.

El preprocesador de diferencias de archivos no es una herramienta de diferencia de archivos de uso general. Si el contenido del archivo antiguo que está comparando existe en la base de datos de HCL Commerce, cargar el archivo de diferencias generado en la base de datos es el equivalente a cargar el nuevo archivo completo. Si el archivo de diferencias generado es más pequeño que el nuevo archivo, la carga del archivo de diferencias puede reducir el tiempo de carga total que es necesario para actualizar la base de datos para que coincida con el contenido del nuevo archivo.

También puede utilizar el preprocesador de diferencias de archivos como un proceso independiente de la carga real de datos en la base de datos. Puede utilizar este preproceso para generar un archivo de diferencias, pero no para cargar el archivo. Al poner en pausa este preproceso antes de que se cargue el archivo, el preprocesador no afecta a la base de datos ni al rendimiento del sistema HCL Commerce. Puede optar por cargar el archivo de diferencias más adelante. Cargue el archivo de diferencias con el programa de utilidad de carga de datos cuando el proceso de carga tenga el menor impacto en la base de datos y en el rendimiento del sistema de HCL Commerce.

La diferencia de archivos se implementa como un preprocesador del lector de datos. Se ejecuta al principio de la inicialización del lector de datos cuando se ejecuta el programa de utilidad de carga de datos. De forma predeterminada, hay dos preprocesadores de lector de datos que se proporcionan para ejecutar una diferencia de archivos; uno para comparar archivos CSV (CSVFileDiffPreprocessor) y otro para archivos XML (XmlFileDiffPreprocessor).

El preprocesador de lector de datos se especifica como el subelemento DataReaderPreprocessor dentro del elemento DataReader del archivo de configuración de objeto de negocio de carga de datos. Por ejemplo:
<_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>

No es necesario especificar explícitamente este preprocesador para ejecutar una diferencia de archivos. Para ejecutar la diferencia de archivos, debe especificar solo los valores de propiedad de columna clave para identificar exclusivamente registros en los archivos de entrada. También debe especificar la ubicación de archivo para el archivo anterior que desea comparar. Si incluye estas dos propiedades de diferencias de archivos necesarias en los archivos de configuración, el preprocesador de diferencias de archivos se ejecuta automáticamente al ejecutar el programa de utilidad de carga de datos. Para obtener más información sobre la configuración del programa de utilidad de carga de datos para ejecutar una diferencia de archivos, consulte Configuración del programa de utilidad de carga de datos para ejecutar un preproceso de diferencias de archivos.

Procedimientos recomendados

Al ejecutar el preprocesador de diferencias de archivos, asegúrese de tener en cuenta las siguientes sugerencias y recomendaciones:
  • Utilice la diferencia de archivos solo cuando los datos se actualizan y gestionan en el sistema de fondo y se cargan de forma rutinaria en la base de datos de producción.
  • Asegúrese de que el archivo de entrada antiguo se ha cargado satisfactoriamente. Asegúrese de que los errores encontrados en este archivo se corrigen en el archivo y en la base de datos de origen. Si corrige los errores en el archivo antiguo, pero no en la base de datos de origen, estos errores pueden existir en el archivo de entrada nuevo. Estos errores también podrían incluirse en el archivo de diferencias generado.
  • Asegúrese de que el programa de utilidad de carga de datos se configura para ejecutarse en modalidad de sustitución.
  • Si los archivos de entrada son archivos CSV, asegúrese de incluir una cabecera con las columnas apropiadas. Los cambios efectuados en esta cabecera entre los archivos pueden hacer que el nuevo archivo completo sea identificado como cambiado y se incluya en el archivo de diferencias.
  • Asegúrese de que no reorganizar las columnas o elementos XML. Si se cambia el orden, todos los registros se considerarán modificados y se incluirán en el archivo de diferencias. La diferencia de archivos utiliza una comparación de cadenas para comparar la entrada de registro completa en cada archivo. No es necesario clasificar el orden de los registros si se cambia el orden en el que aparecen los registros. El preprocesador puede identificar y omitir registros duplicados.
  • El preprocesador de diferencia de archivos puede realizar una comparación basada en columnas de modo que el preprocesador no necesite comparar cada registro mediante la serie de registro completa. Con la comparación basada en columnas, la disposición de las columnas o elementos XML en los archivos puede ignorarse. Puede configurar la comparación de modo que incluya o excluya columnas específicas. Utilice la comparación basada en columnas cuando los archivos de entrada incluyan columnas o elementos XML que estén organizados de forma diferente entre varios archivos de entrada.
  • Si los archivos incluyen columnas o elementos XML que incluyen valores que siempre son distintos y no afectan si un registro realmente se ha cambiado, excluya la columna de la comparación. Para excluir este tipo de columna, configure el preprocesador para que utilice la comparación basada en columnas y configure una lista de exclusión de columnas para el preproceso.
  • Si los archivos incluyen solo unas pocas columnas o pocos elementos que determinen si un registro realmente ha cambiado y debe actualizarse, puede comparar solamente estas columnas o estos elementos. Para incluir únicamente estas columnas, configure el preprocesador para que utilice la comparación basada en columnas y configure una lista de inclusión de columnas para el preproceso.
  • Asegúrese de que los archivos de configuración identifican los archivos correctos para la comparación. Por ejemplo, si se ejecuta rutinariamente cargas de catálogo y de inventario, asegúrese de no comparar un archivo de inventario con un archivo de catálogo. Si lo hace, todos los registros en el archivo nuevo se incluirán en el archivo de diferencias generado. Además, al ejecutar el preprocesador no se guarda ninguna hora de carga.

Limitaciones

Al ejecutar el preprocesador de diferencia de archivos para mejorar el rendimiento de carga de datos, debe comprender el comportamiento de diferencias de archivos y las limitaciones:
  • Debe ejecutar el preproceso de diferencias de archivos con el programa de utilidad de carga de datos en modalidad de sustitución. Este preproceso genera un error si está ejecutando el programa de utilidad de carga de datos en modalidad de inserción o de supresión.
  • La diferencia de archivos solo puede comparar dos archivos CSV o dos archivos XML. Si especifica que se comparen un archivo CSV y un archivo XML, se producen errores.
  • El archivo de diferencias generado puede contener registros que existen en la base de datos. El preprocesador compara solo los dos archivos de entrada. No hay ninguna comparación respecto a la base de datos para omitir registros del archivo de diferencias que existe en la base de datos.
  • El archivo de diferencias generado puede contener registros cargados con el archivo de entrada antiguo cuando el preprocesador encuentra cambios menores. Por ejemplo, si se cambia el orden de las columnas para los registros entre los archivos, el archivo de diferencias incluye estos registros, aunque no cambien los datos para estas columnas.
    Puede configurar el preprocesador para que utilice una comparación basada en columnas, que puede ignorar determinados cambios menores. Con esta comparación el preprocesador puede ignorar las siguientes diferencias menores entre registros y archivos:
    • Un valor de columna no incluye comillas en un archivo e incluye comillas dobles en el otro archivo, como por ejemplo para los símbolos CSV.
    • Un registro incluye una o más comas adicionales al final del registro en un archivo.
    • Los archivos incluyen las mismas columnas, pero en orden distinto.
  • El preprocesador de diferencia de archivos compara todos los datos en los archivos de entrada, incluso los datos de columnas cuya carga se ha excluido. Si el preprocesador encuentra diferencias debido a estas columnas, los registros pueden incluirse en el archivo de diferencias que son duplicados de los datos reales que se cargan con el archivo de entrada antiguo.

    Puede configurar el preprocesador para que ignore columnas específicas, o para que compare únicamente columnas específicas. Si configura el preprocesador para que ignore columnas específicas o para que compare únicamente columnas específicas, el preprocesador utiliza automáticamente la comparación basada en columnas.

  • La ejecución de una diferencia de archivos para archivos XML puede requerir más tiempo de proceso que una comparación de archivos CSV. Esta diferencia en tiempo de proceso se debe a que los archivos XML tienen un tamaño mucho más grande que los archivos CSV que contienen la misma cantidad de datos.
  • El preprocesador se comporta como si el archivo de entrada antiguo se haya cargado satisfactoriamente en la base de datos antes de ejecutar la diferencia de archivos. Si el archivo antiguo no se ha cargado satisfactoriamente, debe arreglar todos los errores encontrados durante ese proceso de carga y asegurarse de que el archivo antiguo se ha cargado. Si el archivo antiguo no se ha cargado, es posible que el archivo de diferencias no se haya cargado satisfactoriamente. La carga no satisfactoria puede depender de algunos registros en el archivo antiguo, que se supone que ya se han cargado.
  • Si un usuario cambia los datos en la base de datos de HCL Commerce una vez que se ha cargado el archivo de entrada antiguo, la carga del archivo de diferencias generado no será equivalente a la carga del nuevo archivo completo. Si utiliza el preproceso de diferencias de archivos, se recomienda no actualizar los mismos datos con otras herramientas de HCL Commerce, tales como el Management Center.
  • Si un aprobador de espacio de trabajo puede cambiar los datos después de cargar el archivo antiguo, no se recomienda ejecutar la diferencia de archivos en los datos que se cargan en el espacio de trabajo.
  • Si configura el preprocesador para que utilice la comparación basada en columnas, el preproceso de diferencia de archivos CSV puede tardar más en completarse.