1. Высококонкурентные запросы к детальным даннымТипичные запросы - история возвратов, операции мерчантов и сервис-провайдеров, другие обращения к большим массивам транзакций. Ранее этот контур опирался на традиционную базу данных, Impala и Kudu: при росте истории данных такая связка становилась сложнее в сопровождении и не обеспечивала требуемую задержку.
- Таблицы с первичным ключом размещались на SSD для предсказуемой производительности при высокой конкуренции запросов.
- Асинхронные материализованные представления использовались как управляемый слой ускорения: на таблице объёмом около 30 ТБ точечные запросы выполнялись за миллисекунды, а по сравнению с полным просмотром таблицы ускорение достигало примерно 20 раз.
- Elasticsearch использовался как дополнительный индекс для сценариев со сложной фильтрацией и поиском по нескольким условиям.
2. Оперативная и произвольная аналитикаК этой группе относились правила риск-контроля, операционные панели и разовые аналитические выборки. Ранее часть показателей приходилось рассчитывать заранее и помещать в транзакционные базы данных. Это снижало актуальность информации и затрудняло работу с новыми срезами данных.
- Для объёмных аналитических наборов применялся StarRocks на HDD, что позволяло балансировать стоимость хранения и производительность.
- Агрегирующая модель данных переносила часть расчётов на этап загрузки и уменьшала вычислительную нагрузку во время запросов.
- Colocate Join соединял связанные факты (отражение операций) и измерения. Производительность соединений выросла примерно в 3 раза.
- Настройка стоимостного оптимизатора (CBO) и статистики сократила время построения планов сложных запросов примерно на 80%.
3. Периодические и сложные расчётыЧасть задач оставалась по своей природе пакетной: расчёт таблиц измерений, ежедневная отчётность и сложные агрегаты. Здесь цель состояла не в том, чтобы объявить пакетную обработку ненужной, а в том, чтобы выполнять её быстрее, стабильнее и на той же аналитической платформе.
- Динамическое отсечение разделов и проталкивание предикатов сократили объём чтения данных в типовых отчётных заданиях на 73%.
- Настройка компактизации и параметров BE снизила фоновую нагрузку и помогла стабилизировать выполнение длительных заданий.
- Механизмы разделения ресурсов между арендаторами изолировали пакетные задания от интерактивной нагрузки.
- Мониторинг StarRocks был интегрирован с Grafana. Для части эксплуатационных событий уведомление формировалось в пределах нескольких секунд.