2016-12-30 7 views
1

Невозможно найти прямой ответ на это в любом месте. Я присоединяюсь к входящему набору данных к нескольким большим таблицам, которые раньше жили в таблицах MySQL за веб-службой. Я сбросил таблицы в плоские CSV-файлы в Hadoop, и я использую Pig для загрузки входящих наборов данных и табличных файлов и для выполнения соединений.Лучше читать из улья или плоского файла в Pig?

Это медленное движение, потому что есть несколько файлов таблиц, с которыми можно связаться, и потому, что сами файлы настолько велики. Я просто собираюсь для LEFT OUTER присоединяется к одному полю, ничего необычного.

Итак, на мой вопрос: есть ли какое-либо преимущество в производительности для загрузки CSV-файлов в таблицы Hive и использования HCatLoader внутри Pig вместо загрузки CSV-файлов? Не похоже, что Hive предоставляет любые преимущества, кроме SQL-подобного интерфейса, для запросов таблиц, что не имеет значения, когда я просто присоединяюсь к набору данных ко всему этому.

+0

Почему бы просто не загружать данные в Улей и не выполнять всю работу там? –

+0

Вы уверены, что загрузка - это ваше узкое место? Внешние соединения кажутся скорее вероятным кандидатом. – gobrewers14

+0

Гордон, у меня есть ограничения проекта, которые не позволят мне это сделать. @GoBrewers Соединения, безусловно, являются узким местом, просто интересно узнать о загружаемой части. – economy

ответ

0

По программированию Oreilly в Pig (Страница 165):

улей обеспечивает SQL, это лучший инструмент для выполнения традиционных данных аналитики. Большинство аналитиков данных уже знакомы с SQL, и инструменты бизнес-аналитики ожидают говорить с источниками данных в SQL. Pig Latin - лучший выбор при построении конвейера данных или проведении исследований необработанных данных.

Так что простыми словами, улей для лучшего запроса. PIG для построения конвейеров данных. PIG over Hive для оптимизации запросов.


PIG over Hive полезен, если вы собираетесь делать много объединений, где возможно использование разделов.

Если вы намерены делать только левые соединения, это может не потребоваться. Затем снова для дальнейших запросов и анализа улей было бы лучше.

Прочитано: difference b/w hive and pig и also read this.

+0

Возможно, мой вопрос был неясным. я определенно использую Pig, пытаясь определить, есть ли какая-либо польза для загрузки данных из таблицы Hive с помощью HCatLoader, а не просто непосредственно из CSV-файла. – economy

+1

@economy было бы полезно, если вы собираетесь использовать разделение и соединения на основе этого. –

+0

, поэтому преимущество использования HCatLoader в этом случае реализуется только в том случае, если я пытаюсь загрузить один или несколько конкретных разделов данных для соединения, иначе я не должен видеть разницу между загрузкой непосредственно из файла, правильно? Если да, это ответ, который я ищу. Если вы отредактируете ответ и укажете мне какую-нибудь документацию, которая поддерживает это, я соглашусь. – economy