【云驻共创】华为云数据库之走进GaussDB数据库

网友投稿 674 2022-05-30

第1章 课程简介

数据库原理以及应用是高等院校计算机专业的核心课程,是有关数据库理论和技术相结合的课程,大家知道在我国近二十年的数据库原理及应用的教学活动中,教学实验环节几乎没有国产数据库的身影,近年来国产数据库软件日益成熟,尤其是华为公司自主研发的国产云数据库GaussDB家族的出现,给我们带来新的气息,本课程是以GaussDB for MySQL为背景,构建的一门新课,讲述了数据库原理及应用的相关的教学内容。

学习这门课程同学们首先要明确数据库原理及应用课程的重要性,时代价值,和现实意义,大家知道我们正处在新时代,而所谓的新时代,一个重要的内涵,就是进入了一个数字社会,以数字化为特征的第四次工业革命的到来,数字化了一切可以数字化的事物,这场以数字化为核心的革命其速度之快,范围之广,程度之深,前所未有,深刻的改造了我们每一个人,改造了社会生活,在新时代,我们已离不开数字化,数据已经成为万事万物和人们生存,首屈一指的象征,有无数的例子可以证明,数据就是生产资料,计算就是生产力。

在今天一切皆可用数据表达,而数据库技术就是人们采集、存储、加工和使用数据的技术,是创造新时代数据生活和数字化生存的技术,数据库技术现如今已经成为我们身边的科学,成为我们提升业务水平的技术,成为我们事业竞争的武器,成为我们衣食住行的生存工具,具体的落实到教学中,我们的课程目标有如下三个方面:

(1)培养学习者对数据“来源、组成、内涵、运行逻辑和相互关系理解”的素养,增强学习者分析问题和数据表达的能力。

(2)培养学习者运用数据库技术解决实际应用的意识,增强学习者利用数据库管理系统进行应用系统开发的能力。

(3)培养学习者积极探索“新技术、新方法”的理念,增强学习者团队协作、自主创新的能力。

为了达成课程目标,我们把教学内容设计成了三个教学模块,分别是数据库基础理论,数据库技术,数据库系统控制,对这三个教学模块,我们又细分了多个教学单元,在数据库基础理论模块中,各教学单元的主要内容有数据库基本概念,关系数据库,关系规范化,关系代数,数据库设计方法与步骤。在数据库技术模块中各教学单元的主要内容包括数据库的操纵、数据库表与视图的操作、SQL语言、数据查询语言的应用、存储过程、与触发器的创建和使用。在数据库系统控制模块中,各教学单元的主要内容有事务的ACID特性、并发控制、数据恢复、安全控制以及GaussDB for MySql数据库管理系统软件性能、体系结构等内容。

以上的教学内容怎么学,大家可以通过三种方式来进行,一是通过中国大学慕课教学平台来学习这门课程,我们教学团队八位教师通过教学视频向大家讲述这门课程的全部的内容,另外我们还专门邀请了华为公司的数据库专家,就GaussDB数据库管理系统做了相关的讲解,同时我们还将通过慕课教学平台进行解惑答疑和论点讨论,支持本课程的教学资源丰富,除了慕课课程之外,大家还可以通过我们提供的一体化教材进行学习,与本课程配套的主辅教材共有两册,其中主教材共有三篇13个篇章,在基础理论篇,技术篇、系统篇三个篇章只有配有60个视频扩展内容的讲述,学习者在阅读教材的过程中通过扫描书中的二维码,便可以在线学习,实验教材共有12个篇章,详细的介绍了在GaussDB for MySQL的系统环境下进行数据库应用的实验方法与步骤,实验教材配有37个微视频,手把手教大家使用云数据库,另外实验教材还配有习题指导,数据库设计案例、实例介绍供大家学习及参考,我们也欢迎感兴趣的高校教师利用线上的教学资源在线下采用翻转课堂的教学模式展开教学活动,可以讲数据库原理及应用课程的教学环境,搭建成线上线下+实践联动的教学场景,让学生通过线上的慕课学习数据库基础理论和相关技术,让教师通过线下课堂讲述和讨论延展线上的教学内容,让学生通过实践教学环境进行模拟和创新实验,检验、消化和理解数据库基础理论及数据库应用技术。

第2章 基本概念

从科学研究到医疗健康,从教育到金融,从企业到互联网,各个不同的领域的都在讲述着一个类似的故事,那就是数据量爆发式增长的故事,和对数据量增长进行有效应用的故事,这是一个故事的两个侧面,前一个是数据的故事,后一个则是有关数据库的故事,走进数据库我们可以去体会数据库世界带给我们无穷无尽的景观,去发现数据之美,这门课程的第一章走进GaussDB数据库,本章的主要内容是向大家介绍信息、数据、数据库、数据库管理系统、数据库系统、分布式数据库系统等基本概念,介绍数据库系统体系结构,数据库应用系统的组成,以及GaussDB数据库管理系统的特点和应用系统架构

2.1 与数据库相关的基本概念

信息

走进数据库应用领域,首先遇到的是信息、数据、数据库等基本概念,我们先来介绍信息的概念,什么是信息,信息可以定义为人们对客观事物属性和运动状态的反映,它所反映的是关于某一客观系统中,某一事物的存在方式或者某一时刻的运动状态。从图1我们可以看到这是长白山天池,我们可以看到它的美,它的壮观,从图2可以看到这是九寨沟密集的游客,如果我们身处其中,这种感受更为强烈,这就是人们对客户事物属性的反映,是信息的发现,由此可知,信息是人们在进行社会活动、经济活动以及生产活动中的产物,并用于参与指导人类的社会活动过程,信息是有价值的,是可以被人感知的,信息可以通过载体来传递,可以通过信息处理工具进行存储、加工、传播、再生和增值。从图1和图2我们可以看到美丽的长白山天池和游客爆满的九寨沟,这就是信息载体传递的投射。

我们了解了信息是人们对于客观事物属性和运动状态的反映,下面我们了解一下信息具有哪些特征:

(1)信息是关于客观事物或者思想方面的知识,信息的内容能反映已存在的客观事实,能预测决策未发生事物的状态,能用于指挥控制事物的发展。

(2)信息具有有用性,信息是人类活动的必须知识,利用信息能够克服工作中的盲目性,增强主动性和科学性

(3)信息具有可传递性,信息可以在空间上传递,也可以在时间上传递,空间上传递为信息通讯,时间上传递成为信息存储。

(4)信息具有可表现形式,信息是通过数据来表现记录的。

简单的说信息具有知识性,当我们阅读了第四次工业革命一书时,就可以从中了解到当今社会的大趋势、大机遇、大挑战、这说明信息是具有知识性,另外一方面信息要具有有用性,才能被关注,信息一定是人类活动所需、所关心的客观世界的反映。信息是可传递的,只要构建良好的数据库系统,信息就可以在时空中遨游。信息具有可表现性,信息是通过专门的符号来表现的,这么课程介绍的主要内容就是数据库的相关知识,它可以让信息插上翅膀。

数据

表示数据的专门符号就是数据,准确的讲,数据是反应客观事物存在方式和运动状态的记录,是信息的载体。对客观事物属性和运动状态的记录是用一定的符号来表达的,因此说数据是信息的具体表现。对一某具体事物而言,信息的数据表现形式是多种多样的,它不仅仅是由0到1数字符号组成的符号序列,它可以是文字字符,图形,图像,音频,视频文件等,从计算机的角度看,我们还可以说数据泛指那些可以被计算机接受,并能够被计算机处理的符号,数据是数据库中存储的基本对象,数据是信息的表现形式,数据有如下四个主要的特征:

(1)数据有“型”和“值”之分;

(2)数据在使用时受数据范围和取值范围的约束

(3)数据有多种表现形式

(4)数据有明确的语义

例如有下面两组数据,在学生档案和员工档案中,李响,男,1972,江苏,计算机系,2009,这个完全相同的一组数据,在学生档案中,我们讲数据的类型定义为姓名、性别、出生年月、籍贯、所在系、入学时间,这组数据表现的信息为李响是一个男同学,1972年出生,江苏人,2009年考入计算机系;再看下面员工档案中的数据,其值完全相同,数据的型只有入学时间对应的是入职时间,由于数据的型发生了变化,我们对这组数据表示的内容解释就完全不同,后一组数据表示的信息就是李响是一名男职工,1972年出生,江苏人,2009年入职计算机信息,由此可见数据的型和值的不同决定了数据的语义的不同。

再比如这里展示的两幅图片,看似毫无关系,结果却是一个客观事物的记录,当我们对图2所示的课堂的所有学生进行一次问卷调查,让学生们回答你都认识谁,然后将调查结果所获得的数据进行加工处理后就可以得到图1的结果,从图1我们可以看到这个课堂中的学生,有的人人气很高,与很多人相识,有的谁也不认识,通过这张抽象的图形,我们就可以对每个学生的人气、人际关系、价值进行评估,由此可知,数据的型和数据值,以及数据的表现形式与数据的价值都有直接关联,有了信息和数据的概念,我们再看看什么是数据库。

数据库

数据库从字面上理解是存储数据的仓库,但是它是有着特殊意义存储数据的仓库,所谓的数据库是以一定的组织方式,将相关的方式组织在一起,长期存放在计算机内,可为多个用户共享与应用程序彼此独立,统一管理的数据的集合。

这四张图是四个不同物品的仓库的局部图,图1是存放器材的仓库,图2是存放胶片的仓库,图3是存放物品的仓库,图4是存放图书的仓库,从这些图不难看出,一个存放大量货物的仓库,需要占有足够的存储空间,即存放物品的空间要足够大,二是存放物品,放置一定要有规矩,这是为了存取方便,再有要有统一管理的方法,符合这三点,这样才能使仓库功能更好的实现。

参照上面的图示,参考数据库的定义,我们不难看出数据库有如下特征:

(1)数据库按一定的数据模型进行组织、描述和存储,这就说明数据库不仅能存储客观事物的信息,还包括记录了各事物间的联系,数据库的性质是由数据模型决定的,有严格的数学计算法则,二是长期存储,数据库是以文件的形式,存放在计算机的外部存储介质中,可以长期存放。

(2)可为多用户共享;因为数据库以严格的数学模式建构数据的文件组织,又能长期存放,由此提供了多用户共享的可能。

冗余度较小;

数据独立性较高,数据库与应用程序彼此独立,应用程序的改变不影响数据库的数据组织。

(5)易扩展;统一管理,数据库的创建、操作、管理是由专门的软件来进行管理的。

2.2 数据库应用系统的组成

数据库管理系统

数据库管理系统(DataBase Management System DBMS)是位于用户与操作系统之间,具有数据定义、管理和操纵功能的软件集合。

数据库管理系统提供了对数据库资源进行统一管理和控制的功能,使数据与应用程序隔离,且使数据具有独立性。

数据库管理系统使数据结构及数据存储具有一定的规范性,减少了数据的冗余,并有利于数据共享。

数据库管理系统提供了安全性和保密性措施,使数据不被破坏,不被窃用;提供了并发控制,在多用户共享数据时保证数据库的一致性。

数据库管理系统提供恢复机制,当出现故障时,数据恢复到一致性状态。

从数据结构维度看,数据库管理系统从层次数据库、网状数据库、关系数据库、面向对象数据库。

目前流程的关系数据库管理系统:MySQL、Oracle、Access、SQL Server等

GaussDB(for MySQL)是由华为公司研发的国产关系数据库管理软件。

从数据库管理系统体系结构的维度看,数据库管理系统从集中式数据库、分布式数据库、云数据库、多模数据库一路发展而来,GaussDB(for MySQL)是关系型、云数据库管理系统软件。目前不仅服务许多企业用户,也开始走进高等院校的课堂,并支持和服务于科研院所等单位,但是无论是哪款数据库管理系统软件,无论是MySQL、Oracle、还是GaussDB都具有如下的主要功能:

数据定义功能

数据操纵功能

数据库运行和管理功能

数据库建立和维护功能

接下来我们介绍另外一个基本概念,数据库系统(DataBase System,DBS)是支持数据库得以运营的基础性的系统,数据库是数据库系统的核心和管理对象,或者说数据库系统是实现有组织、动态的存储大量相关的结构化数据,方便各类用户访问数据库的计算机软硬件资源的集合。每个具体的数据库及其数据的存储、维护是为应用系统提供数据支持,这些支持的操作都是在数据库系统环境下运行完成的,具体的说数据库系统的组成,是在计算系统的意义上来理解数据库系统,它一般由支持数据库的硬件环境、数据库软件支持环境(操作系统、数据库管理系统、应用开发工具软件、应用程序等)、数据库、以及开发、使用和管理数据库应用系统的人员组成,在数据库系统中数据将不再散载、不再孤单、从而形成了一种数据库系统环境,形成了一种数据的生态系统,达成了一揽子的数据管理与数据应用服务,我们走进数据库系统,就如同走进了一片数据的森林,了解其结构、了解其性质,了解其作用、熟悉其环境所构成的数据生态之后,才能够驾驭这个特定的数据环境,达成管理或者服务的整体目的。

分布式数据库系统

分布式数据库系统(Distributed Database System DDBS)是以数据“分布”的方式实现有组织地、动态地存储大量相关结构化数据,方便各类用户访问数据的计算机软/硬件资源的集合。所谓分布方式指在一般的情况下将一个大型的复杂的数据库拆分成多个独立的数据库,分散存储在不同的物理空间,用户具有多个局部数据库,通过网络互相连接,使物理上分布的各局部数据库共同组建成一个完整的全局的逻辑视图,对于用户而言,相当于一个集中的数据库为其所用,分布式数据库系统的出现,扩大了数据的存储空间,可以按需分配数据库存储单元,也对数据库的结构的要求不那么严格,虽然使的数据库的管理和计算的复杂度也有所降低,但是数据管理方式在不断变化,非结构化的数据处理也能带来它所具有的方便,应该灵活的对待因地制宜。

第3章 GaussDB(for MySQL)系统概述

3.1 什么是GaussDB(for MySQL)

云数据库GaussDB(for MySQL)是一款华为自研的最新一代企业级高扩展海量存储分布式数据库,完全兼容开源MySQL,基于华为最新一代DFV存储,采用计算存储分离架构,单实例容量最大可以支持128TB的海量存储,无需分库分表、数据0丢失,既拥有商业数据库的高可用和性能,又具备开源低成本效益,从下图可以看出,GaussDB已经被广泛应用在电信、金融、电力、互联网等行业,在企业前台交易、CRM、Boss等有着非常稳定的表现。

为了更好的理解GaussDB(for MySQL),我们先来了解下云计算相关的一些概念。

集群:GaussDB(for MySQL)采用集群架构,一个集群包含一个主节点和多个只读节点。

区域(Region):区域是指物理的数据中心,一般情况下,GaussDB(for MySQL)集群应该和弹性云服务器实例位于同一地域,以实现最高的访问性能。

(3)可用区(Availability Zone,简称AZ):一个AZ是一个或者多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再讲计算、网络、存储等资源划分成多个集群,可用区是指在某个地域内拥有独立电力和网络的物理区域,可用区之间内网互通,不同可用区之间物理隔离。每个可用区都不受其他可用区故障的影响,并提供低价、低延迟的网络连接,以连接到同一地区其他可用区,通过使用独立可用区内的GaussDB(for MySQL),可以保护应用程序不受单一位置故障的影响,同一Region的不同AZ之间没有实质性区别。比如手机的12306 APP,该系统事关国计民生,对可用性要求非常高,如果12306部署在同一个区域会面临什么问题,当电力中断, 12306就不可用,这种系统一般都要跨区域部署,当一个区域出现故障,整个系统不受影响。

3.2 开源MySQL瓶颈

开源MySQL的主备架构已经发展多年,在各行各业都有广泛的应用,在互联网、5G、AI等技术的不断发展,各种结构数据量也在爆炸式的增长,同样在关系型场景,数据量也在不断的突破上限,数据量的不断的暴增,超过并发场景的不断出现,对传统数据库架构带来了极大的挑战,开源MySQL架构的瓶颈逐渐暴露,首先开源MySQL架构中为确保整体架构的可用性,背后是不承担读写流量的,只做高可用,这本身就是一种资源的浪费,其次在电商促销等场景,数据库的访问压力会因为活动的到来会成倍的增长,这时候只能添加只读节点来承载流量是通用的解决方案,但是添加只读节点的时间和数据量成正比,数据量越大,添加只读节点的时间越长,往往都是小时级,这可能会多业务带来较大的影响;另外在一些数据物理删除的场景,急需找回数据,传统的MySQL恢复在TB级以上,数据量需要数个小时,这也极大的影响业务的恢复时间,同样传统的MySQL主备架构由于网络的稳定性以及数据本身性能问题带来的复制延时会进一步影响数据库的整体性能,开源MySQL主备架构的瓶颈已经存在很多年,那么GaussDB(for MySQL)就是为了解决这些问题开发的。

3.3 GaussDB(for MySQL)设计原则

【云驻共创】华为云数据库之走进GaussDB数据库

设计原则主要有以下几点,第一就是解耦,由于开源MySQL主备之间需要同步数据,无法做到计算和存储的解耦,所以面临上面讲的很多问题,而GaussDB在设计上采用了计算和存储分离架构,节点之间不需要同步数据,可以做到主节点从节点解耦;第二个设计原则就是近数据计算下推(NDP),就相比传统架构,所有的SQL查询都在计算节点完成,一般的数据库一条SQL查询发给数据库后,需要将查询的数据从存储上推到内存,由计算节点进行查询计算得到结果,无法充分利用存储本身的计算能力,NDP就是将SQL查询算子,下推到存储层,直接在存储层完成,聚合后再返回给用户,这样就充分利用了存储的计算能力,可以极大的提升查询的速度;第三个设计原则就是充分利用云存储本身的能力来实现故障容错,一写多读让整个架构更加简洁;第四、五个设计原则就是充分利用最新的硬件,做好软硬件一体的垂直优化以及日志即数据架构,只要写入日志事务即可返回成功,页面由存储层异步回访,减少网络流量,将性能发挥到极致。

GaussDB(for MySQL)产品特点

(1)超高性能:由于采用了存储和计算分离架构,日志即数据,也是采用RDMV、MVME等最新的硬件,使得性能相比开源MySQL提升了数倍,单个节点QPS可以达到百万级别,纯写性能相比开源MySQL提升7倍

(2)高扩展性:由于采用了存储计算分离架构,计算和存储做到了解耦,添加只读节点,不再需要同步数据,所以添加一个只读节点5分钟即可完成,并且最多可以支持15个只读节点,同时存储也支持自动弹性扩展,按需计费。

高可用性:数据采用3副本存储,同时支持跨AZ部署,还支持自动数据全量、增量备份,可做到数据零丢失。

高兼容性:完全兼容开源MySQL,原有MySQL应用无需任何改造便可运行。

(5)海量存储:采用计算存储分离架构,节点之间不需要同步数据,单实例最大可以支持128TB数据量,相比开源MySQL2TB数据量就需要采用分库分表来解决性能问题,GaussDB(for MySQL)无需分库分表,极大减少企业的改造成本,满足业务极速上云

(6)易开发:兼容SQL2003标准,支持存储过程和丰富的API接口如(JDBC、ODBC、Python、C-API、GO)等为数据库应用开发提供了很大的便利,代码无需修改就可以进行开发和适配。

3.5 GaussDB(for MySQL)实例管理

企业在华为云创建GaussDB(for MySQL)后,即可在管理控制台查看到该实例,通过管理控制台,用户可以做相关的运维管理动作,比如随着业务的增长,实例的规格无法做到满足业务的要求时,这时候可以在管理控制台做规格变更,增加规格的CPU、内存、或者存储来提升规格的性能,同时还可以做重置密码,创建备份,创建节点等操作,管理控制台的对实例的管理能力,相比自建数据库,极大的提升了企业的开发和DBA的工作效率

不仅如此,还提供了管理控制的开发工具,用户可以登录开发工具,使用标准的MySQL语法,对数据库做增删改查等操作,同时这个开发工具还有很多功能,如查看MySQL,查看MySQL的执行指标等,是DBA和开发人员的好帮手。

第4章 总结

本文第1章系统的阐述了数据库原理以及应用课程的重要性,第2章主要从信息、数据、数据库、数据库系统、数据库管理系统等方面介绍了相关的基本概念,随着数据库技术的发展,为了解决开源MySQL存在的瓶颈,更好的满足各行业业务对数据库高可用、高性能的要求,华为自主研发的GaussDB(for MySQL)国产数据库应运而生,第3章从什么是GaussDB(for MySQL)、设计原则、产品特点、实例管理等5个方面系统的阐述了GaussDB(for MySQL)数据库的相关知识,本篇只是GaussDB(for MySQL)数据库的一个简单的介绍,要想深入学习这款国产自主的数据库,还需要学习更多关于GaussDB(for MySQL)的知识。

本文整理自华为云社区【内容共创】活动第15期。

https://bbs.huaweicloud.com/blogs/345822

任务17:华为云数据库之走进GaussDB数据库

上云必读

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java并发编程的艺术
下一篇:图文并茂将HTML5中的新增表单元素彻底搞明白
相关文章