大数据开发笔试题(一)

本文是一组关于数据库、Oracle、Hive以及SQL的面试题目,涵盖了数据仓库、表分区、索引、存储过程、数据倾斜解决方案、表关联方式、数据仓库与OLAP的区别等知识点,适合大数据开发人员复习和准备面试。
摘要由CSDN通过智能技术生成

1、Oracle 中下列哪个表达式值为 true?(D)
A、null = null
B、’’ = null
C、0 = null
D、以上三个都不为 true

2、Oracle 支持的表分区类型为?(ABD)
A、List
B、Range
C、HashMap
D、复合分区

3、下列对 Oracle 索引的说法正确的是?(AD)
A、索引在 Oracle 中通过 B+ 树存储
B、Oracle 只支持全局索引
C、Oracle 不支持分区索引
D、索引可以提高表的访问速度

4、对于 Oracle 存储过程和函数下列说法错误的是?(CD)
A、函数总是向调用者返回数据,并且一般只返回一个值
B、存储过程不直接返回数据,但可以改变输出参数的值
C、存储过程必须带有输出参数
D、函数不能定义输出参数

5、数据库中的对象包括?(ACD)
A、表
B、权限
C、视图
D、存储过程
在这里插入图片描述
6、Hive 的 sortby 和 orderby 的区别?
orderby 会对输入的数据做全局排序,只有一个 reduce,数据量较大时,很慢。sortby 不是全局排序,只能保证每个 reduce 有序,不能保证全局有序。

7、在 hive 中,什么情况容易出现数据倾斜?怎么解决?
倾斜原因:map 输出数据按 key Hash 的分配到 reduce 中,由于 key 分布不均匀、业务数据本身的特点、建表时考虑不周等原因造成 reduce 上的数据量差异过大。
(1) key 分布不均匀
(2) 业务数据本身的特性
(3) 建表时考虑步骤
(4) 某些 hql 语句本身就存在数据倾斜

解决方案:
(1) 参数调整:hive.map.aggr = true hive.groupby.skewindata = true 有数据倾斜的时候进行负载均衡,当选项设置为 true,生成的查询计划会有两个 MR Job。第一个 MR job 中,Map 的输出结果集合会随机分布到 Reduce 中,每个 Reduce 做部分聚合操作,并输出结果,这样处理的结果时相同的 group by key 有可能被分发到不同的 Reduce 中,从而达到负载均衡的目的;第二个 MR job 再根据预处理的结果按照 Group By Key 分布到 Reduce 中(这个过程可以保证相同的 Group By Key 被分布到同一个 Reduce 中),最后完成最终聚合操作。
(2) SQL 语句调整
A、选用 join key 分布最均匀的表作为驱动表。做好列裁剪

  • 7
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值