Открыть меню
683
286
3
15 тыс.
Wiki - Факультет компьютерных наук
Переключить меню настроек
Открыть персональное меню
Вы не представились системе
Ваш IP-адрес будет виден всем, если вы внесёте какие-либо изменения.

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

Материал из Wiki - Факультет компьютерных наук
Версия от 14:46, 15 октября 2018; imported>Aapoludnitsin (Новая страница: «{{Карточка_командного_проекта |name=Сервис по работе с геоданными |company=Яндекс |semester=Осень 201…»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Компания Яндекс
Учебный семестр Осень 2018
Учебный курс 3-4-й курс
Максимальное количество студентов, выбравших проект: ?



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

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

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