Conector Aggregation
Descripción General
Sección titulada «Descripción General»El conector Aggregation almacena cargas entrantes en una ventana y emite una única carga agregada por cada volcado de ventana. Admite ventanas basadas en tiempo y en recuento con múltiples funciones de agregación por campo.
Tipo de Conector: MeddleAggregation
Ventana Tumbling
Sección titulada «Ventana Tumbling»Ventanas de tiempo fijas y no superpuestas. El búfer se vacía completamente en cada volcado.
{ "type": "MeddleAggregation", "config": { "windowType": "tumbling", "windowSize": 60000, "fields": [ { "key": "temperature", "function": "avg", "outputKey": "temperature_avg" }, { "key": "temperature", "function": "max", "outputKey": "temperature_max" } ] }}Cada 60 segundos, emite el promedio y el máximo de temperature recopilado durante la ventana, luego reinicia el búfer.
Ventana Sliding
Sección titulada «Ventana Sliding»Ventanas de tiempo superpuestas. Después de cada volcado, se retiene la segunda mitad del búfer, de modo que la siguiente emisión se superpone con la anterior.
{ "type": "MeddleAggregation", "config": { "windowType": "sliding", "windowSize": 60000, "slideSize": 30000, "fields": [ { "key": "pressure", "function": "avg", "outputKey": "pressure_avg" } ] }}Útil para promedios móviles más suaves donde cada emisión comparte la mitad de sus muestras con la ventana anterior.
Ventana Count
Sección titulada «Ventana Count»Vuelca en cuanto el búfer contiene countSize cargas, independientemente del tiempo transcurrido.
{ "type": "MeddleAggregation", "config": { "windowType": "count", "countSize": 100, "fields": [ { "key": "vibration", "function": "max", "outputKey": "vibration_peak" }, { "key": "vibration", "function": "count", "outputKey": "samples" } ] }}Emite una carga por cada 100 muestras recibidas.
Parámetros de Configuración
Sección titulada «Parámetros de Configuración»- windowType (obligatorio):
tumbling,slidingocount - windowSize: Duración de la ventana en milisegundos (obligatorio para
tumblingysliding) - slideSize: Intervalo de deslizamiento en milisegundos (usado con
sliding) - countSize: Número de muestras por ventana (obligatorio para
count) - fields (obligatorio, mínimo 1): Array de definiciones de campos de agregación
- groupByKeys: Lista opcional de claves de la carga por las que agrupar agregaciones
Definición de Campo
Sección titulada «Definición de Campo»- key: Clave de la carga de entrada de la que leer
- function: Una de
sum,avg,min,max,count,first,last - outputKey: Clave bajo la que se escribe el valor agregado
Funciones de Agregación
Sección titulada «Funciones de Agregación»- sum — Suma de los valores numéricos en la ventana
- avg — Media aritmética de los valores numéricos
- min / max — Valor numérico mínimo / máximo
- count — Número de cargas en la ventana
- first / last — Primer / último valor observado para la clave (cualquier tipo)
Los valores no numéricos se omiten para las funciones numéricas y se reportan como errores de discrepancia de tipo en el canal de errores.
Casos de Uso
Sección titulada «Casos de Uso»- Suavizar lecturas de sensores ruidosas con un promedio deslizante
- KPIs por minuto o por hora para dashboards
- Agrupar eventos por lotes antes de escribir en una base de datos o broker de mensajes
- Detección de picos sobre un número fijo de muestras
Ejemplo: Ventana Tumbling Multi-Campo
Sección titulada «Ejemplo: Ventana Tumbling Multi-Campo»{ "type": "MeddleAggregation", "config": { "windowType": "tumbling", "windowSize": 30000, "fields": [ { "key": "temperature", "function": "avg", "outputKey": "temperature_avg" }, { "key": "temperature", "function": "min", "outputKey": "temperature_min" }, { "key": "temperature", "function": "max", "outputKey": "temperature_max" }, { "key": "status", "function": "last", "outputKey": "status_last" } ] }}Mejores Prácticas
Sección titulada «Mejores Prácticas»- Elige
tumblingpara informes periódicos limpios;slidingpara tendencias más suaves - Usa ventanas
countpara flujos de alta frecuencia donde el tiempo no es la unidad natural - Mantén las ventanas suficientemente pequeñas para limitar la memoria pero suficientemente grandes para ser estadísticamente significativas
- Usa
first/lastpara arrastrar contexto no numérico (ej. el estado de la máquina) junto a los agregados numéricos
Conectores Relacionados
Sección titulada «Conectores Relacionados»- Trigger - Lógica condicional sobre valores agregados
- Anomaly Detection - Detectar valores atípicos
- Chart - Visualizar series agregadas