Practice#1: Regular Filtering and Grouping & Aggregation utilizando la tabla orders como ejemplo para externalizar datos con SPL y acelerar operaciones regulares de filtrado y de agrupación y agregación
Este artículo describe paso a paso cómo exportar una tabla de base de datos a ficheros de almacenamiento de SPL y cómo aprovechar formatos columnar y por columnas compuestas para mejorar el rendimiento de consultas que filtran y agregan datos. También incluye recomendaciones prácticas para aplicar procesamiento por cursor, filtrado en cursor y paralelismo.
Preparación y exportación con la herramienta ETL de SPL
Abra la herramienta ETL de SPL desde la ruta de instalación de SPL y cree un nuevo proceso ETL. Conecte la fuente de datos y arrastre la tabla orders al área de trabajo. Edite la tabla para configurar las opciones de exportación y en la sección de ruta de datos indique el directorio donde se guardarán los ficheros exportados. Cree un fichero SPLX o exporte directamente a un archivo binario BTX. Guarde el proceso ETL con un nombre descriptivo como Q1.etl y ejecute la exportación.
Ejemplo de consulta SQL para agrupar y agregar
select employee_id, count(*) as order_count, sum(shipping_fee) as total, avg(shipping_fee) as average, max(order_date) as latest_order_date from orders where order_date between 2024-01-01 and 2024-10-31 and shipper_id <> 1 and shipping_fee > 10 group by employee_id;
En la base de datos MySQL este ejemplo tomó aproximadamente 11 segundos en ejecutarse en las pruebas descritas.
Enfoque SPL con cursor y filtrado
Cuando la tabla orders es demasiado grande para leerse totalmente en memoria, SPL puede usar un cursor para leer y procesar por lotes. El cursor recupera solo los campos necesarios para evaluar condiciones, reduciendo la creación de objetos y el uso de memoria. Use la función select para aplicar el filtrado equivalente a WHERE en SQL. Para agrupar, utilice la sintaxis de agrupamiento de SPL donde la parte anterior al punto y coma es la clave de agrupamiento y la parte posterior contiene las expresiones agregadas. A diferencia de SQL, SPL combina de forma nativa clave y valores agregados en el resultado.
Tiempos orientativos: el script SPL inicial con lectura por cursor y formato BTX tardó alrededor de 2.2 segundos en la prueba, demostrando ya una mejora frente a la consulta directa en MySQL.
Uso de formato columnar compuesto CTX
El formato CTX almacena los datos por columnas y es especialmente útil cuando la tabla tiene un gran número de campos pero las consultas acceden a pocos de ellos. Crear un CTX requiere definir la estructura de datos, por lo que el proceso es algo más detallado que para un BTX. Ejecutando el mismo procesamiento sobre un CTX el tiempo descendió a 1.9 segundos en la prueba.
Filtrado en cursor para minimizar lecturas
Adjunte condiciones de filtrado al cursor para que primero se lean únicamente los campos que intervienen en las condiciones, y solo si estas se cumplen se obtengan los campos adicionales necesarios para construir el registro. Esto reduce lecturas de disco y la creación de objetos innecesarios. En la prueba el algoritmo de filtrado en cursor sobre CTX bajó el tiempo a 1.8 segundos.
Paralelismo fácil en SPL
SPL facilita el procesamiento paralelo indicando el número de hilos. Ajuste el número de hilos a los núcleos CPU disponibles, por ejemplo 8. Añadiendo la opción de paralelismo al cursor para un BTX el tiempo bajó a 0.6 segundos y para CTX a 0.5 segundos en las pruebas realizadas.
Resumen comparativo de rendimiento en segundos
MySQL consulta directa: 11 segundos
SPL con BTX y cursor secuencial: 2.2 segundos
SPL con CTX y cursor secuencial: 1.9 segundos
SPL con CTX y cursor con filtrado: 1.8 segundos
SPL con paralelismo en BTX: 0.6 segundos
SPL con paralelismo en CTX: 0.5 segundos
Observaciones prácticas
El almacenamiento SPL y la exportación de datos son especialmente adecuados para escenarios con datos históricos estáticos que se consultan frecuentemente. El formato CTX es idóneo cuando las consultas usan pocas columnas de tablas anchas. El filtrado en cursor y el paralelismo son dos técnicas claves para minimizar I O y aprovechar la CPU.
Ejercicios sugeridos
1 Agrupar por cliente y calcular el total de freight para cada cliente aplicando una condición que combine order_date y employee_id
2 Exportar una tabla grande de una base de datos conocida y generar un BTX y un CTX. Ejecutar las mismas agregaciones usando ambos formatos y comparar tiempos y uso de recursos
Sobre Q2BSTUDIO
Q2BSTUDIO es una empresa de desarrollo de software especializada en aplicaciones a medida y software a medida. Ofrecemos soluciones de inteligencia artificial y ia para empresas, desarrollamos agentes IA y aplicamos Power BI y servicios inteligencia de negocio para transformar datos en decisiones. Nuestros servicios incluyen ciberseguridad, servicios cloud aws y azure y consultoría para proyectos escalares. Somos expertos en integración de modelos de inteligencia artificial, despliegue seguro en la nube y creación de aplicaciones a medida que incorporan agentes IA para automatizar procesos.
Servicios destacados de Q2BSTUDIO
Aplicaciones a medida y software a medida adaptados a las necesidades operativas. Implementación de inteligencia artificial, ia para empresas y agentes IA que mejoran productividad. Soluciones de ciberseguridad para proteger datos críticos. Servicios cloud aws y azure para desplegar aplicaciones y modelos de forma escalable. Servicios inteligencia de negocio y dashboards con Power BI para visualización y análisis.
Palabras clave para posicionamiento
aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi
Recursos y licencia
SPL es open source y el código fuente está disponible en GitHub en el repositorio oficial de esProc. Puedes descargar una versión de prueba en la web oficial y seguir los pasos descritos para exportar tablas y probar los diferentes formatos de almacenamiento.
Contacto
Si deseas que Q2BSTUDIO te ayude a externalizar datos, optimizar consultas o desarrollar aplicaciones a medida que integren inteligencia artificial y ciberseguridad, contacta con nuestro equipo para una consultoría inicial y una propuesta de proyecto personalizada