Hve相关问题总结
Hive是什么,有什么作用?
hive的架构,hive的原理
hive的优缺点,缺点的原因
元数据的配置;参数配置的三种方式,三种方式的优先级?
有哪些数据类型,支持类型转化吗?,怎么转,向下怎么转?
创建、显示、切换、修改、删除hive数据库怎么操作,位置在哪儿?
创建表有哪些字段?都是什么意思
内部表、外部表,怎么转换?
分区表是什么?有什么作用?,多分区怎么查询,union,和 union all区别, 二级分区怎么创建?
分桶表是什么?,和分区表对比,分桶表的原理是什么?
向表中装载数据(Load),通过查询语句插入数据(Insert)
Drop、Truncate、Delete 的区别
有哪些连接类型?连接、内连接、左外连接、右外连接、满连接。
多表连接要注意什么?,3个表按相同连接键连接,产生几个MapReduce job, 几个stage?
OrderBy、SortBy、DistributeBy、ClusterBy 的区别?
说说行列转换,他们的原理是什么?
行转列:
select t1.base, concat_ws('|', collect_set(t1.name)) name from (select name, concat(constellation, ",", blood_type) base from person_info) t1 group by t1.base;
列转行:
LATERAL VIEW udtf(expression) tableAlias AS columnAlias
窗口函数有哪些?怎么用
OVER() CURRENT ROW n PRECEDING、n FOLLOWING LAG(col,n,default_val)、LEAD(col,n, default_val) NTILE(n) RANK()、DENSE_RANK()、ROW_NUMBER()
说说自定义函数:UDF、UDTF、UDAF
执行一个hive sql时,非常慢,怎么解决(hive调优)
1、小表、大表 join 2、大表、大表 join 3、GroupBy、Count(Distinct) 4、行列过滤,分区分桶 5、合理设置Map数、小文件先合并、复杂文件增加Map数 6、并行执行、JVM重用 7、压缩 8、查看执行计划(Explain)