Влияние одинакового значения для столбца в огромной таблице кустов в формате файла ORC / Parquet - PullRequest
0 голосов
/ 24 марта 2020

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

Позволяет Допустим, у меня есть таблица кустов паркета со столбцом 5 и столбцом 8, в котором в качестве значения всегда указывается «HELLO».

  1. Как файл сохраняется по отношению к OR C и паркету в этом сценарии.
  2. Имеет ли дублированные данные столбца, влияет ли это на производительность для запросов, используемых позже на этой таблице.

1 Ответ

0 голосов
/ 26 марта 2020

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

Для Parquet схема сжатия примерно равна:

на столбец, разделить на RowGroups (чаще всего по одному на файл, иногда больше, но обычно очень небольшое количество). Для RowGroup кодируйте значения (обычно это кодировка словаря или кодировка длины строки). Разделите закодированные строки примерно на границы 16 КБ / 1 МБ с именем "pages". Сжатие каждой страницы индивидуально с помощью универсального кода сжатия c, например, GZIP или ZStandard.

...