2023.11.22 -数据仓库

目录

https://blog.csdn.net/m0_49956154/article/details/134320307?spm=1001.2014.3001.5501

1经典传统数仓架构

2离线大数据数仓架构

3数据仓库三层

数据运营层,源数据层(ODS)(Operational Data Store)

数据仓库层(DW)(Data Warehouse)

数据应用层ADS(Application Data Service) 

事实表(Fact Table)

维表层(Dimension)

4数据仓库和数据库的区别(t数据库,a仓库)

 5.关系模型(ER模型+三范式)

E-R模型(Entity-relationship model)

5.1.三范式

概述:

一、3NF知识点

5.2反范式化

 概述


补充之前的 :2023.11-9 hive数据仓库,概念,架构,元数据管理模式

https://blog.csdn.net/m0_49956154/article/details/134320307?spm=1001.2014.3001.5501

1经典传统数仓架构

阶段一: 1991年 比尔-恩门(bill inmon)出版第一版数据仓库的书, 标志数据仓库概念的确立, 称为恩门模型
    主张自上而下的建设企业级数据仓库, 建设过程中需要满足三范式要求
    从分散异构的数据源 -> 数据仓库 -> 数据集市
    
    存在问题: 
        由于三范式的建模,导致在数据分析中数据易访问性和系统的性能均收到影响

阶段二: 拉尔夫·金博尔(ralph kimball)提出自下而上的建立数据仓库,整个过程中信息存储采用维度建模而非三范式
    从数据集市-> 数据仓库 -> 分散异构的数据源
    
    优点: 
        提出了维度建模新思路, 完全以数据分析便利性为前提建设, 推出了事实-维度模型
        以最终任务为导向, 需要什么, 我们就建立什么
    
    弊端:
        随着业务的发展, 导致数据集市越来越多, 出现多个数据集的数据混乱和不一致的情况

阶段三: 1998年比尔-恩门(bill inmon)推出全新的CIF架构, 核心将数仓架构划分为不同的层次以满足不同场景的需求
    如: ODS  DW  DA层等
    
    从而明确各个层次的任务分工, 避免原有数据混乱和不一致的问题
    
    而这种思想已经成为截止到今天的建设数据仓库的指南

2离线大数据数仓架构

    大数据中的数据仓库构建就是基于经典数仓架构而来,使用大数据中的工具来替代经典数仓中的传统工具,架构建设上没有根本区别

 项目架构图

 集群管理工具: Cloudera Manager
数据源: 业务系统的Mysql与SQLServer数据库; 
数据抽取: 使用DataX实现关系型数据库和大数据集群的双向同步; 
数据存储: HDFS 
计算引擎: Hive
交互查询引擎: Presto
OLAP: PG
数据可视化: Fine Report
调度系统: DolphinScheduler(海豚调度)

3数据仓库三层

数据运营层,源数据层(ODS)(Operational Data Store)

数据运营层ODS(Operation Data Store) -也就是最接近数据源的一层,直接对接的数据源(如:业务库、埋点日志、消息队列等)。ODS数数仓的最底层。

该层是存储数量最大的、未经过太多处理的、最原数据始的一层。该层还起到一个数据备份的作用,比如特殊的行业,一般ODS层需要存储一年甚至多年,不过普通公司一般存储三个月到六个月。

一般情况下,在数据进入ODS层的时候,都会对数据做一些最基本的处理。例如:

  • 数据来源分区
  • 数据按照时间分区存储,一般按照天分区,也有一些公司按照年、月、日三级分区存储
  • 进行最基本的数据处理,如格式错误的丢弃、过滤掉关键信息丢失的数据。

注意:一般公司也会把以上的基本处理放到DWM层来进行。

数据仓库层(DW)(Data Warehouse)

  • DWD(Data WareHouse Detail) -数据细节层。该层与ODS层保持相同的数据颗粒度,区别在于,改成主要是对ODS层进行数据的清洗和规范化操作,比如说去除空数据、脏数据等。该层由于对数据处理的粒度比较细,一般情况下都是编写代码实现的。很多时候存储的是事实表、维度表和实体表。
  • DWM(Data WareHouse Middle) -数据中间层。该层主要是对DWD层做一些轻微的聚合操作,生成一些指标列的聚合结果表。
  • DWS(Data WareHouse Service) -数据服务层。该层是在DWM层基础之上,整合汇总成一个主题域的数据服务层,一般是宽表(具有多个列的表),该层为后续的业务查询、OLAP分析和数据分发提供支撑。

数据应用层ADS(Application Data Service) 

数据应用层ADS(Application Data Service) -该层主要为数据产品和数据分析提供数据支撑。一般会存放在ES、MySQL、Redis等数据库系统中,为应用系统提供数据,也可以存放在hive或者Druid中,供数据分析与数据挖掘使用,比如数据报表就是存在该层中。

事实表(Fact Table)

事实表是指存储有事实记录的表,比如系统日志、销售记录等。事实表的记录在不断地增长,比如电商的商品订单表,就是类似的情况,所以事实表的体积通常是远大于其他表。

维表层(Dimension)

维度表(Dimension Table)或维表,有时也称查找表(Lookup Table),是与事实表相对应的一种表;它保存了维度的属性值,可以跟事实表做关联,相当于将事实表上经常重复出现的属性抽取、规范出来用一张表进行管理。

4数据仓库和数据库的区别(t数据库,a仓库)

数据库与数据仓库的区别:实际讲的是OLTP与OLAP的区别
OLTP(On-Line Transaction Processin):叫联机事务处理,也可以称面向用户交易的处理系统,  主要面向用户进行增删改查

OLAP(On-Line Analytical Processing):叫联机分析处理,一般针对某些主题的历史数据进行分析 主要面向分析,支持管理决策。

数据仓库主要特征:面向主题的(Subject-Oriented )、集成的(Integrated)、非易失的(Non-Volatile)和时变的(Time-Variant)

数据仓库的出现,并不是要取代数据库,主要区别如下:

  1.     数据库是面向事务的设计,数据仓库是面向主题设计的。
  2.     数据库是为捕获数据而设计,数据仓库是为分析数据而设计
  3.     数据库一般存储业务数据,数据仓库存储的一般是历史数据。
  4.     数据库设计是尽量避免冗余,一般针对某一业务应用进行设计,比如一张简单的User表,记录用户名、密码等简单数据即可,符合业务应用,但是不符合分析。
  5.     数据仓库在设计是有意引入冗余,依照分析需求,分析维度、分析指标进行设计。

 5.关系模型(ER模型+三范式)

E-R模型(Entity-relationship model)

表示:
实体: 用矩形框表示。
属性: 实体的属性用椭圆框表示。
联系:实体间的联系用菱形框表示,并在连线上标明联系的类型,即1—1、1—n或m—n。

两个实体之间的联系
一对一(1:1):
在这里插入图片描述

一对多(1:n)
在这里插入图片描述

多对多(m:n)
在这里插入图片描述

5.1.三范式

概述:

在关系型数据库中,关于数据表设计的基本原则,规则就称为范式。可以理解为,一张数据表的设计结构需要满足的某种设计标准的级别。想要设计一个结构合理的关系型数据库,必须满足一定的范式(规则)。

范式的英文名称是Normal Form,简称NF。它是英国人E.F.codd(埃德加·弗兰克·科德)在上个世纪70年代提出关系数据库模型后总结出来的。范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则指导方法

1981年,科德因在关系型数据库方面的贡献获得了图灵奖。他也被誉为:“关系数据库之父”

3NF知识点

设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。

根据数据库冗余的大小,目前关系型数据库有六种范式,各种范式呈递次规范,越高的范式数据库冗余越小。注意: 范式就是设计数据库的通用规范,一般遵循前三种范式即可

第一范式(1NF)

第二范式(2NF)

第三范式(3NF)

巴斯-科德范式(BCNF)

第四范式 ( 4NF)

第五范式(5NF,又称完美范式)

第一范式(1NF): 强调的是列的原子性,即列不能够再分成其他几列,不可再分解;。

第二范式(2NF): 满足 1NF的基础上,另外包含两部分内容,要求记录有惟一标识,即实体的惟一性

一是表必须有一个主键;

二是非主键字段必须间接或直接的依赖于主键

第三范式(3NF): 满足 2NF的基础上,3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。另外包含

非主键列必须直接依赖于主键,不能存在传递依赖。

即不能存在:非主键列 A 依赖于非主键列 B,非主键列 B 依赖于主键的情况。

5.2反范式化

 概述

有的时候不能简单按照规范要求设计数据表,因为有的数据看似冗余,其实对业务来说十分重要。这个时候,我们就要遵循业务优先的原则,首先满足业务需求,再尽量减少冗余

如果数据库中的数据量比较大,系统的UV和PV访问频次比较高,则完全按照MySQL的三大范式设计数据表,读数据时产生大量的关联查询,在一定程度上会影响数据库的读性能。如果我们想对查询效率进行优化,反范式优化也是一种优化思路。此时,可以通过在数据表中增加冗余字段提高数据库的读性能

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/158130.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新生儿近视:原因、科普和注意事项

引言: 近年来,新生儿近视的发病率逐渐上升,引起了广泛关注。新生儿近视的原因复杂,可能受到遗传、环境和行为等多方面因素的影响。本文将深入解析新生儿近视的原因,提供相关科普知识,并为父母和监护人提供…

线性代数 - 几何原理

目录 序言向量的定义线性组合、张成空间与向量基线性变换和矩阵线性复合变换与矩阵乘法三维空间的线性变换行列式矩阵的秩和逆矩阵维度变换点乘叉乘基变换特征值和特征向量抽象向量空间 序言 欢迎阅读这篇关于线性代数的文章。在这里,我们将从一个全新的角度去探索线…

酒店预订订房小程序源码系统+多酒店入驻 功能齐全 附带完整的搭建教程

随着互联网的快速发展,越来越多的人选择通过在线预订平台预订酒店。为了满足这一需求,我们开发了这个酒店预订订房小程序源码系统。该系统基于先进的云计算技术和大数据分析,旨在为用户提供更加便捷、智能的酒店预订服务。 以下是部分代码示…

排序算法--选择排序

实现逻辑 ① 第一轮从下标为 1 到下标为 n-1 的元素中选取最小值,若小于第一个数,则交换 ② 第二轮从下标为 2 到下标为 n-1 的元素中选取最小值,若小于第二个数,则交换 ③ 依次类推下去…… void print_array(int a[], int n){f…

MySQL 数据库下载

1 最新版 MySQL :: Download MySQL Community Server 2 存档版本(Archived Versions)-历史版本 MySQL :: Download MySQL Community Server (Archived Versions) 3 下载(样例: zip 方式) tip1: 可以下载安装文件的方式,也可以使用压缩包方式&#xff…

健康饮酒进家庭,国台酒业与碧桂园服务集团达成战略合作

11月19日,碧桂园服务集团与国台酒业集团战略合作发布会暨“健康饮酒进家庭”项目启动仪式在广州举行。 广东省酒类行业协会创会会长朱思旭,广东省酒类行业协会会长彭洪,碧桂园服务集团总裁徐彬淮,碧桂园服务集团酒类业务总经理、广…

便携式自动气象站让你随时随地掌握天气变化

WX-BXQX12 随着科技的发展,人们对气象信息的掌握越来越重要。无论是在日常生活中,还是在农业生产、旅游出行等领域,了解天气变化都显得至关重要。为了满足人们对气象信息的需求,一款名为“便携式自动气象站”的创新产品应运而生。…

Java 下载地址

1 地址: Java Downloads | Oracle 2 往下翻(Java 8 和 Java 11) 3 往下翻 (JRE 下载)(JRE 8 为例) 4 跳转到登录(登录账号才可以下载)

suricata识别菜刀流量

一、捕获菜刀流量 payload特征&#xff1a; PHP: <?php eval($_POST[caidao]);?> ​ ASP: <%eval request(“caidao”)%> ​ ASP.NET: <% Page Language“Jscript”%><%eval(Request.Item[“caidao”],“unsafe”);%>数据包流量特征&#xff1a; …

解密高性能查询!小米亲授:如何轻松查出1000条数据的后十条前7条?

大家好&#xff0c;我是小米&#xff01;今天要跟大家分享一道火辣辣的面试题&#xff1a;在一张表中&#xff0c;如何高性能地查出1000条数据的后十条的前7条&#xff1f;这可是一个考察你数据库查询优化能力的好题目哦&#xff01;废话不多说&#xff0c;让我们直奔主题&…

扩散模型实战(十一):剖析Stable Diffusion Pipeline各个组件

推荐阅读列表&#xff1a; 扩散模型实战&#xff08;一&#xff09;&#xff1a;基本原理介绍 扩散模型实战&#xff08;二&#xff09;&#xff1a;扩散模型的发展 扩散模型实战&#xff08;三&#xff09;&#xff1a;扩散模型的应用 扩散模型实战&#xff08;四&#xff…

深圳锐科达SV-X7 sip话机与海康威视摄像头联动设置方法

深圳锐科达SV-X7 sip话机与海康威视摄像头联动设置方法 SIP对讲终端获取设备IP地址方式 通过长按速拨键3秒&#xff08;上电30秒后&#xff0c;即听到提示音后&#xff09;&#xff0c;待喇叭发出急促嘟嘟声&#xff0c;再快速按一下速拨键&#xff0c;设备自动语音播报本机的…

Transformer——encoder

本文参考了b站的Eve的科学频道中的深入浅出解释Transformer原理和DASOU讲AI中的Transformer从零详解。 入浅出解释Transformer原理 Transformer从零详解 前言&#xff1a; 在自然语言识别中&#xff0c;之前讲过lstm&#xff0c;但是lstm有明显的缺陷&#xff0c;就是当文本过…

从传统到智能 | 拓世法宝AI智能直播一体机为商家注入活力

2023年即将结束&#xff0c;直播仍然是商业舞台上的主旋律&#xff0c;本地生活也不例外。据数据显示&#xff0c;到2022年&#xff0c;中国本地生活服务市场规模已经达到29.8万亿元&#xff0c;而预计到2025年&#xff0c;这一数字将继续攀升至35.3万亿元。伴随着当地生活直播…

Arguments对象

Arguments 对象 arguments 基本定义 首先arguments是以内置对象出现的。换句话说&#xff1a;你不能够直接的去访问arguments对象&#xff0c;所以你会返现在浏览器中直接访问arguments对象是不存在的。 特别重要&#xff1a; 那么arguments对象本质上是什么东西呢&#xff…

Java零基础——Spring篇

1.Spring框架的介绍 1.1 传统的项目的架构 在传统的项目中&#xff0c;一般遵循MVC开发模型。 (1) view层与用户进行交互&#xff0c;显示数据或者将数据传输给view层。 (2) 在controller层创建service层对象&#xff0c;调用service层中业务方法。 (3) 在service层创建dao…

Linux docker安装RStudio Server结合内网穿透实现公网访问内网服务

&#x1f4f7; 江池俊&#xff1a; 个人主页 &#x1f525;个人专栏&#xff1a; ✅数据结构探索 ✅cpolar &#x1f305; 有航道的人&#xff0c;再渺小也不会迷途。 文章目录 前言1. 安装RStudio Server2. 本地访问3. Linux 安装cpolar4. 配置RStudio server公网访问地址5…

kibana 7安装

手动安装 下载 wget https://artifacts.elastic.co/downloads/kibana/kibana-7.17.15-linux-x86_64.tar.gz 解压 mv kibana-7.17.15-linux-x86_64.tar.gz /usr/local tar -zxvf kibana-7.17.15-linux-x86_64.tar.gz chown -R es:es kibana-7.17.15-linux-x86_64修改配置 s…

解决VSCode运行时自动保存问题【图文解析】

用VSCode写前端时老是自动保存&#xff0c;代码还没写完就开始 刷新页面 调用接口 出现报错之类的&#xff0c;很烦人&#xff0c;所以就写一篇修改VSCode自动保存文件的文章&#xff0c;以免自己忘记在哪设置。 同事总是用不自动保存&#xff0c;每次写完都要ctrls一下&#x…

电脑文件夹加密怎么操作?保护数据4个方法分享!

“大家平常是怎么给电脑文件夹加密的呀&#xff1f;我有一些比较重要的数据&#xff0c;为了不让别人看到&#xff0c;我想把它们加密&#xff0c;应该怎么操作呢&#xff1f;” 平常使用电脑时&#xff0c;可能很多朋友会将很多重要的数据保存在电脑上。但是有些文件对用户来说…