数据仓库学习

数据仓库 Data Warehouse, DW

面向主题的、集成的、非易失的且随时间变化的数据集合。主要用于组织积累的历史数据,并使用分析方法(OLAP、数据分析)进行分析整理。

数仓诞生原因

(1)历史数据积存:使用频率低,数据挤压导致性能下降

(2)企业数据分析需要:防止各部门抽取数据不一致,通过数仓每天/每时定期抽取数据,使企业中取得的数据具有统一性。数仓可直接调用API接口,对各个部门访问权限可控。

大数据处理流程

(1)数据抽取:数据采集、数据清洗
(2)数据存储:数据清洗、数据仓库、数据后台
(3)数据提取:数据处理、数据建模、数据可视化

(一)数据抽取

对数据进行【可批处理】/【需实时处理】的分类,需要结合业务考虑,因为实时处理要求高,而批处理便宜。集群资源是有限的,需要合理利用计算资源。


数据抽取.png
(二)数据存储
(1)数据处理

1.数据的前后一致:比如数据名称

2.数据的通用性:比如日期排列格式

3.数据的存储

4.考虑数据仓库的易用性

5.数据的安全性:不泄漏/不丢失/安全性

(2)数据分层存储
数据存储是分层架构的,架构模式与数据拉取方式和方便对数据进行处理两方面考虑,一般是三层数据仓库:
数据分层存储.png

①贴源层ODS

②历史存储层MID

③数据模型层DM

(三)数据库提取

将多份数据查出来,互相关联合并,生成一张新的表单。

数据仓库的技术实现

传统数据仓库

有关系型数据库组成MPP(大规模并行处理)集群,比如mysql等。单机数据库。

大规模并行处理:将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的结果(与Hadoop相似)。一般用中间件充当负载均衡等能力。

缺点
  1. 拓展性有限,数据交换需要高速网络来支撑
  2. 热点问题,只能通过数据加盐(给数据加个随机前缀,随机查询)的操作来解决
数据库的中间件
  1. 分库分表
  2. 读写分离
大数据数据仓库

分布式文件系统,默认会对数据进行备份

缺点
  1. 缺少事物支持(?啥意思)
  2. 任务少时计算较慢
  • MPP架构
  1. 扩展性较差

  2. 优先考虑C(一致性)、A(可用性)、P(分区容错性)

  • 大数据架构(hadoop架构)
  1. 数据共享,不会出现单点挂了的现象,但数据吞吐量大,
  2. 优先考虑的是P(分区容错性)、A(可用性)、C(一致性)
  3. 也非常适合处理非结构化,半结构化数据

架构

  • 数据应用层 ADS

    • 报表决策
    • 并发查询
    • 搜索检索
  • 公共维度模型层 CDM

    • 数据汇总层DWS
    • 数据明细层DWD
  • 操作数据源层 ODS

    • 原始数据
  • 数据清洗层ETL

    • Sqoop
    • Kattle
    • Other
  • 数据表

架构.png

一般ETL流程数据积存(ODS层) ,数据分析在DWD、DWS、ADS层。

数据应用层 ADS

也被称为数据集市。以报表的形式提供给业务系统进行展示,为外部世界提供访问接口。

公共维度模型层 CDM

(1)数据汇总层DWS

对各个明细表进行一个汇总,按照分析主题融合成一张宽表。模型并非3NF,更注重的是数据聚合、复杂查询、处理性能更优的数仓模型,如维度模型等。数据仓库的模型设计出现在本层。

(2)数据明细层DWD

数据明细层对ODS层的数据进行清洗、标准化、维度退化(时间、分类、地域)。模型仍是3NF模型

操作数据源层 ODS

与原始数据保存一致,不允许修改,原始数据的扩充集,如更新类型等(插入、更新)。

数据清洗层ETL(Extraction Transformation Loading)

数据仓库通过ETL实现定期从数据表中同步数据(数据抽取)

数据抽取Extraction

抽取的数据源可分为结构化、半结构化、非结构化数据。

结构化数据一般采用JDBC(JAVA数据库连接)、数据库日志方式;非/半结构化数据监听文件变动。

抽取方式:

  1. 全量同步:一般用于初始化数据装载
  2. 增量同步:检测数据的变动,抽取发生变动的数据,一般用于数据更新

ETL的规则设计占整个数据仓库搭建量的60%~80%。

数据转化 Transformation

主要针对非/半结构化数据

数据加载Loading

将处理完的数据导入对应的目标源里。

常见的ETL工具

  • 结构化数据:Sqoop、Kettle、Datastage、Information、Kafka(消息队列)

  • 非/半结构化数据:Flume、Logstash(Elastic家族产品)

建模

OLTP( on-line transaction processing,翻译为联机事务处理,主要是数据库- 增删改,日常操作)

OLTP和OLAP.png

两者介绍

OLTP:记录业务事件的发生,以增删改的方式在数据库中进行数据的更新处理操作。常见的业务系统如ERP,CRM,OA等。
OLAP:当数据积累到一定程度的时候,对过去一段时间内的数据拿出来做统计分析,就是OLAP。

可以说OLTP是数据库的应用,OLAP是数据仓库的应用。

OLTP和OLAP.png

OLAP又分为ROLAP(关系型联机分析处理)MOLAP(多维联机分析处理)

建模方法
OLTP(在线事务处理)

主要操作是随机读写。为保证数据一致性,常采用的关系模型,使用三范式(3NF)来减少冗余。

OLTP.png
OLAP(在线联机分析)

更关注于分析数据,关注数据整合。

根据数据存储方式不同,又分为ROLAP、MOLAP、HOLAP。

  • ROLAP (relation OLAP,关系型OLAP):使用关系模型构建,存储系统一般为RDBMS(关系数据库管理系统)。
  • MOLAP(Multidimensional OLAP,多维型OLAP):预先聚合计算,使用多维数组的形式保存数据结果,加快查询分析时间。不存明细数据(表数据),只存结果。
  • HOLAP(Hybrid OLAP,混合架构的OLAP):ROLAP和MOLAP两者的集成;如低层是关系型的,高层是多维矩阵型的;查询效率高于ROLAP,低于MOLAP。
ROLAP建模方法

一般采用维度模型建模方法(维度:对事物进行组织、分类)。

image-20210628092416583.png

维度模型:分为星型模型雪花模型星座模型

1、星型模型

维度只有一层,分析性能最优。

image-20210628092703971.png

2、雪花模型

多层维度,较为灵活,但性能较差。

image-20210629082029259.png

3、星座模型

基于多个事实表,事实表之间会共享一些维度表。

业务增长的情况下形成的,是公司中最常见的。

*宽表模型

维度模型的衍生。


image-20210629082234301.png
MOLAP建模方法

MOLAP将数据进行预结算,并将聚合结果存储到CUBE模型中

CUBE模型以多维数组的形式,物化到存储系统中,加快后续的查询

生成CUBE需要大量的时间、空间,维度预处理可能会导致数据膨胀。

image-20210629082758123.png

常见的MOLAP产品:Kylin、Durid

OLAP多维分析

OLAP主要操作是复杂查询,可以多表关联,使用COUNT等聚合函数。

OLAP对复杂查询操作做了直观定义,包括钻取、切片、切块、旋转:

image-20210629083225483.png

实践理论

表类型
  • 事实表

    存储显示存在的业务对象。

  • 维度表

    对应的业务状态,方便对数据进行统计、聚合等计算。

  • 事实事物表

    随着业务产生数据,产生后不会修改。

  • 周期快照事实表

    随着业务周期的推进而变化,如年、季度累积。是周期+状态度量的组合,如年累积订单数(年-周期,订单总数-量度)。

  • 累积快照事实表

    记录不确定周期的度量统计,完全覆盖一个事实的生命周期,如订单状态表。只有一条记录,多个时间字段。

    *因为可修改,实现难度较大。

累积快照事实表实现

(1)日期分区表,全量数据记录,每天的分区存储昨天全量数据与当天增量数据合并的结果。但数据量大将导致全量表膨胀,存储永远不更新的冷数据,对性能影响较大。*仅适用于数据量少的情况。

(2)日期分区表,推测数据最长生命周期,存储周期内的数据;周期外的冷数据存储到归档表。需要保留多天的分区数据,存储消耗依然很大。

(3)日期分区表,以业务实体的结束时间分区,每天的分区存放当天结束的数据。另外设计一个时间非常大的分区,存放截止当前未结束的数据。有点:数据无冗余。

*拉链表

记录每条信息的生命周期,保留数据的所有变更状态。表数据的随机修改方式是增序追加。

image-20210629204151937.png
ETL策略
  • 全量同步
  • 增量同步
任务调度

主要为了解决任务单元间的依赖关系和自动化完成任务的定时执行。

image-20210629204852746.png

常见的任务类型有Shell,Java程序,Mapreduce程序、SQL脚本。

常见的调度工具:Azkaban、Oozie

除了任务调度系统,还有一个资源调度系统*,要注意两者是不一样的。

  • 任务调度系统负责一个任务何时运行,何时结束以及正确的处理任务之间的依赖关系。流程的正确性是核心;
  • 资源调度系统更关注系统物理资源的分配,例如CPU、内存等的使用。系统资源的最大化利用才是核心。

如上图,Presto用于快速查询,提供数据查询接口,hive用于离线批处理,Azkaban用于数据调度。

image-20210629205740823.png

课程示例


image-20210629212108900.png

主节点:node01

  • Hive&Tez-node03,给主节点留出更多资源。
  • mysql搭载在node02上是为了负载均衡,从node02上进行数据抽取。
  • Sqoop-node03,不放在业务节点中,防止负载。

*Sqoop是连接关系型数据库和Hadoop的桥梁(导入和导出)。可以通过调整任务数来控制任务的并发度。

image-20210629213010668.png
数据产品分类

(1)报表型:静态报表、DashBoard、即席查询

(2)多维分析型:OLAP等工具型

(3)定制服务型

(4)智能型:精准营销,将大数据的智能性融入产品、并与决策逻辑结合起来。

(5)使能型

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,634评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,951评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,427评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,770评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,835评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,799评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,768评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,544评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,979评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,271评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,427评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,121评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,756评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,375评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,579评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,410评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,315评论 2 352

推荐阅读更多精彩内容

  • 1.数据仓库是什么? 数据仓库是一个从多个数据源收集的信息存储,存放在一个一致的模式下,并通常驻留在单个站点。数据...
    徐薇薇阅读 478评论 0 0
  • 事实表、维度表、维度、度量 事实表:一般为具有可统计量化的信息的表。如订单表适合作为事实表,其中有订购数量、订单金...
    顾道夫阅读 508评论 0 0
  • 文章转载自:IT叶子兽 人工智能层的:智慧地球、智慧城市、智慧社会企业层面的:数字互联网,数字经济、数字平台、数字...
    数据僧阅读 869评论 0 4
  • 数据仓库概念汇总 目录 一、术语............................................
    起个什么呢称呢阅读 4,308评论 2 23
  • 数据仓库是面向主题的、集成的、时变的和非易失的有组织的数据集合,支持管理决策制定。不同于面向OLTP(On-Lin...
    VentLam阅读 4,458评论 6 36