Pig позволяет загружать данные и пользовательский код в любой точке конвейера. Это может быть особенно важно, если данные представляют собой потоковые данные, например данные со спутников или приборов.
Hive, основанный на СУБД, нуждается в том, чтобы данные были сначала импортированы (или загружены), а затем с ними можно было работать. Таким образом, если бы вы использовали Hive для потоковых данных, вам пришлось бы продолжать заполнять сегменты (или файлы) и использовать Hive для каждого заполненного сегмента, при этом используя другие сегменты для сохранения вновь поступающих данных.
Pig также использует ленивую оценку. Это упрощает программирование, и его можно использовать для анализа данных различными способами с большей свободой, чем в SQL-подобном языке, таком как Hive. Так что, если вы действительно хотите проанализировать матрицы или шаблоны в каких-то неструктурированных данных, которые у вас есть, и хотите провести интересные вычисления с ними, с Pig вы можете пройти довольно далеко, а с Hive вам нужно что-то еще, чтобы поиграть с результатами.
Pig быстрее импортирует данные, но медленнее в фактическом выполнении, чем дружественный язык СУБД, такой как Hive.
Pig хорошо подходит для распараллеливания и поэтому, возможно, имеет преимущество для систем, где наборы данных огромны, то есть в системах, где вас больше заботит пропускная способность ваших результатов, чем задержка (время, чтобы получить какие-либо конкретные данные результата).
person
swarb
schedule
22.03.2014