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

Колонночная

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