IMPALA性能测试

impala与hive共享元数据,及hive中的表在impala中也有,并且可以做一些操作。但是impala抛弃了hive的底层MapReduce引擎,Impala自身包含三个模块:Impalad、Statestore和Catalog,除此之外它还依赖Hive Metastore和HDFS,其中Imapalad负责接受用户的查询请求,也意味着用户的可以将请求发送给任意一个Impalad进程,该进程在本次查询充当协调者(coordinator)的作用,生成执行计划并且分发到其它的Impalad进程执行,最终汇集结果返回给用户,并且对于当前Impalad和其它Impalad进程而言,他们同时也是本次查询的执行者,完成数据读取、物理算子的执行并将结果返回给协调者Impalad。这种无中心查询节点的设计能够最大程度的保证容错性并且很容易做负载均衡。

impala在2.0之后支持了很多函数,例如rank、dense_rank、rownumber、lag、lead、avg、sum、first_value、last_value、max、min等,这在使用上更加方便了,不需要自己写UDF

下面是简单的几个测试:
测试201405表 大约160G,9亿条数据
sum(value10):48.84秒

select row_number() over(partition by value10 order by value12) as rownum from 201405;
生成的行:4014080行
持续时间:6.1分钟

select row_number() over(order by value12) as rownum from 201405 limit 10;
持续时间:68.21秒

select value12,dense_rank() over(order by value12) as rank from 201405 limit 10; 
持续时间:67.15秒

你可能感兴趣的:(impala)