Mantener y limpiar los datos acumulados en grandes proyectos SAP Commerce Cloud es fundamental para garantizar un alto rendimiento y escalabilidad del sistema. Con el tiempo, el crecimiento de los datos provenientes de transacciones de clientes, catálogos de productos y registros del sistema puede ralentizar las operaciones si no se gestionan. Esta acumulación de datos provocará un menor rendimiento, mayores costos de almacenamiento y más pérdida de tiempo por parte de los desarrolladores y especialistas de soporte. Por lo tanto, mantener una instancia SAP hybris limpia permitirá ahorrar dinero, lo que hace que abordar este problema deba ser una prioridad para cualquier equipo de desarrollo de SAP Commerce.

Este artículo describe las mejores prácticas y las estrategias de limpieza clave para optimizar los entornos de SAP Commerce Cloud.

La plataforma ofrece dos formas para limpiar los datos no utilizados:

  • Framework de Mantenimiento: Este es el enfoque más antiguo requiere un esfuerzo de implementación significativo. Los desarrolladores deben crear estrategias personalizadas para obtener y procesar elementos y escribir código para definir la lógica de limpieza de datos.
  • Framework de Retención de Datos: Una solución más nueva y optimizada que aborda la mayoría de los casos de uso mediante la configuración. Permite definir reglas de retención que especifican la lógica para recuperar y eliminar elementos mediante consultas y acciones de eliminación estándar. Además, admite la inyección de lógica personalizada para procesar elementos cuando sea necesario.

Las siguientes secciones se centrarán en ejemplos que utilizan el marco de retención de datos.

Mantenimiento de Datos

Áreas y Estrategias Clave de Limpieza

Cronjobs

Los cronjobs automatizan tareas esenciales pero, con el tiempo, pueden sobrecargar el sistema. Borrar regularmente los registros de cronjobs obsoletos garantiza un funcionamiento sin problemas. Los tipos de jobs más comunes incluyen:

  • Importación/Exportación de ImpEx
  • Sincronización de Catálogos
  • Jobs de Solr

Para limpiar estas instancias de cronjob, se puede configurar un job de retención utilizando el siguiente ImpEx:

Copiar al portapapeles

*NOTA: Otro método para eliminar estos cronjobs es usar la CleanupCronJobStrategy del Framework de Mantenimiento heredado. Sin embargo, este enfoque requiere una pequeña personalización para ajustar la selección de cronjobs a evaluar..

Registros de Cronjobs (Logs)

Conforme pasa el tiempo, los registros de cronjobs también se van acumulando. Para limpiar los archivos de logs de cronjobs antiguos, hay que configurar un cronjob y un trigger específicamente para la eliminación de estos registros.

Es importante tener en cuenta que la plataforma no elimina automáticamente los archivos de logs antiguos.

Copiar al portapapeles

Si existen cronjobs que se ejecutan con frecuencia, es recomendable que se programen limpiezas de logs con mayor frecuencia. Esto ayuda a evitar una acumulación excesiva de ficheros de logs que deberán ser eliminados más tarde.

Historiales de Cronjobs

Al igual que los logs, los historiales de cronjobs pueden acumularse para los jobs que se ejecutan con mucha frecuencia. SAP Commerce incluye el cronJobHistoryRetentionCronJob cronJobHistoryRetentionCronJob, que limita la cantidad de entradas de CronJobHistory por cronjob. Este cronjob está habilitado de forma predeterminada; solo hay que asegurar de que esté habilitado y configurar un trigger.

Medias de Importación/Exportación de ImpEx

Cada importación o exportación de ImpEx genera la creación de al menos un objeto ImpexMedia. Estos archivos de medios permanecen en el sistema incluso después de que se eliminen los ImpEx originales asociados, ya que la plataforma no los elimina automáticamente. Se puede crear un job de retención para limpiar los medios antiguos.

Copiar al portapapeles

Saved Values

Backoffice utiliza los "Saved Values" para monitorear los cambios realizados a los elementos por los usuarios de la plataforma, que se muestran en “Últimos Cambios” en la pestaña Administración. Si el proyecto ha estado en ejecución durante un período prolongado o ha experimentado múltiples actualizaciones, es muy probable que la base de datos haya acumulado millones de registros SavedValues y SavedValueEntry .

Se puede configurar cuántas entradas por elemento se almacenan utilizando la siguiente propiedad:

Copiar al portapapeles

El último cambio siempre se muestra (si está disponible). Además, para liberar espacio en la base de datos, podemos configurar reglas de retención que eliminen entradas antiguas:

Copiar al portapapeles

Para hacerlo más cómodo, se puede crear una instancia de CompositeCronJob para que ambos cronjobs se ejecuten en el orden deseado teniendo que ejecutar solo un cronjob.

Copiar al portapapeles

Sesiones HTTP

En el caso de las tiendas basadas en el acelerador, las sesiones HTTP se pueden almacenar en la base de datos mediante la función de Conmutación por Error de Sesión HTTP . Para evitar problemas de rendimiento, es fundamental limpiar las sesiones obsoletas. Esto se puede lograr configurando otra regla de retención:

Copiar al portapapeles

Datos Transaccionales

Estos son los datos que SAP hybris crea cuando los clientes utilizan la tienda. Para acelerar la plataforma, se pueden eliminar algunos de estos datos no utilizados. Vamos a examinarlos con más detalle.

Carritos

Para eliminar carritos abandonados antiguos, SAP Commerce proporciona el siguiente cronjob OOTB: Cronjob de Eliminación de Carritos Antiguos

Solo tenemos que configurarlo según lo necesitemos, ya que es bastante sencillo.

Business Processes

La mayoría de las acciones de los usuarios en el Acelerador inician Business Processes, como restablecer contraseñas, realizar pedidos y administrar el cumplimiento de pedidos. Estos procesos se acumulan con el tiempo y deben eliminarse periódicamente para mantener la eficiencia del sistema.

Copiar al portapapeles

Si se han personalizado business processes, también hay que limpiar los datos relacionados. Por ejemplo, los EmailMessages se eliminan automáticamente al final de un proceso si se envían correctamente. Sin embargo, aquellos que no se envían permanecerán en la base de datos consumiendo recursos, pendientes de su eliminación futura.

Limpieza del Type System

Para mantener un sistema SAP Commerce Cloud optimizado, es esencial limpiar los datos y las configuraciones innecesarias en el sistema de tipos para garantizar un rendimiento óptimo y el estado de la base de datos. El sistema de tipos puede acumular entidades no utilizadas o redundantes con el tiempo, como Tipos Huérfanos y Atributos Huérfanos. Esta sección cubrirá cómo identificar y eliminar estos elementos huérfanos de un sistema SAP Commerce Cloud.

Tipos Huérfanos

Los tipos huérfanos se refieren a registros en la base de datos que ya no tienen referencias válidas. Esto ocurre típicamente cuando se elimina una entidad padre del items.xml, pero las entidades asociadas que la extienden permanecen en la base de datos. Los registros huérfanos pueden saturar la base de datos, lo que ralentiza el rendimiento de las consultas y aumenta los costos de almacenamiento.

La estrategia de Hybris Administration Console (HAC) es la herramienta principal para identificar y eliminar tipos huérfanos en SAP Commerce Cloud. Según las recomendaciones de SAP, los tipos huérfanos se deben limpiar manualmente mediante HAC. Esto se puede hacer desde Maintenance -> Cleanup -> Type system.

Tipos huérfanos en la consola de Hybris

Atributos Huérfanos

Además de los tipos huérfanos, otro problema común son los Atributos Huérfanos. Estos atributos generalmente se dejan atrás después de la refactorización del código o la eliminación de funciones no utilizadas. Si bien ya no cumplen una función en el sistema, aún existen en la base de datos, lo que puede confundir las consultas del modelo de datos e impactar el rendimiento.

El enfoque recomendado para eliminar atributos huérfanos es ejecutar scripts de Impex que los eliminen explícitamente de la base de datos. Sin embargo, es importante tener en cuenta que los atributos huérfanos solo se pueden eliminar del tipo de elemento original donde se definieron. El script de Impex no funcionará en tipos de elementos de subclases o extendidos.

Por ejemplo, el siguiente script de Impex elimina el atributo huérfano defaultPaymentMode del BaseStore itemtype:

Copiar al portapapeles

Auditoría Genérica

La función Auditoría Genérica registra todas las acciones de persistencia, como la creación, modificación y eliminación de elementos específicos. Mantiene un registro de cambios que rastrea cómo evoluciona un elemento. Sin embargo, la generación de estos datos puede acumularse rápidamente, lo que puede afectar potencialmente el rendimiento tanto de la base de datos como de la solución general.

De forma predeterminada, está habilitada para una amplia gama de tipos. Por lo tanto, la recomendación es revisar cuidadosamente y considerar desactivar cualquier tipo que no la necesite para el entorno de producción. Se puede activar o desactivar la auditoría de un tipo configurando la siguiente propiedad para cada typecode:

Copiar al portapapeles

Mejora el Performance de tu SAP Commerce

La limpieza periódica de datos mantiene el rendimiento y la escalabilidad de SAP Commerce Cloud. La implementación de las estrategias mencionadas anteriormente garantiza que tu sistema funcione de manera eficiente y esté preparado para un crecimiento futuro. Si necesitas ayuda con la limpieza y el performance de tu solución SAP Commerce, también puedes comunicarse con nosotros a través de nuestros Servicios de Desarrollo de SAP hybris, y los ingenieros de E-Turia ajustarán tu solución para maximizar su potencial.

ETuria square logo