在上海的第八年,工作的第四年,今年我二十五岁,和理想的自己还相差甚远.
路漫漫其修远兮,溯洄从之,道阻且长,溯游从之,宛在水中央.
Part1.面试题
1.主流关系型数据库有哪些?
2.SQL的性能怎么优化?
3.表JOIN时候,底层有哪几种连接类型?
4.项目中对Hadoop和Hive了解?对离线数仓和数据集成ETL的了解?
5.数据存储格式有哪些?
6.离线数仓分层怎么分的?
7.用过哪些任务调度工具?shell调度脚本怎么设计怎么维护?
8.Hive中的内部表和外部表,使用场景?
9.使用Kettle集成数据时候,流程是什么,详细描述每一步?
10.数据通过网络传输时,怎么尽量提高传输速度?常用的对文件的压缩算法有哪些?如何选择压缩算法(区别)?
11.有三个很大的文件副本,分布在不同数据节点上,现在要做JOIN操作,在数据存储中可以采用哪种压缩算法合适?
12.介绍一下刚刚你回答的LZ4压缩算法的特点和使用?
13.离线数据包可以选用哪种压缩算法?为什么?
14.两张大表JOIN时候,出现了数据倾斜,怎么解决?
15.a表和b表,都很大,a表有id,value两个字段,b表id,value,a表id范围为1-5,其中id字段值为1的占了表99%,b表id值为1的占了80%,这样JOIN会出现数据倾斜,怎么处理?
16.用过哪些Hive数据倾斜调优参数?
17.HDFS文件太多了,占用了计算资源,影响服务器性能,在Hive中可以通过参数怎么处理?
18.Spark的使用和技术原理?介绍一下RDD有哪些?DAG调度原理?
19.Spark中的转化算子,举几个例子说
20.Spark的使用场景有哪些?
21.在ETL过程中,数据通过ADF增量导入到云端,数据通过主键更新,有哪些策略保证数据质量?
22.Hive中如何把一张用户表做成拉链表?具体实现的细节?
23.HiveSQL:一张有user_id,date两个列的表,求出连续登录7天的用户数?
24.Shell:要根据日期变量去定期扫描/log这个目录下的文件夹,看是否有app_log这个文件,每隔两小时去检查这个文件,如果生成的话就扫描第一行,并判断第一行是否包含ERROR,如果不包含就输出success,每隔2小时扫描一次,扫描不到就sleep 2小时
25.如果数据链路出现了异常,如何定位下游需要修改调整的表?
26.说说数仓分层设计的优点有哪些?
27.HiveSQL:一张包含了user_id和支付时间paytime的订单表,算出36小时时长内下单数 >= 2的user_id?
28.<偏向数据治理>某APP本月月活环比下降20%,请分析因素?
29.用过阿里云ODPS调度工具吗,说说使用上遇到过的困难以及怎么解决的?
30.Spark的SORT BY底层是怎么实现的?
31.Spark中的SORT BY为什么不会出现数据倾斜?
32.Hadoop任务从启动到结束的过程,详细描述一下?
33.HiveSQL: 一张包含了某个商品的价格price,日期daily的价格变动表,计算30天的价格滑动平均值?
34.HiveSQL<优化>:一张包含了转出人、收款人、转账金额的表,计算收款人的收款总金额并排序,这个表很大,怎么优化让计算速度更快?
点击查看代码
SELECT
receiver,
SUM(amount) AS total_received_amount
FROM (
SELECT
receiver,
amount
FROM transfers
-- 可以使用哈希函数或随机前缀来分散数据
-- WHERE HASH(receiver) % n = m -- n为分区数,m为具体分区
) t
GROUP BY receiver
ORDER BY total_received_amount DESC;