数据仓库面试题
展开全部
一般数据仓库面试会面两轮,第一轮一般是sql技术面,第二轮就是 维度建模 和 数据治理 的问题。
一轮技术面(待补充):
1、数据倾斜:
数据倾斜一般产生的原因是数据在map端hash分配到reduce端时,某一个key的数量远大于其他的key,导致某一个reduce的处理时间较长。
1)key分布不均匀
2)数据本身就是如此
3)数据关联时没有把握好关联键
解决方案
1)参数调整:hive.map.aggr = true;hive.groupby.skewindata=true;
当存在数据倾斜时开启负载均衡,此时会生成两个MapReduce任务,第一个MR任务会将map端产生的key随机的分配到reduce,先进行一次聚合,第二个MR任务会将第一个任务的预处理结果作为输入,将相同的key分配到同一个reduce当中。
2)sql调整:在处理大量空值导致数据倾斜的情况下,可以先将空值附一个特殊值去处理,比如给一个随机数加字符串的方式,因为空值数据是关联不上的,不会影响后期处理。
2、order by,sort by,cluster by,distribute by的区别
1)order by是全局排序,排序过程在一个reduce中进行,在数据量较大时就会很慢
2)sort by是局部排序,排序结果在同一个reduce中使有序的
3)distribute by是将数据按照字段划分到一个reduce中,一般与sort by连用进行分组排序的作用
4)cluster by除具有distribute by功能外还具有sort by的功能
order by优化(阿里面试):
1)开启严格模式,order by之后添加limit子句
2)利用sort by,在每个reduce中先排序取出top项,再把预处理结果order by输出
3、hive中内部表和外部表的区别
1)在创建表的时候,内部表是将数据移动到数据仓库指向的路径,外部表仅记录数据所在的路径,不对数据的位置做任何改变。
2)在删除表的时候,内部表会将元数据和数据都删除,外部表只删除元数据。
4、列转行、行转列
1)列转行:lateral view explode(split('column_name',','))作为一个新表
2)行转列:concat_ws(',',collect_set(column_name))
5、mapreduce运行原理
6、数据仓库分层原理(阿里面试)
7、维度建模中三种事实表的应用场景(阿里面试)
二轮面试(待补充)
一轮技术面(待补充):
1、数据倾斜:
数据倾斜一般产生的原因是数据在map端hash分配到reduce端时,某一个key的数量远大于其他的key,导致某一个reduce的处理时间较长。
1)key分布不均匀
2)数据本身就是如此
3)数据关联时没有把握好关联键
解决方案
1)参数调整:hive.map.aggr = true;hive.groupby.skewindata=true;
当存在数据倾斜时开启负载均衡,此时会生成两个MapReduce任务,第一个MR任务会将map端产生的key随机的分配到reduce,先进行一次聚合,第二个MR任务会将第一个任务的预处理结果作为输入,将相同的key分配到同一个reduce当中。
2)sql调整:在处理大量空值导致数据倾斜的情况下,可以先将空值附一个特殊值去处理,比如给一个随机数加字符串的方式,因为空值数据是关联不上的,不会影响后期处理。
2、order by,sort by,cluster by,distribute by的区别
1)order by是全局排序,排序过程在一个reduce中进行,在数据量较大时就会很慢
2)sort by是局部排序,排序结果在同一个reduce中使有序的
3)distribute by是将数据按照字段划分到一个reduce中,一般与sort by连用进行分组排序的作用
4)cluster by除具有distribute by功能外还具有sort by的功能
order by优化(阿里面试):
1)开启严格模式,order by之后添加limit子句
2)利用sort by,在每个reduce中先排序取出top项,再把预处理结果order by输出
3、hive中内部表和外部表的区别
1)在创建表的时候,内部表是将数据移动到数据仓库指向的路径,外部表仅记录数据所在的路径,不对数据的位置做任何改变。
2)在删除表的时候,内部表会将元数据和数据都删除,外部表只删除元数据。
4、列转行、行转列
1)列转行:lateral view explode(split('column_name',','))作为一个新表
2)行转列:concat_ws(',',collect_set(column_name))
5、mapreduce运行原理
6、数据仓库分层原理(阿里面试)
7、维度建模中三种事实表的应用场景(阿里面试)
二轮面试(待补充)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询