58同城大数据岗位真实面试题及详细答案(实操完整版)_第1页
58同城大数据岗位真实面试题及详细答案(实操完整版)_第2页
58同城大数据岗位真实面试题及详细答案(实操完整版)_第3页
58同城大数据岗位真实面试题及详细答案(实操完整版)_第4页
58同城大数据岗位真实面试题及详细答案(实操完整版)_第5页
已阅读5页,还剩2页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

58同城大数据岗位真实面试题及详细答案(实操完整版)本次题库整理自58同城大数据开发、数据分析师、数仓工程师历年真实面试真题,涵盖基础理论、SQL实操、大数据框架、数仓建模、性能调优、业务场景实战六大模块,答案贴合58本地生活、招聘、房产、二手车核心业务场景,摒弃通用套话,完全贴合一线工作实操。一、数仓建模与分层高频题(58必问核心)1、请说说58数仓常用分层架构,各层作用及数据特点参考答案:58同城数仓统一采用经典五层分层架构,适配平台海量用户、海量商家、多业务线(招聘、房产、本地服务)的数据沉淀需求,各层职责清晰、解耦性强:1.ODS层(原始数据层):直接同步业务库原始数据、日志数据,不做任何清洗、加工、聚合。数据和线上业务库完全一致,保留全量原始字段,主要用于数据溯源、问题排查,数据粒度最细。58主要同步MySQL业务数据、Nginx访问日志、用户行为日志。2.DWD层(明细数据层):对ODS原始数据做清洗、去重、脏数据过滤、字段标准化,拆分业务明细事实表。剔除无效数据,比如空值手机号、重复用户行为、过期发布信息,保留完整业务明细,不做聚合,是后续统计分析的基础。3.DWS层(聚合宽表层):面向业务主题构建宽表,按用户、商家、房源、岗位等核心维度做轻度聚合。58核心主题分为用户主题、商家主题、房源主题、招聘岗位主题,统一指标口径,避免重复计算,支撑日常业务快速查询。4.DMB层(数据集市层):面向具体业务场景定制化汇总,拆分招聘、房产、二手车、本地生活独立集市。针对性产出业务指标,比如房源曝光转化率、商家充值率、岗位投递率,直接对接业务报表、数据看板。5.ADS层(应用服务层):最终聚合结果层,输出可直接复用的统计指标、排序数据、榜单数据,支撑前台推荐、检索、报表、风控等线上应用,数据粒度最粗、聚合度最高。2、DWS层如何做主题划分?58核心业务主题有哪些参考答案:DWS主题划分主要两种逻辑,适配58多业务场景:一是按分析主体划分(用户、商家、房源、岗位),二是按业务场景划分(获客、转化、营收、风控、服务体验)。58核心业务主题固定为四大类,贴合平台核心业务:1.用户主题:沉淀用户注册、浏览、咨询、下单、投诉全行为数据;2.商家主题:统计商家入驻、发布房源/岗位、充值、转化、差评、活跃度数据;3.房源/房产主题:覆盖房源发布、曝光、点击、咨询、成交、下架全链路数据;4.招聘岗位主题:统计岗位发布、曝光、简历投递、面试、入职转化数据。DWS层核心价值是统一口径,比如全平台所有业务线的“转化率”指标统一计算规则,避免各部门统计数据不一致。3、数仓建模星型模型和雪花模型区别,58业务优先用哪种参考答案:1.星型模型:以一张事实表为核心,直接关联多张维度表,维度表不做分层,结构简单、关联少、查询速度快;2.雪花模型:维度表继续分层拆解,二级维度关联一级维度,结构更规范、冗余少,但多表关联多,查询效率低。58业务数仓优先使用星型模型。因为平台业务指标多、查询频次高,星型模型关联逻辑简单,能大幅提升报表查询、指标计算效率,仅在少数维度层级极多、数据冗余严重的场景,少量使用雪花模型。二、SQL高频真题(58笔试+面试必考)1、查询三门课程成绩均大于80分的学生(58经典笔试原题)题干:学生成绩表score(stu_id,course,score),查询所有科目成绩都大于80分的学生ID。参考答案(实操最优解):PlainText

--思路:统计每个学生总课程数、80分以上课程数,两者相等即全部达标

SELECTstu_id

FROMscore

GROUPBYstu_id

HAVINGCOUNT(*)=SUM(CASEWHENscore>80THEN1ELSE0END);解题思路:避免子查询嵌套,分组聚合效率更高,适配大数据量场景,符合58线上数据查询规范。2、查询每门课程中分数大于该课程平均分的学生信息参考答案:PlainText

--先计算每门课平均分,再关联筛选

SELECTs.*

FROMscores

JOIN(

SELECTcourse,AVG(score)avg_score

FROMscore

GROUPBYcourse

)tONs.course=t.course

WHEREs.score>t.avg_score;3、说说SQL谓词下推原理,工作中如何优化参考答案:谓词下推核心是提前过滤数据,减少join、聚合计算的数据量。很多人写SQL会先全量关联再过滤条件,大数据量下会产生大量无效计算。优化原则:所有过滤条件(时间、状态、空值过滤)尽量放在关联、分组之前。反面示例(低效):先join再过滤时间,扫描全量表数据PlainText

SELECT*FROM(SELECTt1.*,FROMordert1JOINusert2ONt1.uid=t2.uid)tempWHEREdt='2026-09-10'优化后(高效):先过滤分区数据,再关联PlainText

SELECTt1.*,FROMordert1JOINusert2ONt1.uid=t2.uidWHEREt1.dt='2026-09-10'58日常数仓开发中,所有分区表必须优先加时间分区过滤,是硬性规范。三、Hive&Spark核心调优题(面试重点深挖)1、Hive数据倾斜产生原因及解决方案,结合58业务场景说明参考答案:数据倾斜本质是个别key数据量远超其他key,导致单个task任务过载,整体任务拖慢、超时,是58数仓日常最常见问题。常见倾斜场景(58真实业务):1.空值倾斜:大量用户行为数据、商家数据存在uid空值,join时空值全部聚合到一个task;2.热点key倾斜:平台头部商家、热门房源、热门岗位数据量极大,远超普通数据。解决方案(实操落地):1.空值预处理:将空值随机赋值打散,避免集中聚合,例如nvl(uid,concat('rand',rand()));2.热点key单独处理:拆分热点数据和普通数据,分别计算后再合并结果;3.开启参数优化:设置hive.groupby.skewindata=true,开启两阶段MapReduce聚合,打散倾斜数据;4.业务侧过滤:提前过滤无效空数据、测试数据,从源头减少倾斜。2、Spark数据倾斜和Hive数据倾斜的区别,Spark如何调优参考答案:1.核心区别:Hive倾斜多发生在MapReduce分组、join阶段,表现为任务运行卡顿、超时;Spark倾斜多发生在shuffle阶段,表现为部分Executor数据堆积、OOM内存溢出,任务失败。2.Spark专属调优方案:-加盐打散:对倾斜key拼接随机数,局部聚合后再全局聚合,解决热点key倾斜;-调整shuffle分区数:根据数据量合理设置spark.sql.shuffle.partitions,避免分区过少导致数据堆积;-广播小表:大表join小表时使用广播join,规避shuffle过程,彻底避免倾斜;-过滤无效数据:shuffle前提前过滤空值、脏数据,减少传输数据量。3、说说MapReduce完整执行流程参考答案:整个流程分为5个核心阶段,流程清晰无冗余:1.输入分片:读取HDFS文件,按块拆分输入分片,每个分片对应一个Map任务;2.Map阶段:读取分片数据,执行自定义map逻辑,输出key-value键值对;3.分区排序:对map输出数据分区、排序、归并,相同key的数据分发到同一个Reduce节点;4.Reduce阶段:聚合相同key的数据,执行自定义reduce逻辑,完成数据汇总;5.结果输出:将最终聚合结果写入HDFS,生成最终数据文件。四、Elasticsearch实战题(58检索业务必考)1、ES查询速度快的核心原因,除倒排索引外还有哪些优化点参考答案:1.核心基础:采用倒排索引结构,区别于关系型数据库的正排索引,通过关键词快速匹配文档,无需全表扫描;2.其他核心优势:-内存缓存优化:频繁查询的索引元数据、热点数据常驻内存,磁盘读取极少;-分片并行查询:数据拆分多分片、多节点并行检索,大幅提升查询效率;-字段类型优化:支持精准匹配、分词匹配,数值、关键词字段检索效率极高;-近实时刷新:默认定时刷新索引,兼顾数据实时性和查询性能。2、58房产/招聘信息用ES检索,需要考虑哪些核心优化点参考答案:贴合58核心检索业务,实操优化如下:1.字段精细化设计:检索字段分词存储(房源描述、岗位详情),筛选排序字段精准存储(价格、区域、发布时间);2.语义优化:配置同义词、停用词,比如“租房”“合租”同义匹配,提升用户检索体验;3.检索性能优化:分页深度查询优化、热点数据缓存、索引冷热分离,老旧房源、历史岗位归档冷索引;4.权重排序优化:根据发布时间、商家信誉、曝光量设置字段权重,优先展示优质信息;5.防恶意检索:限制高频重复请求,避免接口被刷导致服务卡顿。五、业务场景分析题(58中面核心)1、58商家后台新增推广模块,如何设计方案验证模块是否提升购买转化率题干:商家新推广模块上线,核心指标:商家购买转化率=支付成功次数/页面PV,需设计完整分析方案参考答案:采用对照实验+全维度指标复盘,完整落地流程:1.确定核心指标与辅助指标:核心指标为推广模块购买转化率;辅助指标为模块PV、UV、点击量、咨询量、退款率、商家留存率;2.分组对照验证:选取同质商家样本,分为实验组(上线新模块)、对照组(保留旧模块),排除商家体量、行业、活跃度差异干扰;3.周期数据对比:对比上线前后7天、15天指标数据,排除周末、节假日流量波动影响;4.归因分析:若转化率提升,拆解是曝光增加、点击提升还是转化链路缩短导致;若下降,排查页面卡顿、操作复杂、定价不合理等问题;5.长期验证:观察商家复购率、长期营收变化,避免短期数据波动误判效果。2、如何分析58二手房房源曝光量下降问题参考答案:从用户、房源、平台、渠道四个维度逐层排查,落地性极强:1.数据层面:先确认是否为数据口径、统计故障、分区缺失导致的假性下降;2.平台流量维度:整体平台UV、流量是否下滑,行业大盘是否同步波动;3.房源维度:房源发布量、优质房源占比、房源更新频率是否降低,违规下架、过期房源是否增多;4.算法排序维度:平台检索排序规则、权重是否调整,优质房源曝光优先级是否变动;5.渠道维度:APP、小程序、网页端各渠道流量是否异常,推广投放是否缩减;6.用户维度:用户活跃时长、检索频次是否下降,用户需求是否季节性变动。六、算法与基础编程题(基础必问)1、手写二分查找代码(非递归)参考答案:PlainText

publicstaticintbinarySearch(int[]arr,inttarget){

intleft=0;

intright=arr.length-1;

while(left<=right){

intmid=(left+right)/2;

if(arr[mid]==target){

returnmid;

}elseif(arr[mid]>target){

right=mid-1;

}else{

left=mid+1;

}

}

return-1;

}2、GBDT和XGBoost的核心区别参考答案:结合业务落地场景,核心差异4点:1.正则化差异:XGBoost自带L1、L2正则化,能有效抑制过拟合,GBDT无原生正则;2.二阶导数优化:XGBoost使用一阶、二阶导数拟合损失函数,精度更高,GBDT仅用一阶导数;3.并行能力:XGBoost支持特征分裂并行计算,训练速度远快于串行的GBDT;4.缺失值处理:XGBoost可自动学习缺失值分裂方向,适配大数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论