Собираю аналитические витрины на ClickHouse, где запрос по миллиардам строк возвращается за доли секунды. Начинаю не с железа, а с раскладки данных: описываю таблицы, задаю ключ сортировки и разбиение по партициям, выбираю движок семейства MergeTree под ваш профиль нагрузки. Тогда дорогие полные сканы исчезают сами собой.
Отдельно ставлю конвейер загрузки под реальный поток событий — брокер сообщений, файлы в объектном хранилище, поток изменений транзакционной базы. Закрываю пакетную вставку, борьбу с дублями и защиту от перегрузки, предагрегация через материализованные представления снимает нагрузку с чтения, а политики TTL сами убирают устаревшие партиции.
В конце связываю базу с вашими дашбордами, проверяю сходимость чисел с первоисточником и прогоняю нагрузочные тесты при боевой параллельности. Вы получаете задокументированную модель, повторяемые миграции и набор проверенных запросов, который команда развивает сама.
Коротко по составу:
— Модель, партиции и ключ сортировки под ваши сценарии
— Загрузка потоком или пакетами с контролем дублей
— Материализованные представления и TTL ради суб-секундных ответов
Отдельно ставлю конвейер загрузки под реальный поток событий — брокер сообщений, файлы в объектном хранилище, поток изменений транзакционной базы. Закрываю пакетную вставку, борьбу с дублями и защиту от перегрузки, предагрегация через материализованные представления снимает нагрузку с чтения, а политики TTL сами убирают устаревшие партиции.
В конце связываю базу с вашими дашбордами, проверяю сходимость чисел с первоисточником и прогоняю нагрузочные тесты при боевой параллельности. Вы получаете задокументированную модель, повторяемые миграции и набор проверенных запросов, который команда развивает сама.
Коротко по составу:
— Модель, партиции и ключ сортировки под ваши сценарии
— Загрузка потоком или пакетами с контролем дублей
— Материализованные представления и TTL ради суб-секундных ответов