ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

数据仓库基础知识学习笔记

2021-05-04 15:31:17  阅读:218  来源: 互联网

标签:数据分析 数据仓库 笔记 基础知识 OLAP 历史数据 数据 ETL


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

1.1 数据仓库诞生原因

  • 历史数据积存

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

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

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

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

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

在这里插入图片描述

  • 企业数据分析需要

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

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

小结

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

1.2 基本概述

数据仓库(Data Warehouse,DW)

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

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

数据仓库特点

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

数据仓库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(在线事务处理)系统中,主要操作是随机读写

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

在关系模型中,使用三范式规则来减少冗余

3.2 OLAP(在线联机分析)

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

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

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

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

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

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

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

3.2.1 OLAP多维分析

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

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

标签:数据分析,数据仓库,笔记,基础知识,OLAP,历史数据,数据,ETL
来源: https://blog.csdn.net/qq_42374697/article/details/116394469

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有