❗️System design — выбираем БД❗️
Уже имеем:
✅ Понятные и подтверждённые требования;
✅ "Скелет" будущей системы;
✅ Технологии интеграций между элементами.
Задача этапа:
Выбрать технологии баз данных, подходящих под задачи сервисов.
В том же формате: небольшой "универсальный" подход, который покроет большинство кейсов:
1️⃣ Хранение структурированных сущностей
Если вам необходимо хранить данные о сущности с конечным набором атрибутов, то выбирайте PostgreSQL.
2️⃣ Хранение неструктурированных сущностей
Если ваши сущности имеют динамический набор атрибутов, то также выбирайте PostgreSQL, но для хранения меняющегося набора атрибутов используйте JSONB формат.
3️⃣ Аналитика и отчетность
Для построения отчетов и агрегации метрик на больших объемах используйте Clickhouse или другие колоночные(столбчатые) СУБД, с которыми у вас больше опыта.
4️⃣ Кеширование
Если нужен быстрый кеш, то выбирайте Redis.
Для хранения сессий он тоже отлично подойдёт.
⚠️ Это надежная опора, а не истина в последней инстанции. Всегда смотрите на специфику задачи и свой опыт!
Предыдущие части:
Шаг 1: правильно понимаем условия задачи;
Шаг 2: строим скелет будущей системы;
Шаг 3: проектируем интеграции.
Системный анализ | Дмитрий Помаскин
Post #225
697