码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 2023秋招——快手数据研发一、二面面经


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

    • 链接: 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题:

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

    
    SELECT
        app,user_id,rk
    from 
    (
    
            SELECT
                app,user_id,
                row_number()over(PARTITION by app,user_id order by nums desc )rk
            from 
            (
                    SELECT app,user_id,count(1) nums
                    from t1
                    group by app,user_id
            )main 
    )tmp1
    where tmp1.rk in (1,2,3,4,5)
    order by app
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

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

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

    待补充
    
    • 1

    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即可。

    SELECT
        user_id,count(1) sum_days
    from(
    select
        user_id user_id
        v_date 
        date_sub(v_date,interval rk_tag day) days
    
    from(
                select user_id,
                       v_date,
                       row_number()over(PARTITION by user_id order by v_date) rk_tag
                from user_tab t1
        )tmp1
    )main
    group by user_id,days
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    15.反问阶段

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

    16.总结

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

  • 相关阅读:
    力扣(LeetCode)180. 连续出现的数字(2022.06.29)
    TensorFlow和CUDA、cudnn、Pytorch以及英伟达显卡对应版本对照表
    1773_把vim的tab键设置为4个空格显示
    剑指 Offer II 033. 变位词组
    vivo 海量基础数据计算架构应用实践
    2023年亚太杯数学建模亚太赛C题思路解析+代码+论文
    C 语言程序的执行流程
    OPPO公布全新AI战略,AI 手机时代再提速
    zookeeper常用命令详解
    【LeetCode每日一题】——1290.二进制链表转整数
  • 原文地址:https://blog.csdn.net/weixin_48077303/article/details/126716362
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号