数仓面试总结

博主分享了自己在2021年5月至7月间面试多家公司的经历,包括字节跳动、运满满、拼多多、美团、PayPal、波克城市和叮咚买菜等。面试内容涉及数仓分层、MapReduce、Flink、数据质量控制等大数据相关技术,同时也提到了面试准备、个人技能短板及面试官对技术理解的要求。博主意识到代码能力、面试准备及底层技术掌握的重要性,并对面试过程进行了反思。

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

 

2021年5月开始找工作,面试了若干个数仓的岗位,面的差不多也就2个,总结下大致的面试内容

一、字节视频面,上海的一个部门,视频面挂,小伙伴内推的
    这个5月份面的,大概视频面试了一个小时,主要面试内容
    1、问了mapreduce的具体执行过程,这位面试官还问到了执行计划的东西,就是explain sql代码的东西,这个我基本都不会
    2、数仓分层的东西,就大致讲了下分几层还有主题的划分
    3、因为我现在做了一些flink的东西,问了一点流的东西
    4、做了1个sql的题目,相互关注的2个用户怎么找出来
 
 结果:我小伙伴帮忙问了下,说我的数仓知识和技术都薄弱,就这样了


二、运满满,还行,小伙伴内推的
    5月20几号面的,面了3轮,数仓、数据开发部门leader,数据部门leader
    1、基本讲下数据怎么分层,指标库怎么做的,数据质量怎么做的
    2、第二轮就稍微问下数仓的工作,几分钟就过完了
    3、第三轮是视频面的,大致讲下数据方面的看法之类的,这个leader我觉得思想还是高一个层次的

三、拼多多,视频面挂
    这个面试体验很不好,可能面试我的是个大佬,就是大家的思路好像不在一条线上
    1、先问了下之前数分的工作做了啥,然后讲下之前数分的项目,我就大致说了下,然后说我:应该说下你是什么角色,具体做了什么事,有哪些可以改进的点等等;我是很懵逼的
    2、做几道sql的题目,具体的忘了
    3、然后接着说mapreduce的东西,就问,map是怎么个执行方式,reduce是怎么执行的
    4、还问了flink的东西,底层嘛肯定是不怎么了解的
    5、最后给我一通教育


四、美团,视频面挂
     1、讲下mapreduce的具体执行过程,这个sql select a,count(distinct b) from table1 group by a在mapreduce上是怎么执行的
     2、看我不怎么会出了个sql题目,连续登陆的用户取出来,这个题目之前还写过,紧张了还写错了---解题
     3、还问了,知道什么olap的引擎,怎么调优之类的,这个我感觉是大数据开发的东西应该

五、paypal,小伙伴内推的,视频面挂
    1、讲下我们这边具体做啥
    2、问了一个代码的题目,怎么从数组中拿出来最大值,就是简单循环,我也是写的稀烂;一个sql的题目

结果:这个其实工作内容差别还是有的,我理解他们是没有数仓概念的,应该是只做dw层清洗工作


六、波克城市,小伙伴内推的,面了2轮,没后续了
    1、简单自我介绍,具体做啥,日常维护多少任务,计算量多少之类的
    2、leader面,具体讲下都做啥,用的啥组件

结果:这个我觉得回答的还好,不过他们其实是没有数仓概念的,东西都是在mysql上搞的,最后也没要我


七、叮咚买菜,小伙伴内推的,面了4轮,过了

    1、做了面试题,有3道,4个题目

        第一题考察行转列
        第二题考察连续登陆,就搞个row_number排序减一下
        第三题简单

    2、数仓面试,自我介绍,问了些简历上写的东西,还有问了数据质量怎么把握的,数据分了几层,各层都放啥东西,还有你认为数据工作最重要的是啥,写过啥udf,没问mapreduce的东西

    3、数仓的leader应该,问的很细,简历上的东西挨着问,之前数分写的东西都在问,这里还说到我数分的工作看起来好像不专业,比如专业术语也没有,python也不用,我还解释说基本没见到互联网公司有用python做数分的;
       问的东西也大差不差,问了下编程语言用啥,我就说都是抄包的东西,底层不会,问了工作方向

    4、上一个又找了做埋点的同学又问了点埋点方案啥的,就讲下埋点怎么埋的之类的,数据流程是什么样子的

    5、这个应该是数据部门的老大,也问了一堆埋点的东西和之后的个人规划

结果:说是面试过了,谈薪资

总结:
    1、代码还是重要的,不管是java,scala,python,还是要写的,虽然日常工作不怎么用
    2、面试还是要准备,我是头铁,没有专门针对,mapreduce这个东西问了好几次也没认真看
    3、面试也是主观的印象,都是个人适应公司,且很多面试都是会问自己知道的东西,个人多调整心态
    4、大数据东西是真的多,要做到精通,底层还是要学习的,希望都能当上大佬

### 离线数据仓库相关的自我介绍或演讲稿 在准备离线数据仓库(Offline Data Warehouse)的自我介绍或演讲稿时,可以从以下几个方面展开:背景知识、技术架构、实践经验以及未来展望。以下是详细的内容框架: #### 1. 背景知识 离线数据仓库是一种用于存储和分析大规模历史据的系统,其主要目标是支持复杂的查询和据分析任务[^1]。它通过批量处理的方式对大量据进行清洗、转换和聚合操作。相比于实时数仓,离线数仓更注重据的深度分析和长期存储能力。 在企业中,离线数仓通常被用来支持决策支持系统(DSS)和商业智能(BI)应用。例如,在电子商务领域,离线数仓可以用来分析用户的购买行为模式,从而帮助企业制定精准营销策略[^2]。 #### 2. 技术架构 离线数仓的技术架构通常分为多个层次,包括据采集层、据存储层、据加工层和据服务层。 - **据采集层**:负责从各种据源中收集原始据,并将其传输到数仓系统中。常见的工具包括Flume、Kafka等[^3]。 - **据存储层**:提供大规模据的存储能力。这一层通常使用分布式文件系统(如HDFS)或云存储(如Amazon S3)来存储据[^4]。 - **据加工层**:对采集到的原始据进行清洗、转换和聚合操作。这一过程通常使用批处理框架(如Apache Spark、Apache Hive)来实现[^5]。 - **据服务层**:为上层应用提供据访问接口,支持OLAP查询和可视化展示。这一层可能涉及据建模、维度表设计以及ETL流程的定义[^6]。 ```sql -- 示例:离线数仓中的ETL脚本 INSERT INTO fact_sales_summary SELECT product_id, SUM(sales_amount) AS total_sales, COUNT(*) AS transaction_count FROM raw_sales_data GROUP BY product_id; ``` #### 3. 实践经验 在实际项目中,离线数仓的设计和实施需要考虑多个关键点。例如,在据采集过程中,可以使用Flume消费Kafka的据并将日志上传到Hadoop上。为了提高效率,可以选择Memory Channel作为中间缓存机制,同时设置合理的参以避免产生过多的小文件[^7]。 此外,在据加工阶段,需要特别关注性能优化问题。可以通过合理设置据分区、索引和压缩策略,减少查询延迟并提高吞吐量[^8]。同时,还需要建立完善的据质量保障体系,确保据的一致性和准确性。 #### 4. 未来展望 随着大数据技术的不断发展,离线数仓也在不断演进。未来的离线数仓将更加智能化、自动化,能够更好地适应业务需求的变化。例如,通过引入机器学习算法,可以实现自动化的据清洗和特征提取[^9]。 此外,云原生技术的兴起也为离线数仓带来了新的机遇。基于云计算的数仓解决方案可以显著降低企业的IT成本,同时提高系统的灵活性和可扩展性[^10]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值