2022字节跳动数据仓库实习面经

作者分享了自己在字节跳动数据研发岗位的面试经历,包括面试问题、自我感觉及对面试的反思。在面试中,讨论了Flink的状态管理、数据仓库设计以及实时计算等问题,并在后续面试中得到了改进。作者建议被拒后应主动询问HR获取面试反馈以提升自我。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

👊先和大家说一下情况,3月4号面试的字节跳动数据研发岗位直接把我挂了,我满脸疑惑,但是抱着学习和提升自我的心态,打电话问问hr,像看看面试官给我面试的评价,hr说,面试官就两行,第一句肯定,第二句说我专业知识基础不够。以下是我上次的面试经历👇:

👍今天是字节另一个团队的面试官来面我,好像是抖音电商部门,通知我来面试。以下就是面试中的问题。
在这里插入图片描述

1. 面试问题

  • 自我介绍
  • 我看你的项目中用过flink,你能和我讲讲你对flink中的状态的理解吗?(我从流处理速度快的原理和checkpoint的角度对state进行了说明)
  • flink中的状态可以存储在内存中,还可以存储在哪里?说说你的理解?(不仅可以存储在内存,还可以存储在磁盘上,存在内存中计算较快,但容易丢失,state会不定期写入在硬盘上,准备进行checkpoint)
  • 你在滴滴实习的时候也做做过数据仓库开发,你们的数据仓库是如何设计的,分层了吗?(介绍了一个数仓的建设,然后说用的维度建模,分为ods、dwd、dws和app)
  • 说一下为什么要分层?刚才你提到了dwd和dws层,请问他们有什么区别?(从dwd和dws的定义来说,也说了他们俩没有很明确的区别,也可以在中间加另外的层,只要结构清晰,不冗余就行,不绝对。)
  • 现在有这样一个场景,业务部门需要进行修改数仓的操作,换句话说说,如何避免经常发生修改数仓的操作?(我从业务理解的角度和数仓开的经验角度来说,主要是要将dwd和dws层的表里的指标考虑周到,这样子就不需要经常根据业务修改数仓了,因为里面的指标够齐全,表够宽。)
  • 我看你的flink实战项目中有一个计算每小时的成交量的指标,你是如何实现的?(用1小时的滚动窗口进行分组,然后group by统计每小时的成交量。)
--看看sql
--这里涉及到flink的窗口函数,tumble滚动窗口。
INSERT INTO buy_cnt_per_hour
SELECT HOUR(TUMBLE_START(ts, INTERVAL '1' HOUR)), COUNT(*)
FROM user_behavior
WHERE behavior = 'buy'
GROUP BY TUMBLE(ts, INTERVAL '1' HOUR);

  • 你说你用的是滚动窗口,你确定吗?(肯定确定,这里想考我滚动和滑动窗口的理解。)
  • 你会flink sql吗?有过开发实时数据仓库的项目吗?(我使用过flink sql也做过flink数据的开发,但是实际的数据仓库项目没有正式接触过,因为我们部门主要以批处理为主,数据仓库的理论没有较大差别,可能在flink开发中时间、窗口、watermark等设置需要额外注意。)
  • 我看你这里经常写博客,而且有一定的访问量,说说你写博客的历程吧。(如实说明即可,体现自己爱学习的,爱探索的性格)
  • 你觉得你应该如何评价你自己?(自己回答)
  • sql题,我们有一张表,存储关于用户和客服交流的信息,字段有 call_id,user_id,start_time,end_time,prov_id,call_type,请你求出各天呼入数量top5的省份,call_type=2为呼入。
# 1,这里有一个小插曲,本来是求各天的top5,然后我和面试官沟通一些题目的细节,然后面试官说,就求今天的吧,不用那么麻烦
select tmp1.prov_id,tmp1.call_num
from(
select date(start_time) start_date,prov_id,count(1) call_num
from table1
where call_type='2'
group by date(start_time),prov_id
having date(start_time)=date(now()))tmp1
order by tmp1.call_num desc
limit 5
  • 反问:你这边有啥想问的吗?我问了一些关于面试官部门业务的一些事情。

2. 总结

这个部门的面试和上个部门的面试感觉差不多,自我感觉还不错,没有一点都不会的问题,但是回想上个部门挂的原因可能是觉得我对大数据组件原理的理解大于对数据仓库建模的理解吧,但拒绝我的终将使我更强大,面试时长大概40多分钟,面试完20分钟后,就收到了2面的邀请。

3. 温馨提示

其实大厂面试把你挂掉,很正常,你首先需要去反思自己的问题,但也可能是不喜欢你说的某一句话、可能是觉得你不太适合这个岗位,可能是觉得你过于自信不好交流,无论是啥,你都可以厚着脸皮打电话问hr,面试官给你的评价(挂你的原因),这不丢人,自己可以根据面试官的评价及时弥补自己的缺点。

字节跳动是一家知名的互联网公司,提供多样化的在线服务和产品。在字节跳动的go实习经中,通常会包含以下几个方的内容: 1. 基础知识测试:字节跳动会对应聘者的基础知识进行测试,例如据结构、算法、计算机网络等方的知识。这一部分的问题可以是选择题、填空题、编程题等形式,用于评估候选人的基础水平。 2. 项目经历和实践能力评估:字节跳动也会关注应聘者的项目经历和实践能力,询问候选人在实习或学校项目中担任的角色、临的挑战、解决方案以及取得的成果。通常会以开放性问题形式出现,侧重考察候选人的思维能力和解决问题的能力。 3. 技术深度面试:在技术深度面试环节,字节跳动会聚焦于候选人在Go语言相关技术方的掌握情况。例如对候选人对Go语言的理解、熟练程度以及应用经验进行详细的询问和讨论。 4. 沟通与团队合作:字节跳动非常注重候选人的沟通能力和团队合作能力。所以在面试过程中,他们可能会提问候选人在团队合作中的角色、如何和其他成员协作以及如何解决团队遇到的问题等。 5. 自我介绍和问题回答:面试的最后要求候选人进行自我介绍,这是一次展示个人的机会。同时,面试官还可能询问一些与实习相关的问题,了解候选人对实习的期望、目标以及对字节跳动的了解程度。 综上所述,字节跳动的go实习经主要包括基础知识测试、项目经历和实践能力评估、技术深度面试、沟通与团队合作以及自我介绍和问题回答等环节。应聘者需要准备充分,熟悉Go语言相关知识,并能够展示自己的技术能力、项目经历以及团队合作等方的能力。
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柳小葱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值