EXT_SORT

EXT_SORT сортирует полученные записи в соответствии с указанным ключом сортировки и копирует каждую из них на все подключенные выходные порты. Позволяет использовать несколько параллельных потоков для сортировки больших данных.

Порты EXT_SORT:

Тип портаНомерОбязательныйОписаниеМетаданные
Input0даДля входящего потока записейОдинаковые метаданные на входных и выходных портах
Output0даДля отсортированных записей
1-nнетДля отсортированных записей

Атрибуты EXT_SORT:

АтрибутОбязательныйОписаниеВозможные значения
sortKeyдаСписок полей метаданных, по которым производится сортировка и в скобках - порядок сортировки. Наивысший приоритет сортировки имеет первое поле в последовательности. Порядок сортировки выражается отдельно для каждого ключевого поля. По возрастанию - `a` (от англ. ascending - восходящий) или по убыванию - `d` (от англ. descending - нисходящий). Порядок сортировки по умолчанию — `a` — по возрастанию.

sortKey="x_coord(a); y_coord(d)"

sortInMemoryнет

При sortInMemory="true" выполняется внутренняя сортировка. По умолчанию false.

sortInMemory="true"
runSizeнет

Количество записей, сортируемых одновременно в памяти; размер одного буфера чтения. По умолчанию 8192.

runSize="15456"

Пример. Сортировка данных.

Входные записи содержат имена файлов и их размер. Нужно отсортировать файлы по размеру, начиная с самого большого (descending – по убыванию). Метаданные содержат поля «FileName», «FileSize».

Входящие записи:

FileNameFileSize
file.txt2048
file.docx1048576
file.xml65536

Решение:

Ключ сортировки: sortKey="FileSize(d)"

Исходящие записи:

FileNameFileSize
file.docx1048576
file.xml65536
file.txt2048