【发布时间】:2016-06-14 01:13:49
【问题描述】:
在我的组织中,我们正在尝试使用 HIVE 或 PIG 作为替代方案
主要目标:减少处理时间
NETEZZA 处理时间:90 分钟
期待结束进程:30 分钟内
流程是如何工作的:
进程即将维护增量历史。有两个表history_table和new_table。历史表维护总历史和新
_table 有更新记录。所以每天更新的记录都会添加到历史表中。进程有非常复杂的存储过程(加入/删除/插入/更新)
相同的过程正在应用于多个表。每个历史表都有近数十亿条记录。
我的疑惑:
- HIVE/PIG 的性能是否优于 NETEZZA?
- 在 Hive 中的 UDF 是存储过程的一个很好的替代方案,因为我想为多个表创建通用进程(我可以将表名作为参数传递)?
- 对于具有多个条件、动态生成创建语句和异常处理的真正复杂的连接,哪个 HIVE 或 PIG 性能更好?
【问题讨论】:
-
一个UDF不是作为存储过程;这是一个函数。
-
Hive 和 Pig 都不擅长连接。甚至是简单的。
-
King Games 有一个有趣的参考:fr.slideshare.net/huguk/king-hug-uk >> 他们将 ETL 从 Hive 迁移到分析数据库(目前是 Exasol),因为它只是没有工作.
-
就“动态生成创建语句和异常处理”而言,我认为 Pig 或 Hive 对其中任何一个都没有很好的支持。至于 UDF,Pig 也有 UDF。他们表现更好吗?真的取决于您尝试优化工作负载的努力程度。
-
您要处理多少数据?你有多少台机器?
标签: hadoop hive apache-pig netezza bigdata