hive与trino(prestosql)的差异

1、字段相关

通过describe 获取的表字段信息,hive的string 在presto中为varchar

执行SQL时为了防止字段名为SQL关键字,hive使用`号包裹,而presto会报错,需改为双引号包裹字段名或表名

2、自定义UDF相关

注册自定义UDF,presto与hive的jar不能共用,两种写法两套体系,注册的SQL语法也不一致

3、侧视图

-- hive的侧视图

select movie,category,category_name from hive.test.movies lateral view explode(split(category,',')) tmp as category_name;

-- trino的侧视图

select * from hive.test.movies cross join unnest(split(category,',')) as t (category_name)

5、类型转换

hive使用cast() trino使用try_cast()

trnio虽然也提供了cast(),但是当类型转换不能正常进行时会报错终止运行,如select cast('ABC' AS BIGINT) 分别在两个平台上运行的结果

6、查看集合中的元素个数

hive使用size(),如select size(split('121212,434,dsadsa,dfds,f,yty,t',','));

trnio使用cardinality(),如select cardinality(split('121212,434,dsadsa,dfds,f,yty,t',','));

7、构造数组的方式

hive为array(),如:select array(3, 2, 5, 1, 2) ,读取数组的下标值使用 select array(3, 2, 5, 1, 2)[0],下表从0开始算

trino为array[],如array[3, 2, 5, 1, 2],读取数组的下标使用SELECT element_at(array[3, 2, 5, 1, 2],1);,下标从1开始算

8、获取时间戳

hive使用unix_timestamp(),精确到秒

而trino需使用to_unixtime(now()),精确到毫秒,精确到秒需使用

SELECT TO_UNIXTIME(CAST(FORMAT_DATETIME(FROM_UNIXTIME(TO_UNIXTIME(NOW())),'yyyy-MM-dd HH:mm:ss') AS TIMESTAMP))

或者

SELECT CAST(TO_UNIXTIME(CURRENT_TIMESTAMP) AS BIGINT),最后一位会根据毫秒数四舍五入

9、使用md5获取摘要

hive可直接使用select md5('AAAAA')

trnio需要使用 select lower(to_hex(MD5(to_utf8 ('AAAAA'))))

10、空值补全

hive可使用 SELECT NVL(NULL,'XYZ')

trino需要使用 SELECT coalesce(null,'XYZ')

11、对INSERT OVERWRITE的支持

hive 支持此覆写语法,

trino不支持insert overwrite 语法,只能先delete然后再insert into

12、修改表时删除分区数据的支持

ALTER TABLE hive.tetris.result_de3edffbfb22ba77_ds DROP PARTITION(my_dt='2024060314')

hive 支持此语法

trino不支持

相关推荐
心疼你的一切6 小时前
解密CANN仓库:AIGC的算力底座、关键应用与API实战解析
数据仓库·深度学习·aigc·cann
qq_12498707538 小时前
基于Hadoop的信贷风险评估的数据可视化分析与预测系统的设计与实现(源码+论文+部署+安装)
大数据·人工智能·hadoop·分布式·信息可视化·毕业设计·计算机毕业设计
十月南城11 小时前
Hive与离线数仓方法论——分层建模、分区与桶的取舍与查询代价
数据仓库·hive·hadoop
鹏说大数据13 小时前
Spark 和 Hive 的关系与区别
大数据·hive·spark
B站计算机毕业设计超人13 小时前
计算机毕业设计Hadoop+Spark+Hive招聘推荐系统 招聘大数据分析 大数据毕业设计(源码+文档+PPT+ 讲解)
大数据·hive·hadoop·python·spark·毕业设计·课程设计
B站计算机毕业设计超人13 小时前
计算机毕业设计hadoop+spark+hive交通拥堵预测 交通流量预测 智慧城市交通大数据 交通客流量分析(源码+LW文档+PPT+讲解视频)
大数据·hive·hadoop·python·spark·毕业设计·课程设计
AI架构师小马13 小时前
Hive调优手册:从入门到精通的完整指南
数据仓库·hive·hadoop·ai
数据架构师的AI之路13 小时前
深入了解大数据领域Hive的HQL语言特性
大数据·hive·hadoop·ai
Gain_chance14 小时前
33-学习笔记尚硅谷数仓搭建-DWS层交易域用户粒度订单表分析及设计代码
数据库·数据仓库·hive·笔记·学习·datagrip
十月南城16 小时前
Hadoop基础认知——HDFS、YARN、MapReduce在现代体系中的位置与价值
hadoop·hdfs·mapreduce