В чем разница между столбцовым хранилищем и хранилищем строк?

Большие данные

Это 20-й день моего участия в августовском испытании обновлений. Узнайте подробности события:Испытание августовского обновления

хранилище строк

  1. Данные хранятся в строках
  2. Запросы без индексации потребляют много операций ввода-вывода.
  3. Создание индексов и представлений требует определенного количества физического пространства и временных ресурсов.
  4. Перед лицом большого количества запросов база данных сложных запросов должна быть сильно раздута, чтобы соответствовать требованиям производительности.

столбчатое хранилище

  1. Данные хранятся в столбцах, каждый столбец хранится отдельно
  2. Доступ только к столбцам, участвующим в запросе, значительно сокращает системный ввод-вывод.
  3. Согласованный тип данных, схожие характеристики данных и эффективное сжатие

Преимущества столбчатого хранилища

  1. Сценарии анализа часто требуют чтения большого количества строк, но нескольких столбцов. В режиме хранения строк данные хранятся непрерывно в строках, данные всех столбцов хранятся в блоке, а столбцы, которые не участвуют в расчете, должны быть считаны во время ввода-вывода, причем операция чтения сильно усиливается. В режиме хранения столбцов необходимо считывать только столбцы, участвующие в расчете, что значительно снижает количество операций ввода-вывода. стоимость, что ускоряет запрос.
  2. Данные в одном и том же столбце относятся к одному типу, и эффект сжатия значителен. Хранилище столбцов часто имеет коэффициент сжатия в десять раз или даже больше, что позволяет сэкономить много места для хранения и снизить затраты на хранение.
  3. Более высокая степень сжатия означает меньший размер данных, и для чтения соответствующих данных с диска требуется меньше времени.
  4. Бесплатный выбор алгоритма сжатия. Данные разных столбцов имеют разные типы данных, и применяемые алгоритмы сжатия также различаются. Вы можете выбрать наиболее подходящий алгоритм сжатия для разных типов столбцов.
  5. Высокая степень сжатия означает, что память того же размера может хранить больше данных, а эффект системного кэша лучше.

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

Сравнение преимуществ и недостатков хранения строк и столбцов

Контраст хранилище строк хранилище столбцов
написать производительность Написание людей выполняется за один раз, с более высокой производительностью Разделение строки записей на один столбец для сохранения, количество операций записи значительно больше, чем при хранении строк, а фактическое затраченное время больше, чем хранение строк.
производительность чтения При чтении нескольких столбцов необходимо просмотреть другие нерелевантные столбцы, а накладные расходы ввода-вывода велики; при чтении всей строки данных ее можно читать последовательно, и производительность высока. При чтении нескольких столбцов нет необходимости читать нерелевантные столбцы, и производительность высокая, при чтении всей строки все столбцы нужно читать отдельно и собирать в строки, что имеет низкую производительность
Сжатие данных Каждая строка данных хранится вместе с низким сжатием Храните данные в единицах столбца, что делает данные одного типа хранимыми вместе, удобными для алгоритмов сжатия и высокой степени сжатия.
типичный представитель Текстовый файл, файл последовательности и т. д. ORC, ПАРКЕТ, Carbon Data и т.д.

Сравнение производительности хранилища строк и хранилища столбцов

  1. хранилище строк

1.gif

  1. хранилище столбцов

2.gif

Изображение взято с официального сайта ClickHouse, пожалуйста, обратитесь к моему блогу о ClickHouse——Что такое ClickHouse? В чем особенности ClickHouse?