1 基本流程图

(从项目认识数仓体系一)数仓基本介绍

2 基本介绍

数据仓库(Data Warehouse),简写为DW或DWH,为企业做决策提供系统数据支持的集合。例:仓库中一个指标为用户浏览网页次数(UV),如果用户多次浏览该网页,如果是电商系统,则可以认为该用户有购买该商品意向,可对该用户进行商品推荐,或者可作为报表提供给决策层进行一些决策

数据仓库的作用并不单单是存储,而是对数进行一些处理后,将处理后的数据,分门别类的存储,作为能够支撑业务或者分析的处理后数据源,使得对应的需求能够从对应的主题中直接提取所需要的数据,这些处理包括一些清洗、转义、分类、重组、合并、拆分、统计等等。

3 数仓层介绍

(1)分层介绍

ODS:原始数据层,存放原始数据直接加载原始日志、数据,保持数据原貌不做处理。

DWD(DWI):数据明细层,结构和粒度与ODS层保持一致,对ODS层数据进行数据清洗(去除空值,脏数据,不符合要求的数据)。

DWS:数据服务层,以DWD为基础,进行轻度汇总,一般为日粒度,如用户当日、设备当日、商品当日等,通常在该层会组成跨主题的宽表,如用户签到数、浏览商品数、退款数等多字段宽表(主题可理解为对指标进行的分类聚合)。

ADS(APP/DAL/DM):数据应用层,面向实际的数据需求,以DWD或者DWS层的数据为基础,组成各种统计报表,统计结果最终同步到RDS以供BI或应用系统查询使用。

注释:通常来说数仓包括这四层,但是在不同的公司根据不同的应用场景,层数可能会有所差别,名称也会不同,各层的功能,也可能会有区别。

(2)图示

(从项目认识数仓体系一)数仓基本介绍

4 数据来源

(1)埋点(实时采集埋点的用户行为数据

行为数据,用户在使用产品过程中,与客户端产品交互过程中产生的数据,比如页面浏览、点击、停留、评论、点赞、收藏等,是数仓在计算时的数据源之一。

(2)业务数据(每天定时导入业务数据

业务数据,业务流程中产生的登录、订单、用户、商品、支付等相关的数据,这类操作属于业务数据,同样也是数仓计算的数据来源之一,通常存储在DB中,包括Mysql、Oracle等

5 数仓系统整体架构图

(从项目认识数仓体系一)数仓基本介绍

6 数仓使用技术

数据采集传输:Flume,Kafka,Logstash,DataX,Sqoop

数据存储:Hive,MySql,HDFS,HBase,S3,ES

数据计算:Spark,Hive,Tez,Flink,Storm

数据查询:Presto,Impala,Kylin

7 数仓系统数据流程图

(从项目认识数仓体系一)数仓基本介绍

注释(按从上到下从左到右顺序注释):

(1)离线计算,可计算大量数据,但是速度较慢

(2)某些公司会将业务数据与日志数据全部存入mysql

(3)相当于路由器,负责将数据分发至不同的业务服务器,保证多台服务器的负载均衡

(4)Flume构成

  • source→channel→sink
  • channel:file channel(安全,数据落盘,不会轻易丢失,速度慢)、memory channel(不安全,数据存在内存中,容易丢失,速度快)、kafka channel(无sink,把kafka直接看做sink将数据传入)
  • 拦截器:位于source与channel之间
  • 监控器(ganglia):监控数据流通是否正常
  • 内存:flume默认内存为1G,企业在使用时一般会调为4G

(5)实时计算,计算少量数据,速度快

相关文章:

  • 2021-08-25
  • 2021-12-03
  • 2022-01-20
  • 2021-09-16
  • 2021-11-08
  • 2021-04-21
  • 2021-08-30
  • 2021-06-18
猜你喜欢
  • 2021-12-13
  • 2021-04-28
  • 2021-05-27
  • 2021-12-08
  • 2021-04-10
  • 2021-07-18
  • 2021-04-01
相关资源
相似解决方案