OLTP, OLAP и колоночное хранение
Вопрос
Объясните, чем OLTP отличается от OLAP и почему для аналитики используют колоночные базы.
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
OLTP: короткие транзакции по ключу, нормализация, задержка
OLAP: сканы и агрегаты по большим объёмам
Колоночное хранение читает только нужные колонки
Сжатие и векторная обработка
Цена: дорогие точечные обновления, вставки пачками
Аналитику выносят из базы приложения
Что могут спросить следом
- Почему бы не сделать реплику PostgreSQL для аналитики?
- Как данные попадают из OLTP в OLAP?
Разбор
Образцовый ответ: «OLTP это база приложения: тысячи коротких транзакций, каждая читает или меняет пару строк по ключу, важны задержка и целостность, схема нормализована. OLAP это аналитика: запросов мало, но каждый сканирует миллионы строк и агрегирует несколько колонок. Для такой нагрузки колоночное хранение выгоднее: запрос читает только нужные колонки, а не всю строку, однотипные значения сжимаются в разы, агрегаты считаются пачками. Платой становятся точечные обновления: менять одну строку дорого, поэтому данные грузят пачками. Поэтому аналитику выносят в отдельное хранилище: она не мешает приложению, туда можно собрать данные из разных систем и хранить историю. Реплика PostgreSQL годится на старте, но на больших объёмах сканы будут медленными».
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.