OLAP по произвольным dimensions
От: elmal  
Дата: 24.03.18 04:45
Оценка:
Есть задача:

Имеет таблицу на миллиард записей, количество столбцов в записи порядка 500. Потенциально в столбце может быть массив. Данные не изменяются. То есть строим одну большую таблицу, и далее над ней делается произвольная аналитика.

Нужно произвольно делать агрегации и группировки по произвольному набору столбцов (то есть) что то вроде sekect sum()... from big table group by (произвольное количество столбцов). Возможно с фильтрами предварительными, возможно без фильтров на всем наборе данных. Делать это нужно в реальном времени. Условие агрегации потенциально может быть весьма хитрым.

То есть по существу это OLAP. Но такой, что куб хрен построишь, ибо число dimensions до черта. У нас не получилось это сделать на более простой задаче.

Какие можете подсказать технологии, позволяющие решить эту задачу? Сейчас смотрю на Clickhouse, различные GPU database как основные кандидаты, плюс есть самописное кое что, неплохо себя показавшее на похожих задачах. Понятно, что будет кластер, но важна максимальная скорость на одной ноде. ИМХО одна нода на средненьком серваке должна влегкую выполнять произвольный запрос в пределах 10 секунд. Плевать на горизонтальное масштабирование из коробки — если нет, это не проблема достичь другими средствами. Если есть технологии, которые это смогут быстрее — отлично, вот именно они и нужны. Смотрел когда то на DataGrid вроде Ignite, как то не впечатлился — данные хрен влезают в память, а то, что влезает, агрегируются очень сильно не быстро.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.