前言当人们一提到全量表,增量表,拉链表,流水表,快照表等这些概念时,大家第一反应想到的就是传统数据仓库的使用。 那么本文将从数据仓库介入,简单介绍一下openGauss设计中的全量表,增量表,拉链表,流水表,快照表等。主要内容: 一、认识数据仓库和数据库 二、了解openGauss的有哪些优势和特点,以及其常见SQL语法 三、认识全量表,增量表,拉链表,流水表,快照表的概念、特点以及其在openG
1.数据库设计
数据库的设计是基础,数据库设计的目标是为用户和各种应用系统提供一个基础的信息设施和高效的运行环境。
1.1 数据库设计三个范式
1NF: 所有的域是原子性的
表中的每一列应该是不可拆分的最小单元。最低要求。
2NF: 所有的非主键字段必须与主键相关,不能与部分主键相关(联合主键)
每张表中描述和表示一类数据,多种不同的数据需要拆分到多张表中。
3NF: 所有非主键字段必须与主键直接
转载
2023-08-21 18:06:45
137阅读
1.数据仓库及数仓中的数据模型及操作描述在大数据设计与开发过程中,数据仓库是必不可少的一部分。但很多开发者将数仓理解为很多业务库和业务表的汇总集合,这是不全面的。数仓存在很多设计,架构,业务建模等多个维度的问题。关于数仓的大体介绍可以参照之前的文章, 本篇只分享数据仓库中的数据模型及操作。落地到实际中就是在某些业务场景下,数仓的表怎样去设计。有过大数据开发经验的开发者都明白,在大数据环节,数据的操
转载
2024-10-11 14:16:14
33阅读
MYSQL数据库设计规范
1、数据库命名规范
采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成;
命名简洁明确(长度不能超过30个字符);
例如:user, stat, log, 也可以wifi_user, wifi_stat, wifi_log给数据库加个前缀;
除非是备份数据库可以加
转载
2024-08-31 13:33:38
56阅读
0x00 前言过了半年时间,对数据仓库的理解又有了一些不同的认识,翻出来之前写的关于拉链表的内容,稍作修改重新发出来。本篇将会谈一谈在数据仓库中拉链表相关的内容,包括它的原理、设计、以及在我们大数据场景下的实现方式。内容全文由下面几个部分组成:先分享一下拉链表的用途、什么是拉链表。举一个具体的应用场景,来设计并实现一份拉链表,最后并通过一些例子说明如何使用我们设计的这张表(因为现在 Hive 的大
转载
2024-04-29 19:46:40
84阅读
本文将会谈一谈在数据仓库中拉链表相关的内容,包括它的原理、设计、以及在我们大数据场景下的实现方式。全文由下面几个部分组成:1.先分享一下拉链表的用途、什么是拉链表。 2.通过一些小的使用场景来对拉链表做近一步的阐释,以及拉链表和常用的切片表的区别。 3.举一个具体的应用场景,来设计并实现一份拉链表,最后并通过一些例子说明如何使用我们设计的这张表(因为现在Hive的大规模使用,我们会以Hive场景下
转载
2023-12-08 10:41:39
188阅读
数据如何设计分析(学习借鉴)
转载
精选
2016-05-16 20:07:33
768阅读
拉链表是数据仓库中的一个概念 一般来说数据仓库可能每日同步一些维表到数据仓库中,如果每日都是全量同步,对数据存储必定是巨大的浪费。维表的变化大都是比较缓慢的,拉链表为每一条记录提出了有效时间的概念,即一条记录的有效期“开始时间”和“结束时间”,只有变化的数据才会产生新的记录。下面是拉链表的一些关键节点1.记录开始时间是记录的创建/修改时间。 2.结束时间为,如果记录没有变化过通常会用一个很大的时间
转载
2024-02-02 20:50:13
44阅读
1.数据库的设计 1.多表之间的关系 ①分类 #一对一 #一对多(多对一) 示例:部门——员工 #多对多 示例:学生——课程 ②实现关系 #一对多实现方式:在多的一方建立外键,指向一的一方的主键 #多对多的实现方式:需要借助第三张中间表。中间表至少包含两个字段,这两个字段作为第三张表的外键,分别指向两张表的主键。第三张表如图所示#一对一实现方式:可以在任意一方添加唯一外键指向另一方的主键。2.数据
转载
2023-08-16 16:43:28
293阅读
一、拉链表原理1、引入在数据仓库的数据模型设计过程中,经常会遇到这样的需求: (1)数据量比较大。 (2)表中的部分字段会被update,如用户的地址,产品的描述信息,订单的状态等等。 (3)需要查看某一个时间点或者时间段的历史快照信息,比如,查看某一个订单在历史某一个时间点的状态。 (4)查看某一个用户在过去某一段时间内,更新过几次等等。 (5)变化的比例和频率不是很大,比如,总共有1000万的
转载
2023-11-30 15:51:19
90阅读
1. 拉链表简介拉链,通俗来讲即打开和关闭数据,设计表的时候添加 START_DATE 和 END_DATE 两个字段,数据更新时,通过修改 END_DATE 来设置数据的有效时间。数据的拉链表只存一份全量数据,其余都是增量数据,查询时使用 START_DATE 和 EN
转载
2023-07-14 12:03:46
179阅读
连接池:对于共享资源,有一个很著名的设计模式:资源池(Resource Pool)。该模式正是为了解决资源的频繁分配﹑释放所造成的问题。为解决我们的问题,可以采用数据库连接池技术。数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。我们可以通过设定连接池最大连接数来防止系统无尽的与数据
转载
2024-05-23 17:19:29
62阅读
0x00 前言过了半年时间,对数据仓库的理解又有了一些不同的认识,翻出来之前写的关于拉链表的内容,稍作修改重新发出来。本篇将会谈一谈在数据仓库中拉链表相关的内容,包括它的原理、设计、以及在我们大数据场景下的实现方式。内容全文由下面几个部分组成:先分享一下拉链表的用途、什么是拉链表。举一个具体的应用场景,来设计并实现一份拉链表,最后并通过一些例子说明如何使用我们设计的这张表(因为现在 Hive 的大
转载
2024-01-17 08:27:25
118阅读
拉链表(一)
拉链表(二) 一、前言在把关系型数据库的数据同步到数据仓库时,经常会涉及到拉链表。拉链表有其明显的优势:相比每次全量同步会节省存储空间能够查询到历史快照但是也会有其劣势:拉链表同步逻辑复杂消耗资源多本文主要讲解拉链表如何实现。二、原数据库表结构在讲解拉链表实现之前先规定一下原表的表结构。之后的拉链表数据就是从这个表同步得来。这里的例子是用户表(user)
转载
2024-08-18 13:37:14
96阅读
定义:拉链表 - 维护历史状态,以及最新状态数据的一种表,拉链表根据拉链粒度的不同,实际上相当于快照,只不过做了优化,去除了一部分不变的记录而已,通过拉链表可以很方便的还原出拉链时点的客户记录。拉链表通常是对账户信息的历史变动进行处理保留的结果。 需求:1. 数据量比较大; 2. 表中的部分字段会被update,如用户的地址,产品的描述信息,订单的状态等等; 3. 需要查看某一个时间点或
转载
2023-08-29 20:19:09
212阅读
本篇文章旨在讨论如何抽象(以用户作为抽象的例子),并提出一些解耦的思路。正文开始首先来需求分析我们的系统有前台和后台,前台用户有:Man,Woman,SuperMan,SpiderMan与IronMan。后台用户为Administrator。前台用户都要填写联系方式与地址,然后SuperMan,SpiderMan与IronMan都有Ability。需求很简单。那么按照这个需求,我们来随手画一个继承
转载
精选
2013-06-17 21:19:10
390阅读
“man/woman应该设计在同一张表中。 用户表大多都设计成一个表。连分 administrator 和 user 都不应该。”我想还是因为我举例太随意,因为博文中Man和Woman只有4个差异属性:HasCar\HasHouse\HasMoney,以及IsBeauty。其实对于这个问题我无力吐槽什么,简单的说说吧:假设为Man用户实现的是一个征婚系统,而Woman用户实现的是一个选美系统。这么
转载
精选
2013-06-17 21:32:56
447阅读
为什么需要设计数据库
这里我们思考两个问题:
修建茅屋需要设计吗?修建大厦需要设计吗?
结论是:当数据库比较复杂(如数据量大,表较多,业务关系复杂)时,我们需要先设计数据库;
因为,良好的数据库设计能够:
q 方便进行数据库应用系统的开发
转载
精选
2010-02-04 16:30:05
985阅读
数据规范化
• 第一范式(1st NF -First Normal Fromate)
– 如果每列都是不可再分的最小数据单元(也称为最小的原子单元),
转载
精选
2010-02-04 16:30:39
696阅读
数据库该如何设计,一直以来都是一个仁者见仁智者见智的问题。对于某一种数据库设计,并不能简单的用好与不好来区分。或许真的应了那句话,没有最好,只有最适合。讨论某种数据库设计的时候,应该在某种特定的需求环境下讨论。下面来讨论一下在项目中经常碰到的用户的联系方式储存的问题。我在这里套用之前网络上流行“普通——文艺——二逼”的分类方式来描述我下文中提及的三种数据库设计思路,并且通过查询数据(对数据增删改,
转载
精选
2013-06-17 00:14:17
329阅读