数仓项目实战

项目介绍
项目技术选型:
基础设施:hive
数据存储平台:hdfs
资源调度及监控平台:yarn
运算引擎:spark
日志采集工具:flume
任务调度工具:azkaban
元数据管理系统:atlas

分层设计:
分层原因:
数据仓库中的数据表,往往是分层管理、分层计算的;
所谓分层,具体来说,就是将大量的数据表按照一定规则和定义来进行逻辑划分;
分层的意义:数据管理更明晰!运算复用度更高!需求开发更快捷!便于解耦底层业务(数据)变化!

ODS层:操作数据(最原始的数据)层 – 贴源层
DWD层:数仓明细层,一般是对ODS层的表按主题进行加工和划分;
DWS层:数仓汇总层
ADS层: 应用层,主要是一些结果报表!
DIM层:存储维表

分层详解
ODS层
ODS层:源数据层,分为流量域ODS层及业务域ODS层

流量域ODS层 : 数据来源于日志服务器(用户行为日志数据(APP端和WEB端)),日志服务器将数据生产到Kafka,然后使用Flume日志采集工具消费Kafka中的数据并将数据采集到Hdfs集群,在Hive中将数据加载到ODS层的Hive表中,这样就完成了原始数据的采集
业务域ODS层:数据来源于业务系统中的关系型数据库mysql,采用sqoop抽取工具将数据从mysql导入到Hdfs中,再在Hive中将数据加载到ODS层相应的表中
数据内容:存放flume采集过来的原始日志
存储格式:以json格式文本文件存储

ODS层详细设计
数据采集:
采集源:KAFKA
TOPIC:app_log, wx_log,web_log
采集工具:FLUME
ODS层功能
ODS:操作数据层
主要作用:直接映射操作数据(原始数据),数据备份;
建模方法:与原始数据保持完全一致
存储周期:相对来说,存储周期较短;视数据规模,增长速度,以及业务的需求而定;对于埋点日志数据ODS层存储,通常可以选择3个月或者半年

DWD层
DWD层:数据明细层,对ODS层数据做ETL处理后的扁平化明细数据,同样分为流量域DWD层及业务域DWD层
流量域DWD层:将数据在ODS层进行ETL操作(先对ODS层数据进行清洗,过滤去除json数据体中的废弃字段,过滤掉json格式不正确的(脏数据)),降维等操作),再抽取到DWD层.主要做了一些明细化加工和数据关联,形成一些大宽表,比如,日志数据这块,我们根据事件信息的不同字段结构,做了扁平化的几张主题事件表(比如pv类事件明细表,广告类事件明细表,交互类事件明细表等);
业务域DWD层:抽取ODS层每天的增量数据,与DWD层每天的全量数据进行合并,得到DWD层当天的全量数据并写到DWD层,主要是做了一些表关联,比如订单数据&#x

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值