大数据面试题记录
Posted 男神睛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据面试题记录相关的知识,希望对你有一定的参考价值。
1、为什么要对数据仓库分层?
1、用空间换时间,通过大量的预处理来提升应用系统的用户体现(效率),因此数据仓库会存在大量冗余的数据。
2、如果不分层的话,如果源业务系统的业务规则发生变化将会影响整个数据清洗过程,工作量巨大。
3、通过数据分层管理可以简化数据清洗的过程,因为把原来一步的工作分多个步骤去完成,相当于把一个复杂的工作拆成了多个简单的工作,把一个黑盒变成了一个白盒,每一层的处理逻辑都相对简单容易理解,这样我们比较容易保证每一个步骤的正确性,当数据发生错误的时候,往往我们只需要局部调整某个步骤即可。
2、使用过Hive解析JSON串吗?
1、将json以字符串的方式整个入Hive表,然后通过使用UDF函数解析已经导入到hive中的数据,比如使用LATREAL VIEW json_tuple的方法,获取所需要的列名。
2、在导入之前将json拆成各个字段,导入Hive表的数据是已经解析过得。这将需要使用第三方的SerDe
3、sort by 和 order by的区别
order by 会对输入做全局排序,因此只有一个reducer (多个reducer无法保证全局有序)只有一个reducer,会导致当输入规模较大时,需要较长的计算时间。
sort by 不是全局排序,其在数据进入reducer前完成排序。因此,如果用sort by 进行排序,并且设置mapred.reduce.tasks>1,则sort by 只保证每个reducer的输出有序,不保证全局有序。
以上是关于大数据面试题记录的主要内容,如果未能解决你的问题,请参考以下文章
最强最全面的大数据SQL经典面试题(由31位大佬共同协作完成)