Продвинутые методы ускорения сортировки в ClickHouse

Материал из Wiki - Факультет компьютерных наук
Версия от 14:46, 15 октября 2018; Aapoludnitsin (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Компания Яндекс
Учебный семестр Осень 2018
Учебный курс 3-4-й курс
Максимальное количество студентов, выбравших проект: ?



Хорошим алгоритмом для сортировки массива чисел является radix sort. В ClickHouse есть реализация этого алгоритма. Алгоритм работает как для беззнаковых, так и для знаковых чисел, а также для чисел с плавающей запятой.

Но для сортировки данных в ClickHouse нужно учесть несколько особенностей: - нужна не непосредственная сортировка, а получение перестановки индексов; - часто данные нужно сортировать не по одному числу, а по кортежу; - причём, компонетны кортежа расположены в отдельных массивах (т. н. structure of arrays); - структура кортежа известна только в рантайме; - часто нужна не полная, а частичная сортировка (получение в нужном порядке первых N элементов); - есть сценарии, в которых требуется и в которых не требуется stable sort.

В таком виде оптимальный вариант на тему radix sort ещё никто не исследовал.