150 млн строк
2. Я упорядочиваю по дате и выбрасываю повторы
3. Группирую по ClientID
4. Строю массивы из дат для каждого ClientID
5. Высчитываю дни между заходами
Все делаю в одной таблице MergeTree(). Запрос обрабатывается часами.
Как можно оптимизировать запрос?
До конца ни разу ещё не дошёл на таком кол-ве строк. За 3 час обработано 46 млн из 150 млн строк. Скорость 100 тыс. Стр/сек.
Варианты разные. Например, можешь сделать ReplacingMergeTree (либо, если агрегировать что-то надо, то AggregatingMergeTree) с ключом (ClientID, date)
4. Что там? arrayEnumerate? range? Надо без этих функций.
Обсуждают сегодня