Open-Source-трибуна на HighLoad++

Сh-rollup

Сh-rollup

Проект Ch-rollup представляет собой специализированную библиотеку для автоматической и непрерывной агрегации временных рядов в базе данных ClickHouse. Основная идея заключается в оптимизации хранения и обработки метрик с временной привязкой: с течением времени необходимость в высокой точности данных снижается, и вместо хранения точек с маленьким интервалом становится целесообразно агрегировать их, например, до часового разрешения. Это позволяет существенно уменьшить объем хранимых данных без потери ценности аналитической информации. Типичный сценарий использования — системы мониторинга, где в течение первых недель важна детализация до минут, но по мере накопления истории данные можно уплотнять. Так, библиотека Ch-rollup автоматически собирает и агрегирует значения (RPS, RT и т. д.) за заданные промежутки и сохраняет результаты, экономя ресурсы хранилища. Сравнение с альтернативными подходами показало, что ch-rollup обладает рядом ключевых преимуществ: 1. Не требует изменения схемы — добавление новых колонок или изменение ключей не вызывает необходимости пересоздания таблиц. 2. Не усложняет SELECT-запросы — пользователи продолжают работать с одной таблицей без необходимости объединения данных из разных источников. 3. Гибкость настройки интервалов агрегации — можно легко менять период прореживания без влияния на структуру данных. 4. Минимальное влияние на производительность базы данных — не требует дополнительных ключей сортировки в таблице с данными.
Ссылка на проект