很久没有发文章了,今天发表一下Hive的总结,如果那里有不足的欢迎指正,顺便再提一个问题(数仓建模中:细化程度越高,粒度级就越小,相反,细化程度越低,粒度级就越大,这个说法能打个比方比喻出来吗?)
必会的函数:
select:选择
having,where:筛选
sum,max,min,count+group by:聚合
sort by,oder by:排序-row number-分组排序
distinct:去重-某种情况下group by也可以做去重
join,left join,rigth join,union表连接
case...when end:条件
substr,concat,decimal(a,b):字符
data_add,last_day,next_day:日期
percentile:去百分比
union和union all的区别:
union和union all度是对数据集进行合并,但union可以进行去重,且结果可以排序,union all不可以
leftjoin和right join的区别:
left join以左表为基准,向右表匹配符合规则的字段,不符合为null。
HIVE和数据库的比较:
总的来说,hive和数据库除开拥有类SQL的HQL语言,其他并无相似之处:
存储位置不同,hive的底层是HDFS,数据库是本地。
hive的数据规模大,但延迟高,数据库延迟低,但数据规模小.
Hive的外部表和内部表:
内部表又被称为管理表,删除管理表的时候,会把它所有的目录都给删除掉,元数据和原始数据。
而删除外部表的时候,只会删除元数据,原始数据不会被删除.
Hive四个BY的区别:
sort by:分区内有序。
order by:全局有序,只有一个re

本文总结了Hive的相关知识点,包括必会函数、JOIN类型、Hive与数据库对比、表类型、窗口函数、分区和桶、自定义函数、数仓建模、数据倾斜解决方案以及HiveSQL优化等。同时提出了一个关于数仓建模细化程度与粒度级关系的比喻问题。
最低0.47元/天 解锁文章
659

被折叠的 条评论
为什么被折叠?



