IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 数据分析之数据仓库 -> 正文阅读

[大数据]数据分析之数据仓库

一、定义

数据仓库(简称“数仓”),顾名思义,存放数据的仓库,它集合了各个业务系统的数据,以金融业为例,数仓包含了贷款业务、CRM、存款业务等数据。用于企业做数据分析、出报告、做决策;在有些公司也作为各业务系统的数据来源。

从逻辑上理解,数据库和数仓没有区别,都是通过数据库软件实现存放数据的地方,只不过从数据量来说,数据仓库要比数据库更庞大。

数据库与数据仓库最主要的区别在于,传统事务型数据库如 MySQL 用于做联机事务处理(OLTP),例如交易事件的发生等;而数据仓库主要用于联机分析处理(OLAP),例如出报表等。

你可能想,数据分析、出报表等工作也可以直接通过业务数据库完成,数据仓库似乎也不是必需品。
如果是简单的系统,比如初创时期,业务量少,用户和数据少,几台服务器和几个MySQL组成的系统,那确实可以实现。但当业务越做越多,用户和数据量很庞大,出报表需要跨集群关联多个系统的数据实现的话,那数仓还是很有必要的。
如果还不能理解,先想几个问题

  • 如果你要的数据分别存放在很多个不同的数据库,甚至存在于各种日志文件中,你要如何获取这些数据?
  • 如果你从各数据源中取出了你要的数据,但是发现格式不一样,或者数据类型不一样,你要怎么规范?
  • 如果有一天你需要在业务系统查历史数据,但发现这些数据被修改过的,你要怎么办?
  • 如果要跨集群关联各个不同业务系统的数据,要怎么做?怎么优化查询时间?

数仓的出现,可以很好的解决上面这些问题。它通过数据抽取和清洗,将各个业务系统的数据整合落地到一个系统(数仓),规范化数据,方便在出报表做决策的时候获取数据。

在这里插入图片描述

二、数仓的特点

  1. 集成性
    数仓中存储的数据来源于多个数据源,原始数据在不同数据源中的存储方式各不相同。要整合成为最终的数据集合,需要从数据源经过一系列抽取、清洗、转换的过程。
  2. 稳定性
    数仓中保存的数据是历史记录,不允许被修改。用户只能通过分析工具进行查询和分析。
  3. 动态性
    数仓的数据会随时间变化而定期更新,这里的定期更新不是指修改数据,一般是将业务系统发生变化的数据定期同步到数仓,和稳定性不冲突。不可更新是针对应用而言,即用户分析处理时不更新数据。
  4. 主题性
    传统数据库对应的业务不同,数仓需要根据需求,将不同数据源的数据进行整合,即数据一般都围绕某一业务主题进行建模。例如“贷款”主题、“存款”主题等。

三、数仓分层

数仓一般是分层的,而且各个公司都基于自己的业务场景进行分层,目前的分层可以说是五花八门,没有标准答案。但是最主流的还是按照这样进行分层:
在这里插入图片描述
可能你又要问了,直接取需要的数据落地到表就行了,为什么要分层?有啥好处?

试想一下,如果不做分层,你按照需求从各个源系统抽取数据落地了一张表,哪一天老板让你在原来的基础上加个字段,你怎么做?

或者哪天这张表的数据出问题了,你如何定位是哪个模块或者环节出了问题?

数仓分层的意义在于:

  1. 减少重复开发,在数据开发的过程中可以产生中间层,将公共逻辑下沉,减少重复计算;
  2. 清晰数据结构,每个分层分工明确,方便开发人员理解;
  3. 方便定位问题,通过分层了解数据血缘关系,在出问题的时候通过回溯定位问题;
  4. 简单化复杂问题,和分治法思想类似,分而治之,将复杂的问题简单化,还能解耦

参考链接:什么是数据仓库

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-09-21 00:35:41  更:2022-09-21 00:36:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 10:18:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码