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.rhkb.cn/news/200833.html

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

相关文章

全志R128芯片RTOS调试指南

RTOS 调试指南 此文档介绍 FreeRTOS 系统方案支持的常用软件调试方法,帮助相关开发人员快速高效地进行软件调试,提高解决软件问题的效率。 栈回溯 栈回溯是指获取程序的调用链信息,通过栈回溯信息,能帮助开发者快速理清程序执行…

tomcat (SCI)ServletContainerInitializer 的加载原理

问题:使用WebScoket的时候发现通过ServerEndpoint方式注册上去的url无法访问,报错404 经过排查发现在WsServerContainer这个类中的addEndpoint方法一直没有触发ServerEndpoint注解的扫描 通过该方法来源于StandardContext.startInternal()方法的调用如下…

NOIP2015提高组第二轮T1:能量项链

题目链接 [NOIP2006 提高组] 能量项链 题目描述 在 Mars 星球上,每个 Mars 人都随身佩带着一串能量项链。在项链上有 N N N 颗能量珠。能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数。并且,对于相邻的两颗珠子&#xff0…

无法创建 8192 MB 的匿名分页文件: 系统资源不足,无法完成请求的服务。

好久没用VMware Workstation,今天突然要用,发现所有的虚机在启动的时候提示都提示: 无法创建 XXXX MB 的匿名分页文件:页面文件太小,无法完成操作。 未能分配主内存。 模块"MainMem"启动失败。 未能启动…

NX二次开发UF_CAM_PREF_ask_logical_value 函数介绍

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_CAM_PREF_ask_logical_value Defined in: uf_cam_prefs.h int UF_CAM_PREF_ask_logical_value(UF_CAM_PREF_t pref, logical * value ) overview 概述 This function provides …

CI/CD - jenkins

目录 一、部署 1、简介 2、部署 二、配置 三、实时触发 四、自动化构建docker镜像 五、通过ssh插件交付任务 六、添加jenkins节点 七、RBAC 八、pipeline 九、jenkins结合ansible参数化构建 1、安装ansible 2、新建gitlab项目 3、jenkins新建项目playbook 一、部…

Golang起步篇(Windows、Linux、mac三种系统安装配置go环境以及IDE推荐以及入门语法详细释义)

Golang起步篇 Golang起步篇一. 安装Go语言开发环境1. Wondows下搭建Go开发环境(1). 下载SDK工具包(2). 解压下载的压缩包,放到特定的目录下,我一般放在d:/programs下(路径不能有中文或者特殊符号如空格等)(3). 配置环境变量步骤1:先打开环境变…

2023年国自然植物科学相关面上项目信息公布(小麦、大麦、棉花、大豆、玉米)

2024年申报国自然项目基金撰写及技巧http://mp.weixin.qq.com/s?__bizMzA4NTAwMTY1NA&mid2247575761&idx1&sn32dbacd3393f3b76a1e0668e4b8b3c89&chksm9fdd7c08a8aaf51ec31d4790067bb57751a09947eeb7e728b8c008d26b89adba37e0cab32a62&scene21#wechat_redi…

HandBrake :MacOS专业视频转码工具

handbrake 俗称大菠萝,是一款免费开源的视频转换、压缩软件,它几乎支持目前市面上所能见到的所有视频格式,并且支持电脑硬件压缩,是一款不可多得的优秀软件 优点 ∙Windows, Linux, Mac 三平台支持 ∙开源、免费、无广告 ∙支…

开发上门送桶装水小程序要考虑哪些业务场景

上门送水业务已经有很长一段时间了,但是最开始都是给用户发名片、贴小广告,然后客户电话订水,水站工作人员再上门去送,这种人工记单和派单效率并不高,并且电话沟通中也比较容易出现偏差,那么根据这个情况就…

Java线程的学习

本来我以为这可能只是Java里的一小块知识点,但当我搜索自己关注的Up主的网课时,觉得还是开一个系列来记录好了。我的记录绝不仅仅是照搬课程中的内容,我会带上自己的理解以及示例代码、并且是按照本人的专业课老师上课的节奏来记录&#xff0…

算法---腐烂的橘子

题目 在给定的 m x n 网格 grid 中,每个单元格可以有以下三个值之一: 值 0 代表空单元格; 值 1 代表新鲜橘子; 值 2 代表腐烂的橘子。 每分钟,腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。 返回 直到单元格…

详解Python Tornado框架写一个Web应用全过程

Tornado是什么 之前在看Jupyter组件的源码的时候,发现了tornado这个web框架。 不仅仅做一个web框架, 通过使用非阻塞网络I/O,Tornado可以扩展到数万个开放连接。 这样非常适合 long polling , WebSockets 以及其他需要与每个用户…

2019ICPC南京站

A A Hard Problem 题意&#xff1a;给定一个正整数 n &#xff0c;你需要找出最小整数 k&#xff0c;满足&#xff1a;从{1,2,⋯,n}中任意选择长度为k的子集&#xff0c;存在两个不同的整数 u,v∈T, 且 u 是 v 的因数。 思路&#xff1a;打表找规律 #include <bits/std…

深入解析数据结构与算法之堆

文章目录 &#x1f966;引言&#xff1a;&#x1f966;什么是堆&#x1f966;大顶堆与小顶堆&#x1f9c4;大顶堆&#xff08;Max Heap&#xff09;&#x1f9c4;小顶堆&#xff08;Min Heap&#xff09; &#x1f966;堆的表示&#x1f9c4;数组表示&#xff1a;&#x1f9c4;…

ROS2串口通讯serial库(适用于humble版本)

要的串口操作的API介绍在这里&#xff1a;serial: serial::Serial Class Reference (wjwwood.io) 但是我们不是直接利用上面这个东西&#xff0c;而是使用的是根据这个改写的一个针对ros2的一个serial库&#xff0c;这个serial库是根据上面这个库改写来的&#xff0c;ros2的库在…

渗透测试高级技巧(一):分析验签与前端加密

“开局一个登录框” 在黑盒的安全测试的工作开始的时候&#xff0c;打开网站一般来说可能仅仅是一个登录框&#xff1b;很多时候这种系统往往都是自研或者一些业务公司专门研发。最基础的情况下&#xff0c;我们会尝试使用 SQL 注入绕过或者爆破之类的常规手段&#xff0c;如果…

【STM32】TF卡FTA32文件系统

一、SD卡介绍 1.SD简介 本质&#xff1a;NandFlash控制芯片 2.SD卡存储容量等级 3.FAT文件系统的使用 4.SD卡速度等级 5.SD卡驱动方式 1.SDIO&&SD 1&#xff09;SDIO接口通信线&#xff1a;CLK/CMD/DAT0-3&#xff08;数据传输线4根&#xff09; 2&#xff09;SPI接口…

CodeWhisperer 一款好玩的 AI 插件

忙里抽闲&#xff0c;今天试了试 CodeWhisperer 这款插件&#xff0c;我是在 IDEA 中做的测试&#xff0c;下面是我的一些使用感想&#xff1a; 安装 CodeWhisperer 插件&#xff1a;在 IntelliJ IDEA 中&#xff0c;可以通过插件管理器安装 CodeWhisperer 插件&#xff0c;然…

基于Cortex®-M4F的TM4C123GH6NMRT7R 32位MCU,LM74900QRGERQ1、LM74930QRGERQ1汽车类理想二极管

一、TM4C123GH6NMRT7R IC MCU 32BIT 256KB FLASH 157BGA Tiva™C系列微控制器为设计人员提供了基于ARMCortex™-M的高性能架构&#xff0c;该架构具有广泛的集成功能以及强大的软件和开发工具生态系统。以性能和灵活性为目标&#xff0c;Tiva™C系列架构提供了一个具有FPU的80…