1.1 数据收集
主要数据类别:
用户行为日志数据,业务数据,历史数据,其他等数据
行为日志一般以日志文件存在的,把日志生成在日志服务器上.使用flume等采集
业务数据 一般在mysql 一般用sqoop工具采集
1.2处理流程
行为数据:
1, 日志前端埋点,生成日志数据(前端开发)
2, 数据采集 flume采集
3, 从flume采集kafka
4, Flume采集落地hdfs
5,日志预处理
6,落hive数仓明细层
1, 业务系统增删改数据库,形成数据
2, Sqoop/DataX数据抽取
3, 落hive数仓明细层
4, 新老订单增量合并处理
1.3 分层设计
分层的意义:大量的表通过分层划分,数据管理更加明晰,需要开发更加快捷,便于解耦底层业务变化.
1. ODS层 :
操作最原始的数据层.flume采集过来的原始日志
又分为流量域ODS层及业务域ODS层
流量域:日志服务器将数据生产到Kafka,使用Flume消费Kafka中的数据,再采集到hdfs集群中.
业务域:
在加载到hive表中.
以json格式文本储存
2. DWD层:
一般对ODS层的表进行加工和划分以及维度的退化等 etl操作 处理后的扁平化明细数据
清洗,过滤,降维等操作
以orc/parquet 列式存储
3. DWS层:
数仓聚合层,根据分析需求来聚合,从DWD中聚合后的数据表
如流量主题概况表,用户分布分析主题表,新用户留存表,用户活跃度主题表,交互事件主题表,站外投放主题表,站内运营主题表,优惠券主题表,红包主题表等等
4. ADS层:
从DWS进行分组,聚合得出来的报表
5. DIM层:
存储各种维表.如地理位置维度表等