Métodos recomendados para la carga de datos general

A continuación se indican los métodos recomendados para utilizar el programa de utilidad de carga de datos para cargar datos.

Configuración de las cargas iniciales

Para obtener más información sobre las configuraciones recomendadas durante las cargas iniciales, consulte Escenario: Carga inicial.

Configuración de las cargas delta

Para obtener más información sobre las configuraciones recomendadas durante las cargas delta, consulte Escenario: Carga delta.

Ejecución del archivo de script de carga de datos

Si ejecuta el programa de utilidad de carga de datos desde el contenedor de utilidades, considere la posibilidad de montar un directorio del sistema principal en un directorio dentro del contenedor. Coloque todos los archivos de carga de datos en un subdirectorio del directorio montado. Este enfoque garantiza que los archivos no se pierdan cuando otra imagen de Docker sobrescribe el contenedor. También puede ser más fácil editar archivos directamente en el sistema principal utilizando su editor favorito.

Al ejecutar el programa de utilidad, tenga en cuenta las siguientes opciones de línea de mandatos:
-DXmlValidation=false
Desactive la validación de XML si utiliza alguna sustitución de variables para los atributos enteros.
-D.level=FINEST
Active más rastreo en el archivo utilities_root\logs\wc-dataload.log.
Para las cargas de mayor tamaño, si especifica el nivel de rastreo FINEST, se crea demasiado rastreo en el archivo de registro. Puede activar el rastreo para un paquete, tal como se muestra en los ejemplos siguientes.
-Dcom.ibm.commerce.catalog.dataload.level=FINER
Nivel de registro más detallado para la información de catálogo.
-Dcom.ibm.commerce.foundation.dataload.database.level=FINE
Registrar problemas de SQL.
-Dcom.ibm.commerce.foundation.dataload.level=CONFIG
Registrar problemas de rendimiento de carga de datos.
-Dcom.ibm.commerce.price.dataload.level=FINER
Registrar problemas de carga relacionados con los precios
-Dcom.ibm.commerce.inventory.dataload.level=FINER
Registrar problemas de carga relacionados con el inventario.
-Dcom.ibm.commerce.member.dataload.level=FINER
Registrar problemas de carga relacionados con los miembros.
-Dcom.ibm.commerce.marketing.dataload.level=FINER
Registrar problemas de carga relacionados con marketing.
-Dcom.ibm.commerce.promotion.dataload.level=FINER
Registrar problemas de carga relacionados con las promociones.
-Dcom.ibm.commerce.pagelayout.dataload.level=FINER
Registrar problemas de carga relacionados con Commerce Composer.
  • Personalice el archivo de configuración de registro Java, utilities_root\ts.ear\XML\config\dataload\logging.properties. Por ejemplo, puede cambiar la vía de acceso del archivo de registro, el tamaño máximo del archivo de registro y el número de archivos de registros que puede haber en el ciclo. De forma predeterminada, solo puede tener un archivo de registro, y éste se puede sobrescribir cada vez que se ejecuta el programa de utilidad de carga de datos.

Preproceso de diferencia de archivos

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. Mediante el uso de este preprocesador puede comparar dos archivos de entrada, por ejemplo un archivo cargado anteriormente y una nueva versión de este archivo. El preprocesador genera un archivo de diferencias que sólo 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. 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.

Puede configurar el preprocesador de diferencias de archivos del programa de utilidad de carga de datos para comparar archivos por los valores en cada columna, en lugar de todos los registros, con objeto de identificar los registros cambiados. También puede configurar el preprocesador de diferencias de archivos para omitir columnas específicas cuando el proceso está comparando archivos.

Para obtener más información sobre este preprocesador, consulte Preproceso de diferencias de archivos de carga de datos.

Archivos de configuración del programa de utilidad de carga de datos

Hay tres tipos de archivos de configuración de carga de datos:
Archivo de configuración de orden de carga (wc-dataload.XML)
Puede tener varios archivos de configuración de orden de carga o un archivo de orden de carga que incluya todos los elementos de la carga. Si solo desea cargar un número reducido de elementos de carga, utilice la siguiente línea de mandatos cuando ejecute el programa de utilidad de carga de datos:
-DLoadOrder="loadItemName1, loadItemName2, loadItemName3"
Archivo de configuración del entorno (wc-dataload-env.XML)
Solo necesita una copia de este archivo de configuración.
Archivos de configuración de objeto de negocio
Generalmente un archivo de configuración de objeto de negocio se corresponde con un tipo de datos de entrada que carga un tipo de objeto de negocio. La convención del nombre del archivo es wc-loader-business object.XML. este archivo define los DataReader, BusinessObjectBuilder y BusinessObjectMediator utilizados para la carga de datos. También define todas las opciones de personalización.
Mantenga todos los archivos de configuración de carga de datos relativos al archivo wc-dataload.XML. Asegúrese de que los archivos de configuración especificados en el archivo wc-dataload.XML utilizan la vía de acceso relativa. Esta vía de acceso puede facilitar mover los archivos de configuración de una estación de trabajo a otra.

Configuración del archivo de orden de carga de datos (wc-dataload.xml)

Considere las siguientes configuraciones:
  • Especifique commitCount, batchSize, dataLoaderMode en el nivel LoadOrder, de modo que no deba especificarlos en cada nivel LoadItem.
  • Especifique el valor de commitCount de modo que sea superior o igual al valor de batchSize. El valor de commitCount es un múltiplo de batchSize.
  • Para minimizar el impacto en el entorno de producción, especifique commitCount y batchSize en 1. Si especifica un valor grande para commitCount y batchSize, mejorará el rendimiento de la carga de datos. Sin embargo, este valor grande commitCount y batchSize podría afectar a la base de datos y hacer que se bloqueen más filas y tablas de bases de datos durante un periodo de tiempo más largo.
  • Para facilitar la depuración de algunos errores SQL, especifique batchSize en 1 y active el rastreo de base de datos. Estos valores pueden ayudarle a determinar qué sentencia SQL o línea de entrada ha causado el error SQL. Si el valor de batchSize es superior a 1, la actualización de lotes JDBC se habilita. Con esta actualización de proceso por lotes habilitada, relacionar el error SQL con la línea de entrada o la sentencia SQL que ha causado el error puede ser difícil.
  • Ejecutar el programa de utilidad de carga de datos en modalidad de inserción puede mejorar el rendimiento de carga de las cargas iniciales de grandes cantidades de datos. Sin embargo, cuando se ejecuta el programa de utilidad de carga de datos en modalidad de inserción, el programa de utilidad no comprueba la base de datos antes de que el programa de utilidad cargue los datos de entrada. El programa de utilidad no determina si los objetos de datos que está creando existen en la base de datos antes de que el programa de utilidad intente cargar y crear los objetos de datos. Este comportamiento puede provocar que el proceso de carga falle cuando el programa de utilidad intente crear objetos de datos que existen en la base de datos.
    Por ejemplo, si el archivo de entrada es un archivo CSV que contiene una línea que crea un producto y una descripción del producto. Si el archivo también contiene una segunda línea que carga el mismo producto con una descripción en un idioma diferente, el proceso de carga falla. Puesto que el programa de utilidad crea el producto y la descripción en la primera línea, cuando el programa de utilidad encuentra la segunda línea, el programa de utilidad intenta crear de nuevo el producto. Puesto que el producto existe, la carga no se realiza. Para cargar estos datos, puede utilizar uno de los siguientes métodos:
    • Ejecute el programa de utilidad de carga de datos en modalidad de sustitución. En modalidad de sustitución, el programa de utilidad de carga de datos genera sentencias SQL de inserción, actualización o supresión, en función de los datos que se están cargando. Esta modalidad sustituye datos existentes que están incluidos en la base de datos por los datos de entrada.
    • Ejecute el programa de utilidad de carga de datos en modalidad de inserción, pero cargue por separado la información sobre el producto y la descripción. Utilice un archivo de entrada para cargar la información sobre el producto y un archivo de entrada distinto para cargar todas las descripciones.

Configuración del archivo de configuración del entorno de carga de datos (wc-dataload-env.xml)

Considere las siguientes configuraciones:
  • No especifique el elemento <_config:FilePath /> si todos los archivos de configuración son relativos al archivo wc-dataload.XML.
  • Cifre la contraseña de la base de datos en el archivo de configuración. Ejecute el programa de utilidad wcs-encrypt de la forma siguiente:
    1. LinuxAbra un shell de línea de mandatos en el contenedor de utilidades y vaya al directorio utilities_root/bin. Para obtener más información, consulte Ejecución de programas de utilidad desde Utility server Docker container.
    2. HCL Commerce DeveloperAbra una línea de mandatos y vaya al directorio WCDE_installdir\bin.
    3. Ejecute el programa de utilidad wcs-encrypt para conocer la cadena ASCII cifrada.
      • Linux./wcs-encrypt.sh
      • HCL Commerce Developerwcs-encrypt
    Puede ejecutar el programa de utilidad wcs-encrypt en el directorio utilities_root\bin para buscar la cadena ASCII cifrada: wcs-encrypt.bat/sh <plain password>
  • También puede dejar vacío el valor para la contraseña de base de datos. Cuando la contraseña está vacía, se le solicita que especifique la contraseña al ejecutar el programa de utilidad de carga de datos. Debe especificar la contraseña sin cifrar; por motivos de seguridad, la contraseña no se replica en la consola.
  • La configuración de IDResolver es opcional. Puede especificar el tamaño de la memoria caché del programa de resolución de ID. Para la carga inicial, especifique un tamaño de memoria caché grande, por ejemplo, 1 millón. Para la carga delta, especifique el tamaño de memoria caché 0. Si no especifica la configuración del programa de resolución de ID, el tamaño predeterminado de la memoria caché es 0.
  • En lugar de grabar en el código fuente el grabador de datos en cada archivo de configuración del objeto de negocio de carga de datos, especifique la clase de grabador de datos predeterminada en este archivo de configuración.
  • Establezca el tamaño de memoria caché para que el programa de resolución de ID sea 0 cuando ejecute cargas frecuentes que puedan incluir la misma información en cargas repetidas. Por ejemplo, cuando se ejecutan actualizaciones planificadas de los datos de catálogo que altera temporalmente datos existentes. Para obtener más información sobre la configuración de este tamaño de memoria caché y este archivo, consulte Configurar los valores de entorno de carga de datos.
  • Si se especifica un archivo de configuración de entorno en la línea de mandatos, toma prioridad sobre el elemento que existe en el archivo de configuración de entorno de carga de datos.

Configurar del archivo de configuración de objeto de negocio de carga de datos

Considere las siguientes configuraciones:
  • Si está cargando archivos en formato CSV, en lugar de codificar los nombres de columna CSV en el nodo <_config:Data> del elemento <_config:DataReader>, puede colocar todos los nombres de columnas en la primera línea del archivo CSV. A continuación deberá especificar firstLineIsHeader="true" en el elemento <_config:DataReader>.
    Nota: Esta configuración se aplica solo si se utiliza la interfaz de CSVReader como lector de datos.
  • Al definir la correlación o la configuración de la tabla en el elemento <_config:BusinessObjectBuilder>, si el valor es de los datos de entrada, no es necesario que especifique el atributo valueFrom. El valor predeterminado es valueFrom="InputData".
  • Si no desea que el programa de utilidad de carga de datos actualice todas las columnas cuando están cargando datos, puede configurar una lista de exclusión de columnas. La configuración de una lista de exclusión de columnas hace que el programa de utilidad de carga de datos evite cargar datos en cada columna de una tabla. Esta configuración de exclusión le brinda la posibilidad de evitar que se sobrescriban columnas si se sabe que las columnas ya están llenas de datos.

    Para obtener más información, consulte Configuración de una lista de exclusión de columnas.

    Cuando configure una lista de exclusión, puede configurar la lista con un parámetro opcional, forUpdateOnly="true". Si configura una lista de exclusión con este parámetro establecido en true, cuando se actualiza un registro de la tabla con un archivo de entrada que incluye cambios para una columna excluida, el programa de utilidad no actualiza el valor para la columna excluida con el valor del archivo de entrada. Si la misma operación de carga incluye datos para crear registros en la tabla, el programa de utilidad ignora la lista de exclusión e inserta los valores de archivo de entrada en todas las columnas para los nuevos registros.

  • Si carga archivos CSV que contienen espacios en blanco iniciales, puede evitar errores configurando el lector CSV de carga de datos para recortar la señal. Para ello, establezca la propiedad trimTokenWhiteSpace en true. Por ejemplo:
    <_config:DataReader className="com.ibm.commerce.foundation.dataload.datareader.CSVReader"
                        firstLineIsHeader="false" useHeaderAsColumnName="false">
      <_config:property name="trimTokenWhiteSpace" value="true" />
    </_config:DataReader>

Archivos de entrada CSV

Considere los siguientes consejos al editar o mantener los archivos CSV:
  • Por motivos de claridad y legibilidad, utilice la primera línea del archivo CSV como cabecera.
    <_config:DataReader className="com.ibm.commerce.foundation.dataload.datareader.CSVReader" firstLineIsHeader="true" >
    Puede utilizar un software de hoja de cálculo para abrir el archivo CSV y ver si los datos coinciden con el encabezado de la columna.
  • Para tener más flexibilidad al utilizar u omitir columnas opcionales o reorganizar las columnas, utilice la cabecera como nombre de columna, en lugar de codificar las columnas.
    <_config:DataReader className="com.ibm.commerce.foundation.dataload.datareader.CSVReader" firstLineIsHeader="true" useHeaderAsColumnName="true" >
    en lugar de:
    <_config:Data>
    	<_config:column number="1" name="Identifier" />
    	<_config:column number="2" name="Name" />
     	<_config:column number="3" name="ShortDescription" />
     	<_config:column number="4" name="LongDescription" />
     	<_config:column number="5" name="Thumbnail" />
     	<_config:column number="6" name="FullImage" />
     	<_config:column number="7" name="Delete" />
    </_config:Data>
  • Si desea utilizar software de hoja de cálculo para editar y guardar el archivo CSV, asegúrese de que utiliza un editor que pueda guardar en formato UTF-8. Por ejemplo, Open Office Calc. De lo contrario, el software de hoja podría cambie el formato del archivo CSV e invalidar los datos para el lector de archivos de este tipo (CSVReader). Por ejemplo, si tiene una columna de indicación de la hora en el archivo CSV, no guardar en formato UTF-8 puede cambiar el formato de los datos de indicación de la hora en función del entorno local. Los datos de indicación de fecha y hora reformateados podrían no ser válidos para utilizarlos con la carga de datos.
  • De forma predeterminada, la carga de datos solo da soporte al formato de indicación de fecha y hora estándar Java "yyyy-MM-dd hh:mm:ss.nnnnnn". El programa de utilidad de carga de datos también puede dar soporte a un formato de indicación de fecha y hora personalizado. Si ha personalizado el formato de fecha y hora en su archivo CSV, debe especificarlo en la configuración del elemento de carga, en el archivo wc-dataload.XML. Por ejemplo, puede especificar la siguiente fila en el elemento <_config:LoadItem>:
    <_config:property name="timestampPattern" value="yyyy-MM-dd HH.mm.ss" />
  • Los datos con formato CSV son muy flexibles y propensos a errores. La edición manual de datos delineados por comas puede dar lugar a una segmentación involuntaria o a errores de formato que pueden provocar que los datos no se puedan cargar o sean incorrectos.

Carga por ID exclusivo

Especificar el ID exclusivo es opcional cuando se utiliza el programa de utilidad de carga de datos. Si embargo, si especifica el ID exclusivo, evita el tiempo de proceso que es necesario para resolver el ID y el rendimiento mejora.

Invertir una carga de datos

Si desea invertir una carga, puede volver a ejecutar la misma carga con dataLoadMode="Delete" especificado en el elemento <_config:LoadOrder> en el archivo de configuración de datos de carga wc-dataload.XML. Si está invirtiendo una carga, especifique la fila de configuración siguiente en el elemento <_config:LoadOrder>:
<_config:property name="actionOnError" value="1" />
Esta fila de configuración garantiza que el programa de utilidad de carga de datos continúa el proceso tras un error de supresión no permanente. Esta continuación se debe a que ya no existen registros hijo dependientes debido a la supresión en cascada.

Ajuste del programa de utilidad de carga de datos

Para reducir cualquier impacto sobre el rendimiento al ejecutar el programa de utilidad de carga de datos, puede ajustar el tamaño de memoria caché Idresolver y los parámetros relacionados con el programa de utilidad. Para obtener más información, consulte Ajuste de rendimiento del programa de utilidad de carga de datos.