EXT_SORT
EXT_SORT сортирует полученные записи в соответствии с указанным ключом сортировки и копирует каждую из них на все подключенные выходные порты. Позволяет использовать несколько параллельных потоков для сортировки больших данных.
Порты EXT_SORT:
Тип порта | Номер | Обязательный | Описание | Метаданные |
---|---|---|---|---|
Input | 0 | да | Для входящего потока записей | Одинаковые метаданные на входных и выходных портах |
Output | 0 | да | Для отсортированных записей | |
1-n | нет | Для отсортированных записей |
Атрибуты EXT_SORT:
Атрибут | Обязательный | Описание | Возможные значения |
---|---|---|---|
sortKey | да | Список полей метаданных, по которым производится сортировка и в скобках - порядок сортировки. Наивысший приоритет сортировки имеет первое поле в последовательности. Порядок сортировки выражается отдельно для каждого ключевого поля. По возрастанию - `a` (от англ. ascending - восходящий) или по убыванию - `d` (от англ. descending - нисходящий). Порядок сортировки по умолчанию — `a` — по возрастанию. |
|
sortInMemory | нет |
При sortInMemory="true" выполняется внутренняя сортировка. По умолчанию | sortInMemory="true" |
runSize | нет |
Количество записей, сортируемых одновременно в памяти; размер одного буфера чтения. По умолчанию | runSize="15456" |
Пример. Сортировка данных.
Входные записи содержат имена файлов и их размер. Нужно отсортировать файлы по размеру, начиная с самого большого (descending – по убыванию). Метаданные содержат поля «FileName», «FileSize».
Входящие записи:
FileName | FileSize |
---|---|
file.txt | 2048 |
file.docx | 1048576 |
file.xml | 65536 |
Решение:
Ключ сортировки: sortKey="FileSize(d)"
Исходящие записи:
FileName | FileSize |
---|---|
file.docx | 1048576 |
file.xml | 65536 |
file.txt | 2048 |