Size: a a a

2021 February 14

A

Alex in Data Engineers
Так они колумнарные форматы :)
источник

AZ

Anton Zadorozhniy in Data Engineers
K S
Ещё вопрос:
При слиянии данных, как избежать избыточности? Допустим в миллион записей с пятью полями нужно добавить ещё 3 поля, которые для всех записей одинаковые.
Есть ли какие-то структуры данных, которые позволяют определить идентичность кусков записи и хранить их более компактно?
Речь про какой-то формат хранения, СУБД или вообще?
источник

KS

K S in Data Engineers
Anton Zadorozhniy
Речь про какой-то формат хранения, СУБД или вообще?
Вообще.
Допустим читаю из паркета миллион записей типа
FirstName, LastName нужно добавить City, Region, Country для всех одинаковые значение типа Moscow, Region 85, Russia.
источник

KS

K S in Data Engineers
Энкодинг же будет для каждой колонки строить отдельный индекс, хотя мы знаем, что последние три колонки идентичны для всех записей.
источник

AZ

Anton Zadorozhniy in Data Engineers
K S
Вообще.
Допустим читаю из паркета миллион записей типа
FirstName, LastName нужно добавить City, Region, Country для всех одинаковые значение типа Moscow, Region 85, Russia.
В любых файловых форматах добавление делается через запись нового файла, и паркет пожмет ваши поля согласно типу (тут словарем видимо)
источник

AZ

Anton Zadorozhniy in Data Engineers
(Ну и собсно сама колоночность хранения даст основное сжатие)
источник

AZ

Anton Zadorozhniy in Data Engineers
В СУБД, там где есть настоящий ALTER и UPDATE, если вы добавляете колонки к таблице со значением по-умолчанию - это может не приводить к изменению хранимых структур, н тогда при следующем апдейте может быть больно
источник

KS

K S in Data Engineers
Я скорее о построении индекса по трём колонкам, чем три отдельных индекса.
источник

A

Alex in Data Engineers
Нету в паркете индексов
источник

A

Alex in Data Engineers
Вообще в бигдате индексы это редкий зверь
источник

AZ

Anton Zadorozhniy in Data Engineers
Индексы в бигдате действительно редко нужны
источник

KS

K S in Data Engineers
Если на входе паркет и на выходе тоже, тогда всё понятно. Но возможно, что на выходе можно или нужно использовать другой формат.
источник

AZ

Anton Zadorozhniy in Data Engineers
Многие СУБД вообще их не умеют, Snowflake например, и прекрасно обходятся
источник

K

KrivdaTheTriewe in Data Engineers
K S
Если на входе паркет и на выходе тоже, тогда всё понятно. Но возможно, что на выходе можно или нужно использовать другой формат.
Поиграйте с сжатием
источник

KS

K S in Data Engineers
Alex
Нету в паркете индексов
А как в паркете сжатие реализовано? Там ведь вроде идёт частотный анализ и строится подобие индекса?
источник

A

Alex in Data Engineers
Поколоночно, сверху может быть дикшнари, сверху снеппи/xz и тд
источник

A

Alex in Data Engineers
Что вы имеете в виду под частотным?
источник

KS

K S in Data Engineers
Типа m:1; o:2;s:1;c:1;w:1
источник

A

Alex in Data Engineers
Ну вот вы указали диншинари, назначают каждому слову индекс и внутри колонки отдельно словарь, отдельно числами что за слово
источник

KS

K S in Data Engineers
Alex
Что вы имеете в виду под частотным?
Анализируется частота с которой встречается каждая запись и по ней строится индекс или я что-то путаю.
источник