ClickHouse · ClickHouse 26.3
В Метрике почти каждый отчёт — это один счётчик (сайт) за диапазон дат: «просмотры counter 57012 за март». Таблица хитов растёт на миллиарды строк в сутки, и запрос должен читать только свой счётчик.
Нужно выбрать ключ сортировки, партиционирование и выражение для сэмплирования. Типичный запрос: SELECT count() FROM hits WHERE CounterID = 57012 AND EventDate BETWEEN '2026-03-01' AND '2026-03-31'.
В работе: Проектирование таблицы событий под отчёты «по одному клиенту за период».
Как проверяем
Движка ClickHouse в браузере пока нет, поэтому здесь не запрос, а выбор решения. Выберите один вариант. После ответа — почему каждый вариант верный или нет. Ответ один на подход: после него показываем разбор.
Источник: кейс Яндекса: таблица hits Метрики в примерах документации ClickHouse. Условие пересказано своими словами.
Давали на собеседовании?
Ответов пока мало — ваш поможет.
Какой вариант таблицы лучше подходит под отчёты «счётчик за период»?
- ORDER BY (EventTime)
- PARTITION BY CounterID
- PARTITION BY месяц, ORDER BY (CounterID, EventDate, intHash32(UserID))
- ORDER BY (UserID, CounterID, EventDate)
- PARTITION BY день, ORDER BY (CounterID, EventDate)