内部表的数据由hive管理,且存储在hive.metastore.warehouse.dir配置下的路径中;外部表的数据由HDFS存储,路径可以自己指定;
删除表时,内部表会把元数据及真实数据删除;外部表不删除真实数据。
可参考:面试官:你用过哪些窗口函数
可参考:面试官:“你们实际生产中hive用什么文件格式和压缩方式”
1、order by:对数据进行全局排序,只有一个reduce工作
2、sort by:在数据进入reduce前完成排序,一般和distribute by使用,且distribute by写在sort by前面。当mapred.reduce.tasks=1时,效果和order by一样
3、distribute by:类似MR的Partition,对key进行分区,结合sort by实现分区排序
4、cluster by:当distribute by和sort by的字段相同时,可以使用cluster by代替,但cluster by只能是升序,不能指定排序规则
桶是对数据某个字段进行哈希取值,然后放到不同文件中存储。
数据加载到桶表时,会对字段取hash值,然后与桶的数量取模。把数据放到对应的文件中。物理上,每个桶就是表(或分区)目录里的一个文件,一个作业产生的桶(输出文件)和reduce任务个数相同。
先写这点,后面有空再更新
#hive##面试题目##数据开发工程师#