2023秋招——快手数据研发一、二面面经

news/2024/5/19 5:27:35/文章来源:https://blog.csdn.net/weixin_48077303/article/details/126716362

🌼今天来总结一下快手数据研发的一、二面,在面试中进步,在总结中成长!对往期内容感兴趣的小伙伴可以参考下面👇:

  • 链接: 2022暑期实习字节跳动数据研发面试经历-基础数仓.
  • 链接: 2022百度大数据开发工程师实习面试经历.
  • 链接: 2022暑期实习字节跳动数据研发面试经历-data部门
  • 链接: 2021年暑假滴滴数据开发面试

🌿这次面试快手直接通过的简历,依旧没有笔试,简历通过后直接面试,没有划分具体的业务方向。

在这里插入图片描述

这里写目录标题

  • 1. 一面
    • 1.自我介绍
    • 2.问滴滴和字节实习主要做的工作?
    • 3.介绍一下字节的大数据架构?
    • 4.说一下你们部门数据仓库的建设?
    • 5.和滴滴相比,你觉得差异在哪里?
    • 6.在需求过程中有没有遇到什么难处理的数据问题?
    • 7.就拿数据倾斜来说,你有几种处理方式
    • 8.你是做离线还是实时的?
    • 9.某个离线任务出现了问题,你会如何解决?处理的流程是什么?
    • 10.你的实习经历都是数据研发,有没有想过其他岗位,你对你的未来发展,是什么打算?
    • 11.你对快手和抖音公司末来的发展是如何看待的?
    • 12.第一道sql题:
    • 13.说我写的太快,来一道难的:
    • 14 面试总结:
  • 2. 二面
    • 1.看了你的简历,你的专业偏向于管理优化,说说你为啥做数据研发?
    • 2.自我介绍
    • 3.个绍一下你在字节的数仓建设,以及你负责的工作?
    • 4.说一下维度建模中的几种模型?你们那边用哪种模型较多,为什么?
    • 5.说一下你对维度建模的理解?
    • 6.雪花模型的优点是什么?
    • 7.你们公司技术架构是什么?
    • 8.你们的任务,是如何判断用hql跑还是sparksql跑? 怎么评判执行的代价?
    • 9.离线任务出现报错,你会如何去解决?
    • 10.考察一下技术知识,你知道hadoop的二次排序吗?
    • 11.你刚才提到spark的优化?简单说一说
    • 12.考察一下代码:给你x,y两个超出整型类型的超大整数相乘,如何实现?转换成字符串,想用我们笔算的方式实现,就写了个遍历宇符串,相乘,写了一半,不会了,说了一下思路
    • 14.sql题:用户连续登陆的天数
    • 15.反问阶段
    • 16.总结

1. 一面

1.自我介绍

正常的套路,主要包含自己的基础情况,经历,和一些特点!

2.问滴滴和字节实习主要做的工作?

首先介绍一下负责的主要业务是什么,然后说一下构建数据仓库的基础架构,最后说明一下自己的工作。

3.介绍一下字节的大数据架构?

从数据集成、数据计算、数据模型这几个方面说。

4.说一下你们部门数据仓库的建设?

详细介绍一下部门数仓分层、数据治理的工作(你能说出数据治理就很棒了!)。

5.和滴滴相比,你觉得差异在哪里?

对比数据仓库差异(这一部分我专门对比过,比如主题划分的区别、公共处理逻辑的一些不同)

6.在需求过程中有没有遇到什么难处理的数据问题?

首先回答技术方面:

  1. 数据倾斜
  2. shuffle内存溢出
  3. executor资源不够的情况等。

接着回答一些数据质量问题:
比如指标口径不统一、数据null值较多,主键重复值较多的问题,然后说一下你解决的方案。

7.就拿数据倾斜来说,你有几种处理方式

  1. map join
  2. 利用group by 代替count(distinct)
  3. 倾斜的key值单独处理,这一部分分为对于热点值直接删除(比如key为0等一些没有意义的key)
  4. 倾斜的key值单独处理,对key值进行加盐的操作,然后对另一张表进行笛卡尔积,两者关联后,去盐,再聚合一次。

8.你是做离线还是实时的?

离线偏多,实时也懂一些(简历中的项目是flink项目,但是我是做离线的)

9.某个离线任务出现了问题,你会如何解决?处理的流程是什么?

我的主要思路:

  1. 查看任务的DAG图,看看是自己的原因还是上游的原因
  2. 上游的问题去查看上游,自己的问题去查看日志,看最后的部分
  3. 可能是权限不足、可能是shuffle内存不足、可能是资源不够、数据倾斜等
  4. 根据实际情况进行解决。

10.你的实习经历都是数据研发,有没有想过其他岗位,你对你的未来发展,是什么打算?

这一部分就真实说就好,我也面试过大厂的数据挖掘,如果当时面上了,结果会不会不一样,哈哈哈😂。

11.你对快手和抖音公司末来的发展是如何看待的?

这一点主要是看对公司的认可程度,当然是相互竞争,相互进步的关系,短视频是未来的发展趋势,俩家公司都有很不错的发展。

12.第一道sql题:

在这里插入图片描述
窗口函数简单解决:


SELECTapp,user_id,rk
from 
(SELECTapp,user_id,row_number()over(PARTITION by app,user_id order by nums desc )rkfrom (SELECT app,user_id,count(1) numsfrom t1group by app,user_id)main 
)tmp1
where tmp1.rk in (1,2,3,4,5)
order by app

13.说我写的太快,来一道难的:

在这里插入图片描述
写了一半,没时间了,说一下思路:通过自链接判断在网吧切时间相差10分钟的人,然后一个分组判断网吧数大于3的用户即可

待补充

14 面试总结:

全程就像聊天,问题不难,其实都总结过,哈哈哈就像在背书,其实回答的问题也在引导面试官向我熟悉的地方进行提问,最后没时间反问试官了,我还有问题要问呢!

没过3小时,收到2面通知

2. 二面

1.看了你的简历,你的专业偏向于管理优化,说说你为啥做数据研发?

首先是说明专业的方向就是大数据与人工智能,说明对数据研发的理解。

2.自我介绍

正常流程

3.个绍一下你在字节的数仓建设,以及你负责的工作?

主要说一下数仓建设的建设,数据治理的工作(数据治理加分!)

4.说一下维度建模中的几种模型?你们那边用哪种模型较多,为什么?

主要介绍了:

  1. 星型模型:维度表都是连接在一个事实表上,强调的是对维度进行预处理,将多个维度集合到一个事实表,形成一个宽表,适合分析
  2. 星座模型:事实表连接维度表再连接事实表,几乎不怎么用,关系复杂。
  3. 雪花模型:事实表连接维度表,维度表在连接维度表,数据冗余少;有些数据需要连接才能获取,可能效率较低。

用的较多当然是星型模型

5.说一下你对维度建模的理解?

  1. 维度建模的基础概念:维度建模从分析决策的需求出发构建模型,为分析需求服务,因此它重点关注用户如何更快速地完成需求分析,同时具有较好的大规模复杂查询的响应性能。
  2. 介绍一下ER实体关系模型:用实体-关系-实体的模式来描述企业业务,在范式理论上符合 3NF。
    说一下大数据场景下维度建模更时候需求分析,而ER实体关系模型更注重于解耦合、减少冗余,说明用空间来换取查询的时间等

6.雪花模型的优点是什么?

这个问题相当于是问,ER关系实体模型中的3NF优势是什么,回答解耦合、减少冗余即可。

7.你们公司技术架构是什么?

从数据集成、数据计算、数据模型这几个方面说。

8.你们的任务,是如何判断用hql跑还是sparksql跑? 怎么评判执行的代价?

这个问题问到我了,我觉得是关于代码执行代价的,但是我不太清楚,就从hadoop和spark的适用场景来说了:
hadoop:基于磁盘,虽然慢,但是处理数据量很大的场景比较稳定
spark:基于内存,速度快,但是数据量过大也会落到磁盘,对于数据量很大的情况容易出现内存不够的情况。

9.离线任务出现报错,你会如何去解决?

依旧是解决问题的过程

10.考察一下技术知识,你知道hadoop的二次排序吗?

我以为是map reduce工程中的某个阶段,结果发现不是。尴尬了,不会

11.你刚才提到spark的优化?简单说一说

主要说一下sql语法优化、开启广播、合并小文件、设置shuffle内存大小,设置executor的core和内存。

12.考察一下代码:给你x,y两个超出整型类型的超大整数相乘,如何实现?转换成字符串,想用我们笔算的方式实现,就写了个遍历宇符串,相乘,写了一半,不会了,说了一下思路

在这里插入图片描述
这一部分我的思路是模仿我们手算乘法的流程,就写几行代码,面试官说主要考察我对难题的处理方式。

14.sql题:用户连续登陆的天数

在这里插入图片描述
窗口函数,接着做个date_sub即可。

SELECTuser_id,count(1) sum_days
from(
selectuser_id user_idv_date date_sub(v_date,interval rk_tag day) daysfrom(select user_id,v_date,row_number()over(PARTITION by user_id order by v_date) rk_tagfrom user_tab t1)tmp1
)main
group by user_id,days

15.反问阶段

这阶段,主要问了一下面试官对自己职位的看法,以及自己未来的发展方向。

16.总结

二面面试官比较有意思,主要从数据模型、底层技术、代码能力方面考察我,有些问题确实没回答出来,其他问题回答的大差不差的,但是我还是想回答的更完美一些,下去自己再看看吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_5724.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

three.js实现鼠标拾取例子

基本思路 <script> var renderer,scene,camera; var light; var raycaster,//相机->鼠标的射线mouse,//鼠标所在位置actionObject;//选中的物体 init(); animation();function init(){//渲染器//场景//相机//方向光//创建2000个立方体//创建射线//创建鼠标二维向量(圆…

epoll实现异步请求数据---以UDP为例

文章目录同步UDP请求数据的问题异步请求的模型具体的代码同步UDP请求数据的问题 不管是请求DNS资源还是其他资源。如果以串行的方式请求数据&#xff0c;也就是send以后recv阻塞等待获取数据&#xff0c;这样做的效率非常低效&#xff0c;网络延迟、服务器处理请求、再加上rec…

【C# 学习笔记 ②】C#基本语法(数组、判断和循环、字符串、枚举、结构体)

由于在自己的工作和学习过程中&#xff0c;只查看某个大佬的教程或文章无法满足自己的学习需求和解决遇到的问题&#xff0c;所以自己在追赶大佬们步伐的基础上&#xff0c;又自己总结、整理、汇总了一些资料&#xff0c;方便自己理解和后续回顾&#xff0c;同时也希望给大家带…

【我不熟悉的css】07. css命名,bem规范,跟着组件库element-ui学习组件命名

在去年&#xff0c;我总结了一篇文章&#xff0c;跟着element-ui学习css命名 【系统学习css】跟着element-ui学习css的命名_我有一棵树的博客-CSDN博客每日鸡汤&#xff0c;每一个你想要学习的念头都是未来的你向自己求救写css 最烦人的就是给class起名字了&#xff0c;这里不…

这一次,我们把AI自治数据库带到了世界人工智能大会上

9月3日,2022世界人工智能大会(WAIC)在上海圆满落幕。WAIC2022 秉持“智联世界”理念,通过线上线下联动的会展形式,汇聚顶级科学家、企业家、政府官员、专家学者、国际组织、投资人、创新团队一同探讨科技前沿话题,推动全球“共创、共建、共融、共治、共享、共赢”。WAIC …

【Python刷题篇】——Python入门 09 字典(上)

&#x1f935;‍♂️ 个人主页: 北极的三哈 个人主页 &#x1f468;‍&#x1f4bb; 作者简介&#xff1a;Python领域新星创作者。 &#x1f4d2; 系列专栏&#xff1a;《牛客题库-Python篇》 &#x1f310;推荐《牛客网》——找工作神器|笔试题库|面试经验|实习经验内推&am…

【数据结构与算法】之深入解析“乘法表中第K小的数”的求解思路与算法示例

一、题目要求 几乎每一个人都用乘法表,但是你能在乘法表中快速找到第 k 小的数字吗?乘法表是大小为 m x n 的一个整数矩阵,其中 mat[i][j] == i * j(下标从 1 开始)。给你三个整数 m、n 和 k,请你在大小为 m x n 的乘法表中,找出并返回第 k 小的数字。示例 1:输入:m =…

MATLAB | 全网唯一,三元相映射图绘制(三元相分级统计地图)

示例 对上期的补充 本期文章名叫三元相映射图绘制&#xff0c;但不单单讲这一点&#xff0c;同时会对上一篇多元映射地图做出补充https://slandarer.blog.csdn.net/article/details/126702967&#xff1a; 上篇中可以绘制这样的三变量映射地图&#xff1a; 但这只是对多边形…

Vue学习之--------路由(Router)的基本使用(1)(2022/9/5)

理解&#xff1a; 一个路由&#xff08;route&#xff09;就是一组映射关系&#xff08;key - value&#xff09;&#xff0c;多个路由需要路由器&#xff08;router&#xff09;进行管理。前端路由&#xff1a;key是路径&#xff0c;value是组件。控制页面的跳转 文章目录1、基…

01-linux基础命令

1、常用命令 常用Linux命令的基本使用序号命令对应英文作用01 ls list 查看当前目录下的内容02 pwd print working derectory 查看当前所在文件夹03 cd [目录名] change directory 切换文件夹04 touch [文件名] touch 如果文件不存在, 新建文件05 mkdir [目录名] make director…

【JavaSE】多线程篇(三)用户线程、守护线程与线程的7大状态

&#x1f481; 个人主页&#xff1a;黄小黄的博客主页 ❤️ 支持我&#xff1a;&#x1f44d; 点赞 &#x1f337; 收藏 &#x1f918;关注 &#x1f38f; 格言&#xff1a;All miracles start from sometime somewhere, make it right now. 本文来自专栏&#xff1a;JavaSE从入…

关于使用@Scheduled()注解造成的多任务冲突问题解决

问题描述&#xff1a; 2022-08-18 01:59:00.001 INFO [irms-transfer-service,,,] 15 --- [ scheduling-1] c.s.i.t.service.impl.ProjectManageSvc : -------定时扫描导出任务开启------- 2022-08-18 01:59:00.004 INFO [irms-transfer-service,,,] 15 --- [ schedu…

如何查看navicat已连接用户的密码

1:从注册表中查看加密后的密码。1.1:windows键+r,输入 regedit1.2:在注册表中找到 \HKEY_CURRENT_USER\SOFTWARE\PremiumSoft\navicat\servers 并找到 UserName 即 账号1.3:从上面步骤中,打开注册表、并找到如下图片中的密码栏:Pwd(加密的密码)2:解密密码,打开在线工…

React 应用程序中的简单路由

React 应用程序中的简单路由一个简单的、可扩展的路由解决方案可以满足您的应用程序的所有需求,而不会引入像 React-Router 这样的工具所提供的复杂性。 进入: 浏览器的 窗口位置 目的。 它提供了为您的应用程序创建一个简单的“路由”系统所需的一切。例如,这里是什么 窗口…

【Selenium Other】一键杀死进程 进程清理大师

前言 有位读者留言&#xff0c;遇到了一件两难全的事儿。在关闭Python使用os模块执行cmd命令调用的chromedriver驱动打开的chrome浏览器时&#xff0c;有以下问题~ 使用driver.quit()退出浏览器&#xff0c;chromedriver.exe进程退出&#xff0c;关闭没有窗口使用driver.close(…

2021年中青杯B题港珠澳大桥桥梁设计与安全策略数学建模全过程文档及程序

港珠澳大桥桥梁设计与安全策略 原题再现 “港珠澳大桥是国家工程、国之重器&#xff0c;其建设创下多项世界之最&#xff0c;非常了不起&#xff0c;体现了一个国家逢山开路、遇水架桥的奋斗精神&#xff0c;体现了我国综合国力、自主创新能力&#xff0c;体现了勇创世界一流的…

nuxt vue 按住鼠标左右滑动方案收集

目录前言vue-dragscrollvuescroll自己写个指令参考前言 最近在做PC端网页左右滑动&#xff0c;找到以下3种方案&#xff0c;做个记录。 vue-dragscroll 官方文档&#xff1a;https://vue-dragscroll.donfalcon.com/安装&#xff08;注意版本&#xff09; npm install vue-d…

VUE 如何将父组件中的数据传递到子组件中

在我们的项目中我们使用 axios 进行异步调用。 因为异步调用的问题,如果我不采取手段,子页面没有办法获得父页面中的数据,页面将会显示为 没有数据。问题和解决 这个问题的原因就是子组件在初始化的时候,父组件还没有获得数据。 可以使用的方法是 v-if 进行判断。 对比上面…

[数据结构]~栈和队列(0-1)

前言 作者&#xff1a;小蜗牛向前冲 名言&#xff1a;我可以接收失败&#xff0c;但我不能接收放弃 如果觉的博主的文章还不错的话&#xff0c;还请点赞&#xff0c;收藏&#xff0c;关注&#x1f440;支持博主。如果发现有问题的地方欢迎❀大家在评论区指正。 目录 一 “栈…

3D激光线扫相机与结构光相机的区别

激光线扫相机 激光相机基于三角测量&#xff0c;可精确捕获3D形状(数百万个点)。更精确地说&#xff0c;它们的工作原理是将激光点或激光线投射到物体上&#xff0c;然后用传感器捕获其反射。由于传感器的位置与激光源的距离已知&#xff0c;因此可以通过计算激光的反射角来进…