2015-05-07 1 views
5

Я новичок в файле ORC. Я прошел через многие блоги, но не понял ясного понимания. Пожалуйста, помогите и уточните ниже вопросов.Hadoop ORC файл - Как это работает - Как получить метаданные

  1. Могу ли я получить схему из файла ORC? Я знаю, что в Авро может быть схема.

  2. Как это на самом деле обеспечивает эволюцию схемы? Я знаю, что можно добавить несколько столбцов. Но как это сделать. Единственное, что я знаю, создавая файл orc, - это загрузка данных в таблицу hive, которая хранит данные в формате orc.

  3. Как работает индекс файлов ORC? То, что я знаю, для каждого индекса полосы будет поддерживаться. Но поскольку файл не отсортирован, как он помогает искать данные в списке полос. Как это помогает в пропуске полос при поиске данных?

  4. Поддерживается индекс для каждого столбца. Если да, то не собирается ли он потреблять больше памяти?

  5. Как файл ORC с форматом столбцов может вписываться в таблицу hive, где значения каждого столбца хранятся вместе. тогда как таблица улов производится для записи записи по записи. Как оба будут соответствовать друг другу?

ответ

0

Эй я не могу помочь вам на все ваши вопросы, но я дам ему попробовать

  1. вы можете использовать утилиту filedump считывать метаданные с ORC-файла см here

  2. Я очень не уверен в эволюции схемы, но насколько я знаю, ORC не поддерживает эволюцию.

  3. ORC-индекс хранит сумму min и max, поэтому, если ваши данные полностью неструктурированы, вам, вероятно, все равно придется читать много данных. Но с момента последней версии ORC вы можете использовать дополнительный Bloom-Filter, который является более точным в устранении группы строк. Возможно, это тоже может быть полезно orc-user mailing list

  4. ORC предоставляет индекс для каждого столбца, но это всего лишь индекс легкого веса. Вы сохраняете информацию о min/max и сумме на числовых столбцах в файловом футбольнике, stripefooter и по умолчанию каждые 10000 строк. так что занимает не так много места

  5. Если вы храните свою таблицу в Orc Fileformat Hive, то с помощью специального скрипта ORC Recordreader выберем строки из столбцов. Преимущество столбчатых хранения является то, что вы не должны читать весь ряд

3

1. и 2. Использование Hive и/или HCatalog для создания, чтения, обновления ORC структуры таблицы в Шуе metastore (HCatalog только боковая дверь, чем позволяет свиньи/Sqoop/Спарк/все, чтобы получить доступ к metastore непосредственно)

2.ALTER TABLE команда позволяет добавить/удалить столбцы независимо от типа хранения, ORC включены. Но остерегайтесь отвратительной ошибки, которая может свернуть векторизованные чтения после этого (по крайней мере, в V0.13 и V0.14)

3. и 4. Термин "индекс" довольно неуместно. В основном это минимальная/минимальная информация сохраняется в нижнем колонтитуле полосы во время записи, а затем используется во время чтения для пропуска всех полос, которые явно не соответствуют требованиям WHERE, резко сокращая ввод-вывод в некоторых случаях (трюк, ставший популярным в столбцах магазинах, например Infobright на MySQL, но и в Oracle Exadata техники [название "сканирования смарт-карт" с помощью Oracle маркетинга])

5. улей работает с "строка магазин" форматов (текст, SequenceFile, AVRO) и форматы «хранения столбцов» (ORC, Parquet). Оптимизатор использует только определенные стратегии и ярлыки на начальной фазе карты - например, удаление полос, векторизованные операторы - и, конечно, фазы сериализации/десериализации немного сложнее с хранилищами столбцов.

Смежные вопросы