#hadoop #hive #hdfs #storage #orc
#hadoop #улей #hdfs #Хранение #орк
Вопрос:
Я знаю, что это, должно быть, глупый вопрос, но после нескольких часов поисков в Google я не могу получить ответ.
В обычном текстовом формате, таком как csv, легко понять, как работают разделители. В то время как в ORC, поскольку это двоичный файл, хранящийся в HDFS, что будет разделителем для поля? Мне сказали, что в ORC нет разделителя, но я сильно сомневаюсь в этом утверждении.
Даже если он хранится в виде групп строк, для одного столбца каждой группы строк может быть несколько полей данных, как каждое поле отличается от следующего? Как каждая строка отделяется от следующей строки? Есть ли разделитель для достижения этой цели?
Спасибо вам за любые комментарии!
Комментарии:
1. 50 лет назад никто не использовал разделители полей или разделители строк. Потому что файлы мэйнфреймов использовали записи фиксированной ширины с полями фиксированной ширины. А также потому, что перфокарты были в основном устройствами с фиксированной шириной (без клавиатуры, без экрана, без мыши, да).
2. Затем был создан VARCHAR (символьные строки переменной длины). Но по-прежнему нет разделителя: поле начинается с целого числа фиксированной ширины, которое указывает длину последующих данных. Т.Е. Сколько байтов вы должны пропустить, чтобы найти следующее поле. См . Также Понятие формата файла BIFF, который использовался в старых файлах Excel gaia-gis.it/gaia-sins/freexl-1.0.1-doxy-doc/html/Format.html
Ответ №1:
Нет разделителя. Он использует Stride / Stripes,
Тело файла разделено на полосы. Каждая полоса является автономной и может быть прочитана, используя только свои собственные байты в сочетании с нижним колонтитулом файла и Postscript. Каждая полоса содержит только целые строки, так что строки никогда не выходят за границы полосы. Полосы состоят из трех разделов: набора индексов для строк внутри полосы, самих данных и нижнего колонтитула полосы. Как индексы, так и разделы данных разделены столбцами, так что необходимо считывать только данные для требуемых столбцов.
См.: ORC