Ajuste de rendimiento del programa de utilidad de carga de datos

Los trabajos del programa de utilidad de carga de datos planificados pueden afectar al rendimiento de HCL Commerce. Puede reducir el impacto de este proceso ajustando el rendimiento de la carga de datos adecuada para su implementación.

Cuando contemple cómo ajustar el proceso de carga de datos, asegúrese de revisar los informes del resumen de carga de datos que se generan tras ejecutar el programa de utilidad de carga de datos. Estos informes se pueden utilizar para identificar qué elementos del proceso de carga de datos requieren un ajuste para mejorar el rendimiento.

Antes de empezar

Asegúrese de conocer y de estar familiarizado con los conceptos y las tareas siguientes que están relacionados con el programa de utilidad de carga de datos:
  • Ejecutar el programa de utilidad de carga de datos
  • Configuración del programa de utilidad de carga de datos

Paralelización de carga de datos

Cuando se utiliza con datos que poseen el formato CSV, la carga de datos se puede ejecutar con varias hebras del grabador. Esto puede mejorar drásticamente el rendimiento de carga al trabajar con grandes conjuntos de datos que se formatean teniendo en cuenta la paralelización.

Para obtener más información sobre la paralelización de carga de datos, consulte Paralelización de carga de datos.

Modalidad de carga de datos

El parámetro de modalidad de carga de datos se utiliza para establecer el tipo de proceso de carga que el programa de utilidad de carga de datos debe ejecutar. Puede establecer la modalidad insertar, reemplazar o eliminar en el archivo wc-dataload.xml para los datos que está cargando. Por lo general se utiliza Reemplazar, pero Insertar y eliminar pueden ser más rápidos. La ejecución del programa de utilidad en modalidad de inserción o supresión no necesita que se resuelvan tantos ID con el programa de utilidad de resolución de ID. Si utiliza Insertar o eliminar, asegúrese de que estas acciones sean las únicas operaciones de base de datos que el archivo CSV requiere.

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.

Opciones de validación

La configuración del programa de utilidad de carga de datos para validar los datos que se están cargando puede afectar el rendimiento de la carga de datos. La validación de los datos que está cargando se realiza en la base de datos de HCL Commerce. Si está validando muchos registros o el proceso de validación encuentra muchos registros no válidos, este proceso de validación puede afectar al rendimiento. De forma predeterminada, las siguientes opciones de validación están disponibles como propiedades configurables para el programa de utilidad de carga de datos:
attributeValueValidation
Indica si se debe validar el valor de atributo. El valor del atributo es obligatorio excepto en un producto y la relación de atributo de definición.
validateAttribute
Valida si un código de artículo y un producto tienen atributos de definición compatibles cuando el código de artículo se mueve bajo el producto. La lógica de validación determina si los atributos o los valores permitidos que se deben crear, actualizar o eliminar pertenecen a la tienda actual.
validateCatalog
Valida si se está creando más de un catálogo maestro para una tienda. Si la tienda soporta catálogos de ventas, la validación comprueba si una entrada de catálogo pertenece a más de una categoría maestra. La validación también comprueba si se puede establecer un valor permitido de atributo en el valor predeterminado en la tienda actual.
validateCatalogEntry
Valida si se deben comprobar los tipos del código de artículo y producto cuando la carga de datos añade un código de artículo bajo un producto. Esta comprobación se realiza para asegurarse de que el código de artículo es realmente un código de artículo y el producto es realmente un producto.
validateCatalogGroup
Valida si un grupo de catálogo pertenece a un catálogo especificado.
validateUniqueDN
Valida la exclusividad del nombre distinguido (DN) para identificar un usuario en un archivo CSV. De forma predeterminada, para optimizar el rendimiento de carga de datos, los usuarios del archivo CSV se identifican mediante el ID de inicio de sesión en lugar del nombre distinguido.
Si los datos que está cargando no necesitan que se produzca ninguno de los procesos de validación, asegúrese de que la propiedad configurable está establecida en false para asegurarse de que no se realiza ninguna validación.

Memoria caché de resolución de ID

Si el tamaño de memoria caché de resolución de ID es suficientemente grande, la memoria caché puede almacenar todos los ID necesarios para una tabla de base de datos en la que se están cargando los datos. Si el tamaño de esta memoria caché no es suficientemente grande para almacenar todos los ID necesarios, ninguno de los ID de memoria se almacena en la memoria caché. Cuando los ID no se almacenan en la memoria caché, el proceso de carga de datos necesita que los ID se resuelvan directamente en la base de datos. Cuando esté configurando el valor de memoria caché, tenga en cuenta el comportamiento siguiente:
  • Para almacenar en memoria caché todos los ID para una tabla grande, la memoria caché de resolución de ID puede necesitar una cantidad de tiempo significativa. Si carga menos registros en una tabla con muchos ID y registros individuales que se deben almacenar en memoria caché, resolver directamente los ID en la base de datos puede necesitar menos tiempo que almacenar en memoria caché todos los ID para una tabla entera y resolver los ID en la memoria caché. Puede configurar el tamaño de memoria caché para garantizar que la memoria caché es demasiado pequeña para almacenar los ID para tablas grandes, pero sigue siendo lo suficientemente grande para almacenar en memoria caché tablas más pequeñas a fin de resolver los ID en la memoria caché. Al reducir el tamaño de esta memoria caché, puede reducir el tiempo que se emplea almacenando en memoria caché los ID para una tabla entera en la que sólo está cargando unos pocos registros.
  • La memoria caché de resolución de ID se borra después de que se haya completado un elemento de carga en el archivo de configuración de orden de carga. Si está ejecutando varios archivos CSV, la memoria caché debe llenarse después de se complete cada artículo. Si varios archivos CSV cargan datos en las mismas tablas, considere la posibilidad de fusionar los archivos donde sea posible para reducir el tiempo de almacenamiento en memoria caché para volver a llenar los mismos datos de ID de tabla.
Para ajustar la memoria caché de resolución de ID, establezca un valor inicial que garantice que se puedan almacenar en memoria caché todas las tablas en las que está cargando datos. A continuación, establezca un segundo escenario de carga de datos con la memoria caché de resolución de ID establecida en 0. En ambas instancias, pase el parámetro -Dcom.ibm.commerce.foundation.dataload.idresolve.level=FINE cuando llame a la ejecución del programa de utilidad de carga de datos. Este parámetro añade los tiempos de resolución al rastreo, incluido el tiempo que se precisa para rellenar la memoria caché (si no está establecida en 0) y el tiempo que se precisa para resolver los ID en la base de datos o la memoria caché. Con estos tiempo, puede identificar si puede incrementar o reducir el almacenamiento en memoria caché y reducir el tiempo que se precisa para resolver los ID para los datos que está cargando.
El tamaño de la memoria caché de resolución de ID está establecida en el archivo de configuración de entorno de carga de datos. A continuación se muestra una declaración de ejemplo de una memoria caché que puede almacenar 1 millón de registros:
<_config:IDResolver className="com.ibm.commerce.foundation.dataload.idresolve.IDResolverImpl" cacheSize="1000000"/>
Para ayudar a ajustar la memoria caché de resolución de ID, revise el informe de resumen de carga de datos después de que se haya completado una carga de datos. Este resumen incluye el tiempo total que es necesario para que la resolución de ID resuelva y compruebe los ID para los objetos que se cargan. El programa de utilidad de carga de datos también se puede configurar para producir más información sobre el proceso de resolución de ID de carga de datos. Esta adición al informe de resumen incluye la información siguiente:
  • El tiempo que se tarda en captar y cargar los ID para una tabla en la memoria caché de resolución de ID
  • El número de entradas por tabla que se almacenan en la memoria caché
  • El número de coincidencias con la memoria caché por tabla para resolver los ID
  • El tiempo que se tarda en resolver los ID para una tabla directamente desde la tabla de base de datos
  • El número de coincidencias con la base de datos para resolver los ID para una tabla
Con esta información, puede identificar si sería más eficiente resolver y comprobar ID para una tabla respecto a la memoria caché del programa de resolución de ID o directamente respecto a la base de datos. A continuación, puede ajustar el tamaño de la memoria caché de resolución de ID según sea necesario o impedir que los ID de determinadas tablas se incluyan en la memoria caché. Para obtener más información sobre la información de resolución de ID que se puede incluir en el informe de resumen de carga de datos, consulte Verificar los resultados de la carga de datos.

Tamaño de lote y recuento de compromisos

Cambie los parámetros de tamaño de lote de programa de utilidad de carga de datos y de recuento de compromisos para reducir el efecto de la latencia de red y reducir la carga de proceso en Transaction server. El recuento de compromisos debe ser un múltiplo del tamaño de lote. El parámetros de recuento de compromisos especifica el número de filas que se vacían en una sola transacción antes de emitir un compromiso. Las transacciones de base de datos se cargan en lotes. Estos lotes se conservan en la memoria Java hasta que hay suficientes filas almacenadas para un vaciado. A continuación, el contenido del lote se almacena en la base de datos como un solo paquete de datos. Los lotes se almacenan en la base de datos hasta que se produce el siguiente compromiso y la base de datos carga los cambios.

Si aumenta el tamaño de lote, puede reducir el efecto que puede tener la latencia de red en el proceso de carga de datos. El aumento del tamaño de lote puede reducir el número de lotes que es necesario enviar a la base de datos. El tiempo de espera para la respuesta de base de datos también se puede reducir aumentando el tamaño de lote.

Si aumenta el recuento de compromisos, puede reducir la carga de proceso en Transaction server. Al aumentar el recuento de compromisos, aumenta la carga en la base de datos. El incremento del recuento de compromisos hace que se confirmen más registros en la base de datos en una sola transacción. Este aumento hace que queden menos datos no comprometidos almacenados en Transaction server y menos transacciones generales que se necesitan para comprometer los datos.

Los valores para los parámetros de tamaño de lote y recuento de compromisos se establecen en el archivo de configuración de orden de carga y suelen estar en el rango 500-1000. A continuación se muestra una declaración de ejemplo de los parámetros de tamaño de lote y recuento de compromisos:
<_config:LoadOrder commitCount="1000" batchSize="500" dataLoadMode="Replace">

Tamaño de almacenamiento dinámico de la máquina virtual Java (JVM)

Cuando ajusta la memoria caché de resolución de ID, puede ajustar la asignación de almacenamiento dinámico JVM. El tamaño de almacenamiento dinámico JVM debe estar proporcionado con la memoria caché de resolución de ID. Por ejemplo, si la memoria caché de resolución de ID es grande, especifique un tamaño de almacenamiento dinámico de JVM grande. Si la memoria caché de resolución de ID es grande, el programa de utilidad de carga de datos no resuelve el ID directamente desde la base de datos. Sin embargo, es posible que la memoria caché de resolución de ID utilice mucha memoria de almacenamiento dinámico de JVM. Para el tamaño de almacenamiento dinámico de JVM de 1 GB, establezca el tamaño del programa de resolución de ID a menos de 2 millones para evitar que se produzca un error de memoria insuficiente Java. Si encuentra una excepción de memoria insuficiente durante el proceso de carga de datos, es posible que el tamaño de almacenamiento dinámico de JVM asignado sea demasiado pequeño. Asegúrese de que el tamaño de almacenamiento dinámico de JVM es suficiente para dar cabida a la memoria caché de resolución de ID y los lotes que están almacenados en memoria. Establezca el valor para el tamaño de almacenamiento dinámico de JVM en los siguientes parámetros dentro del programa de utilidad de carga de datos, archivo dataload.sh: -Xms1024m -Xmx4096m

Latencia de red

Si el entorno está configurado para tener una gran distancia física entre servidores, el proceso de carga de datos puede verse afectado. La latencia de red puede afectar al tiempo de desecho cuando se ejecuta el programa de utilidad de carga de datos. El tiempo de desecho se puede ver en el informe de resumen de programa de utilidad de carga de datos. El tiempo de desecho incluye el tiempo que se necesita para transportar un lote, incluido el tiempo necesario para que responda la base de datos. Este tiempo de desecho también incluye la latencia de red. Si tiene un tiempo de desecho elevado, el sistema puede tener un rendimiento de la red o de la base de datos o ambos bajo. Si ajusta el entorno y el rendimiento de carga de datos no está en el rango de rendimiento necesario, puede ser necesario instalar HCL Commerce en un sistema local para mejorar el rendimiento del programa de utilidad de carga de datos.

Ajuste de la base de datos

Si ajusta la base de datos, puede mejorar el rendimiento del programa de utilidad de carga de datos reduciendo el tiempo que se necesita para confirmar los registros. Puede ver el tiempo que se necesita para confirmar los registros de datos cargados en el informe de resumen de programa de utilidad de carga de datos. Existen muchas herramientas de ajuste de rendimiento disponibles para mejorar el rendimiento de la base de datos. Para obtener más información sobre el ajuste de rendimiento de la base de datos, consulte: