Как мы ускоряли поиск в модели EAV для 13500 атрибутов через ClickHouse

Архитектура и масштабируемость

Миграции данных
PostgreSQL
Архитектурные паттерны
Архитектура данных, потоки данных, версионирование
ClickHouse
Поддержка и развитие legacy систем
СУЗ / системы управления знаниями

Доклад принят в программу конференции

Мнение Программного комитета о докладе

Хороший пример борьбы с зашкалившей когнитивной сложностью, доставшейся по наследству, пересмотром архитектуры.

Целевая аудитория

Архитекторы, разработчики систем с гибкой структурой данных.

Тезисы

Что делать, если нужна структура данных, которую необходимо менять прямо на проде? А если таких структур тысячи, атрибутов десятки тысяч, и множество из них — связи между объектами? Добавим сюда транзакционность, сложную валидацию, поиск по любым атрибутам среди десятков миллионов объектов.

Мы не понаслышке знакомы с этой ситуацией, ведь разрабатываем BPM-систему для всех строительных и эксплуатационных процессов мобильной сети МТС. Мы прошли путь от классической EAV-модели к CQRS-архитектуре, сохранив EAV для мастер-данных и метаданных в Postgres, но вынеся чтение и поиск в ClickHouse по денормализованным JSON-объектам. В докладе разберем плюсы и минусы такого подхода, расскажем, как боролись с неконсистентностью, ограничениями JOIN в ClickHouse, масштабируемостью и задержками. Поделимся конкретными практиками и извлеченными уроками, которые помогут вам избежать дорогостоящих ошибок в своих проектах.

11 лет в IT, последние пять из которых проектирует системы. Начинал как разработчик СОРМ для МТС, затем стал лидом и архитектором на системе сбора и потокового анализа метрик оборудования на сети, достигли сбора 100к+ метрик в секунду. Сейчас занимается перестроением BPM-системы, ведущей все процессы строительства и эксплуатации всей мобильной сети МТС. Увлекается настольным теннисом и шахматами.

Видео

Другие доклады секции

Архитектура и масштабируемость