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