美团优选大数据开发岗面试真题-附答案详细解析(一)

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云解析 DNS,旗舰版 1个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 美团优选大数据开发岗面试真题-附答案详细解析

公众号(五分钟学大数据)已推出大数据面试系列文章—五分钟小面试,此系列文章将会深入研究各大厂笔面试真题,并根据笔面试题扩展相关的知识点,助力大家都能够成功入职大厂!


image.png


此面试题来自牛客网友分享的美团优选一面,面试时长一小时。网友情况:海外水本,在某三线中厂工作2年。


参考答案由本公众号提供。如有错误,欢迎指正!


以下为面试过程中提问,岗位为大数据开发,根据提问内容看出,主要偏数仓方向


  1. 自我介绍


  1. 到北京工作的意愿


  1. SQL题,给一张城市和交易额表,一张城市对应省份表, 取出 省份 总 交易额大于 500 的 省份 的名字


  1. SQL题,基于刚才, 得出 省份 总 交易额 [0,500 ] , [500,1000 ] , [1000,+∞ ] 在以下三个区间的 省份 的 数量


  1. SQL题,还是基于刚才, 按从小到大的顺序得出每个城市的累计交易额,可以用窗口


  1. 根据分隔符划分字段,可以用正则表达


  1. 主要负责的产品


  1. 产品的指标如何知道带来多少价值


  1. 指标如何做到精准


  1. 就项目中提到的某个实体,讲一下他对应的属性有哪些


  1. 如果你建模的话,你会如何建模


  1. 主要都抽取哪些数据源,使用什么工具


  1. 描述一下抽取的内部逻辑,怎么实现的


  1. 除了工作,有去读什么书学习吗


  1. 你觉得flink和spark streaming有什么区别


  1. spark streaming相比flink有什么优点


  1. 有什么想问的吗


答案详细解析


1. 自我介绍


面试的时候,面试官说的第一句话就是:“介绍一下你自己吧。”


很多人真的很实诚的就只说一句:“我叫xx,来自xx,今年xx岁。”然后双方冷场。


这样的自我介绍还不如前段时间流行的一句话:“我叫xx,我喜欢唱跳、rap、篮球。”起码你还让面试官知道了你的特长。


所以这里就需要你用最短的时间让面试官记住你,突出自己的优势、有论证力的说服对方。


原则如下:不要大段背诵简历内容;不要说流水账,内容冗长;自我介绍时间尽量控制在一分钟左右。


那么怎么在最短时间内满足以上三条。


罗振宇说过:“笨拙的人讲道理,而聪明的人会说故事。”


所以面试时我们要摆脱常规回答,学会“讲故事”。那故事怎么讲,记住以下八个字,将自己的经历或想法套进去:


  • 目标:就是我想要做什么,我想要成为什么样的人;
  • 阻碍:做这件事的难点是什么,有哪些“质疑”点;
  • 努力:为了克服难点和“质疑”,我做了哪些事情;
  • 结果:通过我的努力,我现在获得了什么样的成就。


有时间了针对 自我介绍 我再详细的讲解下,这部分还是很重要的,因为这部分就是“推销”自己,给自己打广告的时间。


2. 到北京工作的意愿


招人肯定是希望找到一个踏实,稳定的人,而不是那种来了几天或一段时间就走的人。


面试官问你这个问题,一是在看你大概能在公司呆多久,二是看公司是否有必要培养你或者录用你。


所以回答时一定要表达出你一定能来北京并且能长时间待下去(即使你不是这样),具体回答发挥个人想象。


3. SQL题,给一张城市和交易额表,一张城市对应省份表, 取出 省份 总 交易额大于 500 的 省份 的名字


为了便于理解,根据上面的问题,我们先构造这两张表:


城市交易额表 business_table


city_num:城市编号


gmv:交易额


city_num gmv
1001 210
1001 90
1002 250
1003 200
1004 700
1005 350
1005 150
1006 250
1007 150


城市对应省份表:province_table

province_num:省份编号

province_name:省份名称

city_num:城市编号


province_num province_name city_num
11 a 1001
11 a 1005
12 b 1002
12 b 1003
13 c 1004
13 c 1006
13 c 1007


根据以上表,sql 语句如下(以下仅为其中一种写法,仅供参考)


SELECT MAX(tmp.province_name)
FROM (
  SELECT bt.city_num, bt.gmv, pt.province_num, pt.province_name
  FROM business_table bt
    LEFT JOIN province_table pt ON bt.city_num = pt.city_num
) tmp
GROUP BY tmp.province_num
HAVING SUM(tmp.gmv) > 500;


4. SQL题,基于刚才, 得出 省份 总 交易额 [0,500 ] , [500,1000 ] , [1000,+oo ] 在以下三个区间的 省份 的 数量


参考 sql 语句如下:


SELECT 
  COUNT(CASE 
    WHEN tmp2.pro_gmv >= 0
    AND tmp2.pro_gmv < 500 THEN tmp2.pro_name
    ELSE NULL END) AS gmv_0_500,
  COUNT(CASE 
    WHEN tmp2.pro_gmv >= 500
    AND tmp2.pro_gmv < 1000 THEN tmp2.pro_name
    ELSE NULL END) AS gmv_500_1000, 
  COUNT(CASE 
    WHEN tmp2.pro_gmv >= 1000 THEN tmp2.pro_name
    ELSE NULL END) AS gmv_1000_
FROM (
  SELECT MAX(tmp.province_name) AS pro_name, SUM(tmp.gmv) AS pro_gmv
  FROM (
    SELECT bt.city_num, bt.gmv, pt.province_num, pt.province_name
    FROM business_table bt
      LEFT JOIN province_table pt ON bt.city_num = pt.city_num
  ) tmp
  GROUP BY tmp.province_num
) tmp2;


5. SQL题,还是基于刚才, 按从小到大的顺序得出每个城市的累计交易额,可以用窗口


参考 sql 语句如下:


# 既然面试官让用窗口函数,那咱们就别客气了
SELECT city_num, gmv
FROM (
  SELECT DISTINCT city_num, SUM(gmv) OVER(PARTITION BY city_num) AS gmv
  FROM business_table
) tmp
ORDER BY gmv;


6. 根据分隔符划分字段,可以用正则表达


# java
String address="上海|上海市|闵行区|吴中路"; 
String[] splitAddress=address.split("\\|"); //如果以竖线为分隔符,则split的时候需要加上两个斜杠 \\ 进行转义
#sql
hive> select split('abcdef', 'c') from test;
["ab", "def"]


7. 主要负责的产品


这个根据简历或者你自己的情况实际实说就行。


8. 产品的指标如何知道带来多少价值


这题没有标准答案,根据自己的理解回答即可。


以下仅供参考:


在《精益数据分析》一书中给出了两套比较常用的指标体系建设方法论,其中一个就是比较有名的海盗指标法,也就是我们经常听到的AARRR海盗模型。海盗模型是用户分析的经典模型,它反映了增长是系统性地贯穿于用户生命周期各个阶段的:用户拉新(Acquisition)用户激活(Activation)用户留存(Retention)商业变现(Revenue)用户推荐(Referral)


为什么要说这个模型呢,因为通过这个模型中的一些关键指标我们可以反推出产品的指标所带来的价值有哪些。


AARRR模型:


A 拉新: 通过各种推广渠道,以各种方式获取目标用户,并对各种营销渠道的效果评估,不断优化投入策略,降低获客成本。涉及关键指标例如 新增注册用户数、激活率、注册转化率、新客留存率、下载量、安装量等,我们通过这些指标就可反应出获取目标用户的效果是怎样的。


A 活跃: 活跃用户指真正开始使用了产品提供的价值,我们需要掌握用户的行为数据,监控产品健康程度。这个模块主要反映用户进入产品的行为表现,是产品体验的核心所在。涉及关键指标例如 DAU/MAU 、日均使用时长、启动APP时长、启动APP次数等。


通过这些指标可以反映出用户的活跃情况。


R 留存: 衡量用户粘性和质量的指标。涉及关键指标例如 留存率、流失率等。通过这些指标可以反映出用户的留存情况。


R 变现: 主要用来衡量产品商业价值。涉及关键指标例如 生命周期价值(LTV)、客单价、GMV等。这些指标可以反映出产品的商业价值。


R 推荐: 衡量用户自传播程度和口碑情况。涉及关键指标例如 邀请率、裂变系数等。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
相关文章
|
29天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
67 2
|
12天前
|
安全 前端开发 Android开发
探索移动应用与系统:从开发到操作系统的深度解析
在数字化时代的浪潮中,移动应用和操作系统成为了我们日常生活的重要组成部分。本文将深入探讨移动应用的开发流程、关键技术和最佳实践,同时分析移动操作系统的核心功能、架构和安全性。通过实际案例和代码示例,我们将揭示如何构建高效、安全且用户友好的移动应用,并理解不同操作系统之间的差异及其对应用开发的影响。无论你是开发者还是对移动技术感兴趣的读者,这篇文章都将为你提供宝贵的见解和知识。
|
18天前
|
存储 缓存 监控
后端开发中的缓存机制:深度解析与最佳实践####
本文深入探讨了后端开发中不可或缺的一环——缓存机制,旨在为读者提供一份详尽的指南,涵盖缓存的基本原理、常见类型(如内存缓存、磁盘缓存、分布式缓存等)、主流技术选型(Redis、Memcached、Ehcache等),以及在实际项目中如何根据业务需求设计并实施高效的缓存策略。不同于常规摘要的概述性质,本摘要直接点明文章将围绕“深度解析”与“最佳实践”两大核心展开,既适合初学者构建基础认知框架,也为有经验的开发者提供优化建议与实战技巧。 ####
|
14天前
|
Java 程序员
面试官的加分题:super关键字全解析,轻松应对!
小米,29岁程序员,通过一个关于Animal和Dog类的故事,详细解析了Java中super关键字的多种用法,包括调用父类构造方法、访问父类成员变量及调用父类方法,帮助读者更好地理解和应用super,应对面试挑战。
30 3
|
16天前
|
Java 调度 Android开发
安卓与iOS开发中的线程管理差异解析
在移动应用开发的广阔天地中,安卓和iOS两大平台各自拥有独特的魅力。如同东西方文化的差异,它们在处理多线程任务时也展现出不同的哲学。本文将带你穿梭于这两个平台之间,比较它们在线程管理上的核心理念、实现方式及性能考量,助你成为跨平台的编程高手。
|
22天前
|
监控 前端开发 安全
如何开发一个网站:全面解析与实战指南
在数字化时代,网站是企业和个人展示形象、传播信息的关键平台。本文提供从规划、设计、开发、上线到后期维护的全方位网站开发指南,涵盖明确目标、分析用户、设定功能需求、设计风格、技术选型、测试部署及优化升级等内容,帮助你打造既美观又实用的网站。
30 4
|
25天前
|
存储 安全 Java
美团面试:String 为什么 不可变 ?(90%答错了,尼恩来一个绝世答案)
45岁老架构师尼恩分享Java面试心得,涵盖String不可变性、字符串常量池、面试技巧等内容。尼恩强调,掌握深层技术原理,如String不可变性的真正原因,可在面试中脱颖而出,赢得高薪Offer。此外,尼恩还提供了大量技术资源和面试指导,帮助求职者提升技术水平,顺利通过大厂面试。
|
1月前
|
存储 网络协议 安全
30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场
本文精选了 30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场。
81 2
|
1月前
|
存储 NoSQL MongoDB
MongoDB面试专题33道解析
大家好,我是 V 哥。今天为大家整理了 MongoDB 面试题,涵盖 NoSQL 数据库基础、MongoDB 的核心概念、集群与分片、备份恢复、性能优化等内容。这些题目和解答不仅适合面试准备,也是日常工作中深入理解 MongoDB 的宝贵资料。希望对大家有所帮助!
|
18天前
|
前端开发 Android开发 UED
移动应用与系统:从开发到优化的全面解析####
本文深入探讨了移动应用开发的全过程,从最初的构思到最终的发布,并详细阐述了移动操作系统对应用性能和用户体验的影响。通过分析当前主流移动操作系统的特性及差异,本文旨在为开发者提供一套全面的开发与优化指南,确保应用在不同平台上均能实现最佳表现。 ####
22 0

推荐镜像

更多