AGGREGATE
Получает записи через один входной порт, вычисляет статистическую информацию о записях входных данных и отправляет их на все выходные порты. Требует сортировки входных записей.
Порты AGGREGATE:
| Тип порта | Номер | Обязательный | Описание | Метаданные |
|---|---|---|---|---|
| Input | 0 | да | Для входных записей | Любые |
| Output | 0-n | да | Для результатов подсчетов | Любые |
Атрибуты AGGREGATE:
| Атрибут | Обязательный | Описание | Возможные значения |
|---|---|---|---|
| aggregateKey | нет | Ключ, по которому группируются записи | key1;key2 |
| mapping | да | Определяет способ присвоениея входных данных к полям выходных метаданных. Выражения внутри маппинга разделяются точкой с запятой (;), перед именем поля метадаты нужно ставить доллар ($), для присвоения использовать двоеточие и равно (:=). | $field1:=$field1;$res:=count(field2);$srznach:=avg($field3) |
| zeroCount | нет | Определяет обработку отсутствия данных для определенного в артибуте aggregateKey ключа. При zeroCount=true, в случае отсутствия записей на входе в ноду, генерируется 1 запись на выход. Если установлено значение false, ни одна запись не создается. | false (по умолчанию)/true |
Функции AGGREGATE:
| Функция | Описание | Тип входных данных | Тип выходных данных |
|---|---|---|---|
| avg | Возвращает среднее арифметическое. | любой числовой тип | number |
| count | Подсчитывает количество строк, учитывает null. | любой | number |
| countnotnull | Подсчитывает записи, если поле содержит null, оно не учитывается. | любой | number |
| countunique | Подсчитывает уникальные значения. Считает null уникальным значением. | любой | number |
| first | Возвращает первое значение группы. | любой | любой |
| firstnotnull | Возвращает первое значение, отличное от null. | любой | любой |
| last | Возвращает последнее значение группы. | любой | любой |
| lastnotnull | Возвращает последнее значение, отличное от null. | любой | любой |
| max | Возвращает максимальное значение. | любой числовой тип | любой числовой тип |
| md5 | любой | string | |
| median | Возвращает медианное значение. null значения не учитываются. | любой числовой тип | number |
| min | Возвращает минимальное значение. | любой числовой тип | любой числовой тип, соответствующий входному |
| modus | Возвращает наиболее часто используемое значение (null-значения не учитываются). Если кандидатов больше, возвращается первый. | тип | тип |
| sum | Возвращает сумму входных значений. | любой числовой тип | number |
| const | любой | string |
Пример. Заполнение атрибутов узла AGGREGATE для вызова функций avg, count, max, last и sum.
Атрибут aggregateKey: key1,key2
Атрибут mapping:
$avg:=avg($key1);
$count:=count($key1);
$countnotnull:=countnotnull($key2);
$countunique:=countunique($key2);
$first:=first($key1);
$firstnotnull:=firstnotnull($field2);
$last:=last($field2);
$lastnotnull:=lastnotnull($field2)>