大数据开发常见面试问题
·
一、你了解数据开发工作流程么
答:
工作流程:
1.首先了解业务需求,我会与业务部沟通,他们所需的数据,明确他们需要解决的具体业务问题,
从问题的角度去分许,他们需要什么样的数据资料。
2.深入业务数据库,与后端开发人员或者业务人员进行沟通,弄清楚具体的业务逻辑,以便于后续
对数据的分析。
3.设计高效可拓展的数据接入方式,例如 Sqoop, DataX,或者定制脚本进行数据抽取。
确保数据接入的时效性(T+1?准实时?)和准确性
4.数据存储与建模,将接入的数据存储到服务器,按日期或者小时分区。
4.1构建维度建模
4.2数据分层
共分为四层 第一层是ods贴源层:原始数据层,基本保持原貌。
第二层是dwd明细数据层:这里其实可以细分为dwd与dim两个,dwd主要是指事实表,dim指的是维度表。
第三层是dws汇总数据层:对上面的数据进行汇总,制作简易的数据报表。能够解决一些业务问题。
第四层是ads应用数据层:对汇总后的数据进行更细致的划分,彻底对接业务,进行数据分析使用。
5.数据处理与开发,这是核心环节,编写代码实现数据清洗、转换、关联、聚合等逻辑:
数据清洗: 处理缺失值、异常值、格式错误、重复数据等。
数据转换: 字段解析、格式转换、数据脱敏、业务逻辑计算(如UV/DAU计算、转化率、停留时长等)
数据关联: 连接不同来源的数据(事实表关联维度表)。
数据聚合: 按不同维度(时间、地域、用户群等)进行汇总统计。
二、 增量和全量数据抽取的策略
全量抽取一般是由于业务先开始上线进行,在我们需要采集数据进行分析的时候,业务表中已经有了许多数据,因此需要全量导入。
增量抽取策略:
1.根据id进行增量抽取,一般记住上次抽取的id,后根据where条件去筛选过滤数据
where id > 100
2.根据时间分区去进行增量抽取,一般的分区时间是一天或者一个月
where update_time >= '2025-08-13'
3.根据具体的业务需求去进行增量抽取。
增量抽取跟全量抽取都是大数据开发必不可少的环节。
三、假设你在数据开发过程中遇到了表关联问题,我想搞清楚是关联上了但是关联的字段值为空,还是因为根本没有关联上导致的值为空。
下面是一个简易的例子。

解决方案如下:

更多推荐
所有评论(0)