ClickHouse против PostgreSQL
Вопрос
Чем ClickHouse отличается от PostgreSQL и почему нельзя просто взять одну из них для всего?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
PostgreSQL построчный OLTP: транзакции, точечные чтения и изменения
ClickHouse колоночный OLAP: агрегаты по миллиардам строк, сжатие
ClickHouse любит вставки пачками и плохо подходит для частых UPDATE
Аналитика на основной БД мешает продуктовым запросам
Данные в ClickHouse доставляют из OLTP через очередь или CDC
Что могут спросить следом
- Как доставить события в ClickHouse?
- Почему одиночные INSERT в ClickHouse плохая идея?
Разбор
PostgreSQL хранит данные строками и заточен на короткие транзакции: найти заказ по id, обновить статус, атомарно списать деньги. ClickHouse хранит колонками: запрос «выручка по дням за год» читает две колонки из миллиардов строк, они сильно сжаты и обрабатываются векторно, поэтому это секунды. Зато обновления отдельных строк и одиночные вставки ему неудобны: каждая вставка создаёт кусок данных, их потом приходится сливать в фоне, поэтому пишут пачками. Тяжёлую аналитику на основной БД гонять опасно: она съедает ресурсы продуктовых запросов. Обычная схема: OLTP в PostgreSQL, события через Kafka в ClickHouse, отчёты оттуда.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.