情况 -每天大约 3000 万行,CDH 5.2 集群(16 个节点,共享集群)中 Impala 管理的表中有 2 年的数据。
尝试将每日聚合逻辑放在一起,其中一天的数据被引入并聚合,并且该过程在随后的几天中一遍又一遍地重复。(通过黑斑羚)
这是一个一次性过程,用于创建整个 2 年窗口的聚合,随后由其他工具使用。
我想知道,这里的工具选择是否真的是正确的?我们不应该通过把这个工作交给 hive 来利用集群的力量(这样它就会触发 mapReduce 并且聚合可以相对容易地完成)?
[编辑]
澄清一下,数据已经在 Impala 表上,我所指的聚合正在此基础上完成。 从解决方案的角度来看,我的想法是,将这些数据提供给蜂巢表(而不是 impala 表)然后让 map-reduce 处理聚合会更好吗?
基于黑斑羚的聚合对我们来说真的很慢,尽管我们正在考虑调整它,但我想知道我们是否可以做一些差异?
摄取是按照您所说的通过 hive 完成的 - 但 impala 会为您提供更好的读取性能。因此,请考虑您的分析堆栈可以在 impala 上工作,而您的 ETL 将保留在蜂巢上。
在任何情况下,负载/ETL 时间都不是面向用户的,而分析/查询确实具有延迟关键特征。