hive和presto的一些对比

本文详细比较了Presto和Hive两种大数据处理工具的本质区别、执行速度及处理特定数据类型的性能。Presto作为内存型查询引擎,执行速度远超依赖磁盘IO的Hive,但在处理大表关联时可能遇到内存限制。两者在处理JSON类型数据和实现列转行操作上的语法也有所不同。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.本质区别

  • Hive是把一个查询转化成多个MapReduce任务,然后一个接一个执行。执行的中间结果通过对磁盘的读写来同步。然而,Presto没有使用MapReduce,它是通过一个定制的查询和执行引擎来完成的。它的所有的查询处理是在内存中,这也是它的性能很高的一个主要原因。

2.执行速度

  • presto由于是基于内存的,而hive是在磁盘上读写的,因此presto比hive快很多,但是由于是基于内存的当多张大表关联操作时易引起内存溢出错误

3.处理json类型的数据

  • presto处理如下:

        select 
                json_extract_scalar(xx['custom'],'$.position')
        from table

  • hive处理如下:

        select 
               get_json_object(xx['custom'],'$.position')
        from table

此外Presto还有一个函数json_extract是直接返回一个json串,根据需要自己需要选择函数

4.列转行

  • Hive

        select student, score from tests lateral view explode(split(scores, ',')) t as score;

  • Presto

       select student, score from tests cross json unnest(split(scores, ',') as t (score)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值