ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

58同城面试盘点

2022-02-22 00:01:52  阅读:203  来源: 互联网

标签:58 AST 同城 id 盘点 user SQL order name


58同城面试盘点

1.一张订单表,有user_name,order_id,order_time,order_amount 四个字段,怎么取出每个用户2021年10月以来第一个订单的金额(下单时间格式为’yyyy-MM-dd HH:mm:ss’)?

select user_name,
	order_id,
	order_amount
from(
	select user_name,
		order_id,
		order_amount,
		row_number() over(partition by user_id order by order_time) rowno
	from orders t11 where sub_string(order_time,7) >= '2021-10'
) t1
where t1.rowno = 1

2. 开窗函数有可能会造成什么问题?

数据倾斜,处理方法见:
https://blog.csdn.net/weixin_44902108/article/details/122973111?spm=1001.2014.3001.5501

3.hive sql是怎么转换成mr的?

(1)解析器(SQL Parser):将SQL字符串转换成抽象语法树AST,这一步一般都用第三方工具库完成,比如antlr;对AST进行语法分析,比如表是否存在、字段是否存在、SQL语义是否有误。
(2)编译器(Physical Plan):将AST编译生成逻辑执行计划。
(3)优化器(Query Optimizer):对逻辑执行计划进行优化。
(4)执行器(Execution):把逻辑执行计划转换成可以运行的物理计划。也就是MR/Spark。

附:详细版
1.Antlr(解析器的一种)定义SQL的语法规则,完成SQL词法,语法解析,将SQL转化为抽象语法树AST Tree
2.编译器遍历AST Tree,抽象出查询的基本组成单元QueryBlock(查询块),再遍历查询块,生成操作树OperatorTree
3.逻辑层优化器进行OperatorTree变换,合并不必要的ReduceSinkOperator,减少shuffle数据量
4.执行器遍历OperatorTree,翻译为MapReduce任务
5.物理层优化器进行MapReduce任务的变换,生成最终的任务

在这里插入图片描述
图片来自:https://www.cnblogs.com/w-j-q/p/14863331.html

4.hive执行计划主要看哪些内容?

这个真的很少看,不知道下面的对不对:
stage数量及依赖情况;
数据行数和所占空间数;
表扫描方式、使用分区列表;
join方式、运行模式,排序等。

5.数据量过大如何去重?

1.分桶–union all --并行(大数据操作中,分而治之思想很有惊喜,可惜当时没想起来)
2.其他方法还没想起来。

6.mysql索引的存储方式

详见:https://blog.csdn.net/weixin_44902108/article/details/109826193?spm=1001.2014.3001.5501

7.hive的数据导入方式有哪些?

我没有get到点,我说全量/增量?不是
sqoop?阿里的dataX或华为的Xdata?不是
哈哈哈,回来百度了下才知道,可能是说本地加载、hdfs导入、查询写入吧。


上面的回答有些不是特别周到或者会有错误、更优解,诚心欢迎指摘评论,谢谢!

标签:58,AST,同城,id,盘点,user,SQL,order,name
来源: https://blog.csdn.net/weixin_44902108/article/details/123057759

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有