大数据数仓基础知识学习笔记【1】

学习笔记
学习渠道:https://www.bilibili.com/video/BV1qv411y7Wv?p=1

1.1 数据仓库诞生原因

  • 历史数据积存

历史数据使用频率低,堆积在业务库中,导致性能下降

随着业务的进行,会源源不断的产生数据,这些业务数据都会存储在业务数据库中,如 MySQL、Oracle 当中,支持业务系统的运行。

但当线上的业务系统运行超过一定时间,其积压的历史数据就会越来越多,对业务数据库就会产生一定的负载,导致业务系统运行速度降低。

而这些历史数据中,有相当一部分是冷数据,即业务系统一般对最近产生的数据(当天、一周内、一个月内)调用比较频繁,对较早之前的数据调用频率很低。

所以为了避免随着时间的推移,历史数据积压对业务数据库产生的影响,从而影响业务的正常运行,企业需要定期将积压的历史数据从业务数据库中转移出去,存储到一个专门存放历史数据的仓库中。这就是数据仓库。

在这里插入图片描述

  • 企业数据分析需要

企业将历史数据存储到数据仓库中后,这些数据不仅可以改善业务数据库的性能;还可以用来进行数据分析,从而辅助管理层进行决策。以历史数据积存为导向,这种发展是顺其自然的。

但有的企业开始并没有历史数据积存,然而仅仅是对数据分析特别看重。这些企业可能会存在多个部门需要进行数据分析的任务。这些企业建立数据仓库的原由,是以数据分析为导向的。

小结

企业无论是以历史数据积存,还是数据分析为导向建立的数据仓库。数据积存、数据分析,这两个都是数据仓库的基本功能与建设目的。

1.2 基本概述

数据仓库(Data Warehouse,DW)

数据仓库是一个面向主题的、集成的、非易失的且随时间变化的数据集合

主要用于历史数据的积存,并使用分析方法(OLAP、数据分析)进行分析整理,进而辅助决策,为管理者、企业系统提供数据支持,构建商业智能

数据仓库特点

  • 面向主题:为数据分析提供服务,根据主题将原始数据集合在一起
  • 集成:原始数据来源于不同数据源,要整合成最终数据,需要经过抽取、清洗、转换的过程(对数据进行统一的标准化、规范化)
  • 非易失:保存的数据是一系列历史快照,不允许被修改,只允许通过工具进行查询、分析
  • 时变性:数仓会定期接收、集成新的数据,从而反映出数据的最新变化

引用:《Hadoop构建数据仓库实践》

数据仓库里的数据是来自于各种不同的数据源。

数据仓库就是整合多个数据源的历史数据进行细粒度的、多维的分析,可以有效地帮助高层管理者或者业务分析人员做出商业战略决策或商业报表。

数据仓库VS数据库

  • 数据库面向事务设计,属于OLTP(在线事务处理)系统,主要操作是随机读写;在设计时尽量避免冗余,常采用符合范式规范来设计

  • 数据仓库是面向主题设计的,属于OLAP(在线分析处理)系统,主要操作是批量读写;关注数据整合,以及分析、处理性能;会有意引入冗余,采用反范式方式设计

在这里插入图片描述
在这里插入图片描述

数仓主要是面向分析的

1.3 数据仓库的技术实现

传统数据仓库

由关系型数据库组成MPP(大规模并行处理)集群

大数据数据仓库

利用大数据天然的扩展性,完成海量数据的存放
将SQL转换为大数据计算引擎任务,完成数据分析

在这里插入图片描述

分布式文件方式存储,在上层数据处理的时候,采用元数据,把同步出来的文件还原为表结构,解决了传统数仓中的扩展性以及热点性问题

大数据仓库 缺少事务支持,但是事务对于大数据数仓并没有那么的重要,因为数据仓库面向的是分析

大数据数仓在数据量很少的时候,效率反而很低

1.3.1 MPP架构 & 分布式架构(Hadoop架构)

1.4 常见数据仓库产品

传统数据仓库

  • Oracle RAC
  • DB2
  • Teradata
  • Greenplum

大数据数据仓库

  • Hive
  • Spark SQL
  • HBase
  • Impala
  • HAWQ
  • TIDB

2 第二部分

2.1 数据仓库的架构

在这里插入图片描述

ETL(抽取、转换、加载)完成数据的接入

ODS保存原始数据,完成数据的积存功能

DWS DWD 为数据分析提供服务

ADS 保存结果数据

在这里插入图片描述

2.2 ETL

将数据从来源端经过抽取(extract)、交互转换(transform)、加载(load)至目的端的过程

在这里插入图片描述

ETL是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去

ETL规则的设计和实施约占整个数据仓库搭建工作量的60%~80%

ETL负责将分布的、异构数据源中的数据抽取到临时中间层后进行清洗,转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础。
在这里插入图片描述
数据抽取(Extraction)
抽取的数据源可以分为结构化数据、非结构化数据、半结构化数据
结构化数据一般采用JDBC、数据库日志方式,非半结构化数据会监听文件变动

数据转换(Transformation)
数据转换要经历数据清洗转换两个阶段
数据清洗主要是对出现的重复、二义性、不完整、违反业务或逻辑规则等问题的数据进行统一的处理

数据转换主要是对数据进行标准化处理,进行字段、数据类型、数据定义的转换

数据加载(Loading)
将最后处理完的数据导入到对应的目标源里

2.2.1 常见的ETL工具

  • 结构化数据ETL工具
    Sqoop
    Kettle
    Datastage
    Informatica
    Kafka

  • 非半结构化数据ETL工具
    Flume
    Logstash

2.3 ODS 数据操作层

数据存积

数据与原业务数据保持一致,可以增加字段用来进行数据管理

存储的历史数据是只读的,提供业务系统查询使用

业务系统对历史数据完成修改后,将update_type字段更新为UPDATE,追加回ODS中

在这里插入图片描述
在离线数仓中,业务数据定期通过ETL流程导入到ODS中,导入方式有全量、增量两种

  • 全量导入:数据第一次导入时,选择此种方式

  • 增量导入:数据非第一次导入,每次只需要导入新增、更改的数据,建议使用外连接&全覆盖方式

2.4 DWD 数据明细层

数据分析

数据明细层对ODS层的数据进行清洗、标准化、维度退化(时间、分类、地域)

数据仍然满足3NF模型,为分析运算做准备

在这里插入图片描述

2.5 DWS 数据汇总层

数据汇总层的数据对数据明细层的数据,按照分析主题进行计算汇总,存放便于分析的宽表

存储模型并非3NF,而是注重数据聚合,复杂查询、处理性能更优的数仓模型,如维度模型

在这里插入图片描述

2.6 ADS 数据应用层

数据应用层也被称为数据集市

存储数据分析结果,为不同业务场景提供接口,减轻数据仓库的负担

数据仓库擅长数据分析,直接开放业务查询接口,会加重其负担

在这里插入图片描述

第三部分

3.1 OLTP(在线事务处理)

联想传统数据库

OLTP(在线事务处理)系统中,主要操作是随机读写

为了保证数据一致性、减少冗余,常使用关系模型(E-R模型)

在关系模型中,使用三范式规则来减少冗余,E-R模型的原则就是对表进行拆分,拆分后满足3NF范式规则

3.2 OLAP(在线联机分析)

更关注分析性能的

OLAP系统,主要操作是复杂分析查询:关注数据整合,以及分析、处理性能

OLAP根据数据存储的方式不同,又分为ROLAP,MOLAP,HOLAP ,其目的都是加快数据分析功能

  • ROLAP(Relation OLAP,关系型OLAP):使用关系模型构建,存储系统一般为RDBMS

    ROLAP系统建模方法,典型的数据仓库建模方法有ER模型维度模型Data ValueAnchor

在这里插入图片描述

常使用维度模型

维度:对数据的一种组织方式,比如时间、地域、 分类

在维度模型中,表被分为维度表、事实表,维度是对事实的一种组织

维度一般包含分类、时间、地域

在这里插入图片描述
维度模型根据事实表、维度表排布的方式,可以分为星型模型、雪花模型、星座模型

维度模型建立后,方便对数据进行多维分析

联想上面的京东例子,在不同的维度下,有不同的事实,比如品牌维度,不同的品牌,就有不同的手机信息事实(比较下面的宽表模型,可拉到下面)
在这里插入图片描述
那么针对,不同的维度,可以进行不同的分析

在这里插入图片描述
星型模型

标准的星型模型,维度只有一层,分析性能最优(比如,按照时间去聚合,找到时间维度表后,对事实表进行直接聚合即可),也就是上面这种

在这里插入图片描述

雪花模型

雪花模型具有多层维度,比较接近三范式设计,较为灵活
在这里插入图片描述

星座模型

星座模型基于多个事实表,事实表之间会共享一些维度表

是大型数据仓库中的常态,是业务增长的结果,与模型设计无关

在这里插入图片描述


补充

引用:快速入门数据仓库在这里插入图片描述

在这里插入图片描述

宽表模型
宽表模型是维度模型的衍生,适合join性能不佳的数据仓库产品
宽表模型将维度冗余到事实表中,形成宽表,以此减少join操作

DWS就是按这个事

对于大数据数据仓库,join性能不佳,可能就会演化为宽表
在这里插入图片描述

  • MOLAP(Multidimensional OLAP,多维型OLAP):预先聚合计算,使用多维数组的形式保存数据结果,加快查询分析时间,面向ADS层

在这里插入图片描述

  • HOLAP(Hybrid OLAP,混合架构的OLAP):ROLAP和MOLAP两者的集成;如低层是关系型的,高层是多维矩阵型的;查询效率高于ROLAP,低于MOLAP

3.2.1 OLAP多维分析

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

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

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
好的,我会尽力回答你关于大数据技术与应用的问题,以下是我的笔记: 1. 什么是大数据大数据是指数据量过大、处理复杂度高、价值密度低的数据。大数据具有“3V”特征:数据量大(Volume)、处理速度快(Velocity)、数据种类多(Variety)。 2. 大数据技术有哪些? 大数据技术主要分为存储、处理、分析三个方面。常用的大数据技术包括:Hadoop、Spark、Hive、HBase、Storm、Kafka等。 3. 大数据的应用场景有哪些? 大数据的应用场景非常广泛,包括但不限于以下几个方面: - 金融行业:风险控制、反欺诈、客户画像等; - 零售行业:销售预测、商品推荐、库存管理等; - 医疗行业:病人监测、疾病预测、数据分析等; - 交通行业:智能交通、交通拥堵预测、车辆管理等; - 教育行业:学生画像、教育资源管理、教学效果分析等。 4. 大数据的处理流程是什么? 大数据的处理流程可以分为以下几个步骤: - 数据采集:收集原始数据; - 数据存储:将采集到的数据存储到大数据平台中; - 数据清洗:对数据进行清洗,去除脏数据; - 数据处理:使用大数据技术对数据进行处理和分析; - 数据可视化:将处理后的结果以图形方式展现出来。 5. 大数据的挑战有哪些? 大数据的挑战主要包括以下几个方面: - 数据存储:海量数据的存储需要大量的存储空间; - 数据处理:海量数据的处理需要大量的计算资源; - 数据质量:大数据中存在大量的脏数据,需要进行数据清洗; - 数据安全:大数据中包含大量的敏感信息,需要保证数据安全; - 人才短缺:大数据技术需要专业的人才支持,但是目前人才供不应求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值