离线数仓整体流程(面试必备)

本文详细介绍了离线数据仓库的工作流程,包括数据来源、传输、处理和展示。电商数据通过nginx和springboot发送到日志服务器,由flume收集到kafka,再传输至hdfs。业务数据使用sqoop导入hdfs。数据处理阶段,通过hql和脚本在azkaban上执行定时任务,结果存储于mysql。数据仓库分为ods、dwd、dws和ads四层,确保数据清洗和分析。同时讨论了为何使用kafka作为中间层以及hadoop的配置细节,如lzo和snappy压缩、orc格式和tez计算引擎。
摘要由CSDN通过智能技术生成

在这里插入图片描述
系统数据流通过程:
电商数据来源分为两部分:
(1)第一部分在网站做埋点,用户点击产生的日志数据,通过nginx,springboot将数据分发到日志服务器,logfile保存在日志服务器上。
(2)第二部分是网站的业务数据,一般保存在mysql数据库。
数据传输
日志数据通过flume收集,然后保存到kafka,再通过flume传输到hdfs。
业务数据直接通过sqoop导入到hdfs。
数据处理
编写hql以及脚本程序,放在azkaban上作为每日定时任务,将最后结果导入到mysql数据库。
数据展示
在页面上展示完成后放在mysql的数据。

flume采集日志
1.自定义了ETL拦截器和分类型拦截器。
ETL拦截器实现了简单的数据过滤和清洗。注意复杂的清洗还是在hive中清洗,flume只适合做一些最简单的清洗,因为它在复杂的数据清洗上性能并不是很好。
分类型拦截器主要是对数据进行分发到kafka不同的topic中去,所以需要配置不同通道的selector。

问题:为什么增加一层kafka和一层flume而不是直接由flume采集日志到hdfs上。因为考虑到后期采集的日期数据可能会重复利用,比如实时计算。如果后面重新搭建flume来采集既费时又浪费资源。所以统一保存在kakfa中。其它业务有需求直接从kafka中去数据。

数据仓库一般分为4层:
ods:数据原始

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值