去哪儿数仓实习面试
岗位职责:
1、机票业务数据仓库的建设与优化以及日常数据需求开发。
2、有业务sense,理解并合理抽象业务需求,构建面向产品策略等相关的数据模型。
3、协助产品人员基于数据驱动产品迭代。
4、参与数据治理工作,提升数据易用性及数据质量,统一数据口径,制定数据标准化规则。
5、负责 ETL 流程的优化及解决 ETL 相关技术问题。
6、负责日常数据仓库的监控、分析、性能调优、故障诊断与排除等工作。
职位要求:
1、本科或以上学历,计算机相关专业:
2、熟悉数据仓库各类建模理论,以及数据仓库数据层级关系,具备数据仓库逻辑模型和物理模型设计经验。
3、熟练掌握 Java、Scala、Python、SQL、Shell 等一种或多种语言,具备编码能力。
4、理解 Hadoop MR、Hive、Flink、Spark 等常用组件工作原理及熟练使用。
5、熟悉数据标准管理,元数据管理,有数据治理相关经验优先。
一面
- 自我介绍
- 数仓分层是怎么样的 每层的功能
- DWD层有哪些表
- 数据倾斜有遇到过吗 怎么解决
- 自己扯到优化去了 具体说下优化
- 最后是两道sql题
- 后面反问,面试官对我有些什么建议,如果要通过接下来的面试或者是数仓面试
反问回:
- 之前做过的要梳理一遍 细节
- sql题刷完 多练练
- 框架原理 相关的知识概念 多了解了解
SQL题
订单表:flightorder 字段名: orderno --订单号,username --用户名 ,depcity --出发城市,arrcity --到达城市 ,flightno --航班号,depdate --起飞日期 ,orderdate --订单日期
1、统计下单最多的top100用户
select user_name,count(order_no) num from flight_order group by user_name order by num desc limit 100
2、按订单日期统计每天前100热门航线
select order_date, dep_city, arr_city, route_count from ( select order_date, dep_city, arr_city, count(*) route_count, row_number() over (partition by order_date order by count(*) desc) as row_num from flight_order group by order_date, dep_city, arr_city ) ranked where row_num <= 100 order by dep_date, route_count desc