Что такое колоночная база данных?
Колоночная база данных хранит данные каждой колонки независимо. Это позволяет считывать данные с диска только для тех колонок, которые используются в конкретном запросе. Недостатком является то, что операции, затрагивающие целые строки, становятся пропорционально более дорогими. Синонимом колоночной базы данных является система управления базами данных с колоночным хранением. ClickHouse является типичным примером такой системы.
Ключевые преимущества колоночных баз данных:
- Запросы, которые используют только несколько колонок из множества.
- Агрегационные запросы по большим объемам данных.
- Сжатие данных по колонкам.
Вот иллюстрация различий между традиционными системами с построчным хранением и колоночными базами данных при создании отчетов:
Традиционная построчная

Колоночная

Колоночная база данных является предпочтительным выбором для аналитических приложений, потому что она позволяет иметь множество колонок в таблице «на всякий случай», но не оплачивать стоимость неиспользуемых колонок во время выполнения запроса на чтение (традиционная OLTP база данных считывает все данные во время запросов, так как данные хранятся в строках, а не в колонках). Колоночные базы данных разработаны для обработки больших данных и хранения данных, они часто масштабируются фактически, используя распределенные кластеры недорогого оборудования для увеличения пропускной способности. ClickHouse делает это с помощью комбинации распределенных и реплицированных таблиц.
Если вы хотите углубиться в историю колоночных баз данных, узнать, как они отличаются от систем с построчным хранением и в каких случаях используются колоночные базы данных, смотрите гид по колоночным базам данных.