Строчное и колоночное хранение: почему отчёты читают данные иначе

Объясняем, как расположение значений влияет на чтение таблицы, когда полезен каждый подход и почему один формат не заменяет другой.

Одинаковые плитки сложены в горизонтальные строки и вертикальные столбцы, один столбец выделен оранжевым.

Таблица выглядит одинаково, хранится по-разному

На экране таблица товаров выглядит привычно: каждая строка — один товар, столбцы — название, цена, остаток и другие признаки. Но внутри системы значения можно разместить по-разному. При строчном хранении сведения об одном товаре находятся рядом. При колоночном рядом собирают значения одного признака для множества товаров.

Это различие касается организации чтения и хранения, а не того, как пользователь видит таблицу. Microsoft описывает строчное хранение как физическое размещение данных по записям, а колоночное — как размещение по столбцам. Выбор связан с тем, какие вопросы системе задают чаще.

Зачем собирать значения одного столбца

Представьте отчёт, который считает среднюю цену среди миллионов товаров. Для ответа нужны прежде всего значения цены, а не полные карточки с описаниями и изображениями. Когда цены размещены вместе, система может читать меньше лишних данных. Документация Amazon Redshift объясняет, что колоночные блоки позволяют брать нужные поля для многих строк и часто лучше сжимать однотипные значения.

При этом результат зависит и от других частей системы: размера набора, способа отбора, оборудования и построения запроса. Нельзя обещать, что всякая колонка обязательно даст заданный прирост скорости. Колоночное хранение — удобная организация для определённого типа чтения, а не универсальное ускорение любой работы.

Условный пример поиска

Допустим, у условного магазина миллион продаж. Аналитик хочет узнать общую сумму по месяцам. Ему нужны даты и суммы, но не адреса доставки и комментарии к каждому заказу. Для большого чтения нескольких признаков колоночный подход часто уместен. Если же сотрудник ищет один конкретный заказ и должен сразу видеть все его поля, соседство значений одной строки может оказаться удобнее.

Документация Microsoft рекомендует строчные структуры для поиска отдельных записей и транзакционной нагрузки, а колоночные — для аналитических запросов, которые просматривают большие объёмы. Это рекомендация по характеру работы, а не жёсткое разделение всех баз на два лагеря.

Когда нужна целая запись

Операционные системы часто добавляют и меняют отдельные заказы. Для них важно быстро работать с небольшой группой конкретных записей и сохранять согласованность изменений. Строчное хранение естественно поддерживает такой сценарий, поскольку поля одной записи расположены вместе. В аналитике чаще изучают закономерности по многим записям и нескольким показателям.

Поэтому компания может держать текущие операции в одной системе, а для анализа готовить данные в другой. Зачем рядом существуют база операций и аналитическое хранилище, объясняет статья о разных системах для разных задач. Иногда внутри одного продукта сочетаются оба способа размещения.

Ограничения и выбор

Колоночный формат не избавляет от необходимости правильно обновлять данные, проверять смысл показателей и выбирать нужные поля. У него может быть своя цена: подготовка данных, дополнительные копии или неудобство частых изменений отдельных записей. Строчная система тоже может строить отчёты, особенно когда данных немного или поиск хорошо организован.

Сначала опишите типичный вопрос: нужна ли одна полная запись или расчёт по множеству записей и небольшому числу признаков? Затем оцените объём, частоту обновления и допустимую задержку. Если интересен пример файлового колоночного формата, есть отдельная статья о Parquet. Здесь же речь именно о принципе размещения значений.

Читайте также

Следующий шаг

Если хотите разобраться в теме глубже, посмотрите программу Архитектор данных. Сопоставьте её с задачами, которые вы решаете на работе или хотите освоить.

Архитектор данных
Курс
Новинка
Архитектор данных

Архитектор данных — это специалист, который проектирует системы хранения и обработки данных, выбирает правильные технологии под разные задачи и строит масштабируемую инфраструктуру.

С нуля
Теория и практика
Диплом по окончании
12 990
₽/мес
Узнать подробнее

Источники

Читайте также

Обучить команду или нанять специалиста по данным: как выбрать
46

Обучить команду или нанять специалиста по данным: как выбрать

Как руководителю определить, какие навыки развивать внутри команды, когда нужна новая роль и почему обучение и найм часто дополняют друг друга.
Вертикальное и горизонтальное масштабирование данных: в чём разница
46

Вертикальное и горизонтальное масштабирование данных: в чём разница

Когда системе добавляют мощность одного сервера, когда делят работу между несколькими и почему увеличение ресурсов само по себе не решает любую проблему.
Журнал изменений данных: как выяснить, кто и когда изменил набор
41

Журнал изменений данных: как выяснить, кто и когда изменил набор

Что можно узнать из журнала действий с данными, как он помогает разбирать ошибки и почему его записи не показывают всю историю сами по себе.

Занятия проходят
в Нова Дата СДО

Вебинары, практика и общение с преподавателем — в одном окне браузера.

Посмотреть интерфейс платформы
Календарь обучения в Нова Дата СДО
Курсы студента в Нова Дата СДО
Редактор кода для практики в Нова Дата СДО
Вебинары и расписание Ваши курсы Код в браузере
Нова Дата СДО — в реестре российского ПОРеестровая запись № 34931
Заявка отправлена
Отправим вам подборку курсов в течение 5 минут. С вами также свяжется наш специалист и даст карьерную консультацию.
Персональный промокод
На курс «Инженер по парсингу данных»
Введите код при оплате, чтобы применить скидку к программе.