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
- 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
- Modalidad de carga de datos
- Preproceso de diferencia de archivos
- Opciones de validación
- Memoria caché de resolución de ID
- Tamaño de lote y recuento de compromisos
- Tamaño de almacenamiento dinámico de la máquina virtual Java (JVM)
- Latencia de red
- Ajuste de la base 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
- 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.
Memoria caché de resolución de ID
- 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.
-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.<_config:IDResolver className="com.ibm.commerce.foundation.dataload.idresolve.IDResolverImpl" cacheSize="1000000"/>
- 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
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.
<_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.