ее положить в КХ так, чтобы оптимизировать запросы на подсчет числа уников по дням? Я попробовал сделать таблицу с партицией по дням, ключом (дата, идентификатор), потом надстроил распределенную таблицу с датой в ключе шардирования, вот код: https://pastebin.com/TRX9qjrN
Заполнил случайными 20млн строками, при запросе https://pastebin.com/5R0iQpZS отрабатывает за 0.569 сек, а на отдельном хосте за 0.034 сек. Почему такая разница? Есть ощущение, что КХ не использует знание того, что можно параллельно все рассчитать и делает какую-то лишнюю работу. Если вместо uniqExact посчитать max, то на распределенной таблице отработает за 0.033 сек, на отдельном хосте за 0.014, тут похоже на то, что все оптимально
Во время запросов не чистил кеш, как правильно это делать? Может ли он тут повлиять на скорость в случае max?
Я совсем не эксперт, но поч у вас нету ORDER BY?
uniqExact тянет весь Стейт уников на один хост. Возможно, такая "задержка" из за передачи по сети
спасибо! А нет идей как оптимизировать? чтобы не стейт тянулся, а конечный результат уже
Шардировать по колонке из юник стейта
Точно uniqExact нужен?
То есть, в данном случае по device_id? А не по групбайному fielddate
КХ умеет понимать шардирование?
Да, там правда нужно включать разные настройки
А где можно по-подробнее?)
Обсуждают сегодня