服务器配置管理系统(数据库管理系统操作)

服务器配置管理系统(数据库管理系统操作)

引言

如今,数据作为生产要素重要性已不言而喻,数据能力成为企业必不可少的核心能力之一,作为企业数字化转型重要的一环,我们依然迫切需要数据库来帮助存储和操作这些数据,充分有效地管理和利用各类数据资产。数据存储和操作是以业务连续性为目标,包括存储数据的设计、实现和支持活动,以及在整个数据生命周期中,从计划到销毁的各种操作活动。

在互联网时代背景下,传统单一的数据库的时代已经过去,对于数据库的新需求在不断出现,随着这些新的需求越来越广泛地被提出,越来越多的企业意识到,采用传统的数据库应对不同需求这种一刀切的方式已经不再奏效。

本文首先阐述了数据库和数据库管理系统的概念,并对目前常见的几种数据库进行了介绍,分析了专用数据库相比于传统数据库的优势所在,然后重点对满足不同应用场景的8种专用数据库进行了详细说明,最后分享了传统数据库向专用数据库迁移的案例,旨在帮助读者在设计应用时选择正确的数据库。

一什么是数据库?1.1数据库概念维基百科上对数据库的定义:以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。一个数据库由多个表空间构成。百度百科上对数据库的定义:是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据库(Database,英文简称 DB)是一个以某种有组织的方式存储的数据集合。可以理解为是一个存放计算机数据的仓库,这个仓库按照一定的数据结构(即数据的组织形式或数据之间的联系)来对数据进行组织和存储,我们可以通过数据库提供的多种方法来管理其中的数据。1.2数据库管理系统

数据库管理系统(Database ManagementSystem,英文简称DBMS)是为管理数据库而设计的电脑软件系统,是一种系统软件,负责数据库中的数据组织、数据操作、数据维护、控制及保护和数据服务等。数据库管理系统是数据系统的核心,主要功能有:数据模式定义、数据存取的物理构建、数据操纵、数据的完整性、安全性定义和检查、数据库的并发控制与故障恢复、数据的服务。我们常见的数据管理系统如:Oracle、SQL Server、MySQL、Accees、Sybase、DB2等。

1.3数据库和数据库管理系统的关系

数据库和数据库管理系统在IT软件中扮演着不可或缺的角色。比如某公司建设了员工管理系统,员工的信息都会存放在数据库中。当登录员工管理系统查询某员工的工资信息时,部署在服务器上的程序会连接数据库管理系统进行查询,并从数据库中取出该员工的工资数据,最后显示到前端系统页面上。

查询数据的过程二数据库种类及应用场景介绍

一般来说,数据库按照组织式分为两大类:关系型数据库和非关系型数据库。

1.关系型数据库是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。在关系型数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过这些关联的表格分类、合并、连接或选取等运算来实现数据的管理。

2.非关系型数据库又称NoSQL,由于数据类型多种多样,关系型数据库并不适用于所有的数据,因此针对不同的数据类型,出现了不同的 NoSQL,NoSQL的产生并不是要彻底否定关系型数据库,而是作为传统数据库的有效补充。

关系型SQL与非关系型NoSQL对比表

注:关系型数据库的ACID:

A (Atomicity) 原子性:就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。比如银行转账,从A账户转5元至B账户,分为两个步骤:①从A账户取5元;②存入5元至B账户。这两步要么一起完成,要么一起不完成,如果只完成第一步,第二步失败,钱会莫名其妙少了5元。

C (Consistency) 一致性:一致性也比较容易理解,也就是说数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。例如现有完整性约束a b=10,如果一个事务改变了a,那么必须得改变b,使得事务结束后依然满足a b=10,否则事务失败。

I (Isolation) 独立性:是指并发的事务之间不会互相影响,如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。例如:现有有个交易是从A账户转5元至B账户,在这个交易还未完成的情况下,如果此时B查询自己的账户,是看不到新增加的5元的。

D (Durability) 持久性:指一旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失。

CAP理论的C就是一致性(Consistency),A就是可用性(availability),可以理解为是否可获取数据,以及获取数据的速度;P就是分区容忍度(partion tolerance),指的是系统中的数据分布性的大小对系统的正确性,性能的影响(一定程度上就是可扩展性)。

2.1关系数据库关系数据库是使用最广泛的数据库,采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。主要结构为:库 表 表之间的关系 字段。

关系数据库表示例表

关系数据库把复杂的数据结构归结为简单的二元关系(二维表),如上图所示是一个二维表的示例,通常该表第一行为字段名称,描述该字段的作用,下面是具体的数据。在定义该表时需要指定字段的名称及类型。目前主流的关系型数据库有OracleL、SQL Server、DB2、MySQL、PostgreSQL等。

2.2非关系数据库

常见的非关系型数据库有键值数据库、列存储数据库、文档数据库、图数据库、时序数据库、搜索引擎数据库等,这些常见数据库的主要特点及应用场景如下表所示。

几种常见非关系数据库的主要特点及应用场景

2.2.1 键值数据库

键值数据库可以被看作一个非常大的哈希表,该表在唯一的键下存储了一些值。存储的值可以通过键或者部分键高效地检索到。键值数据库使用简单的键值方法来存储数据。键值数据库将数据存储为键值对集合,其中键作为唯一标识符。键值数据库中的键可以包含多个元素,甚至可以排序以提高查询效率。一些键值数据库允许使用键的前缀进行查找,从而可以使用复合键。例如,我们将客户ABC的订单存储在键/值数据库中,可以使用客户ID作为键的前缀,结合订单号组成键“ABC-001”来存储订单。可以使用整个键来检索特定的订单,也可以使用“ABC”前缀检索客户ABC的所有订单。2.2.2 列存储数据库

列存储数据库又被称为面向可扩展性的分布式数据库,它反转了传统的行存储数据库,将数据存储存在列族中,一个列族存储经常被一起查询的相关数据。如下表所示为人员信息表:

对于行存储数据库,表中的数据是以行为单位逐行存储在磁盘上的;而对于列存储数据库,表中的数据则是以列为单位逐列存储在磁盘中。下图是传统行数据库和列数据库表中数据在磁盘上的存储形式的差异对比。

列存储解决的主要问题是数据查询问题,这部分数据库通常用来应对分布式存储的海量数据,典型的产品应用如Hbase。

2.2.3 文档数据库

文档数据库是一种非关系数据库,将半结构化数据存储为文档,其中文档包括 XML、YAML、JSON、BSON、office 文档等不同格式。文档型数据库可以看作是键值数据库的升级版,允许之间嵌套键值。

简而言之,就是将数据保存到以上类似格式的文档中,数据库中的每个记录都是以文档形式存在的,相互之间不再存在关联关系。文档数据库所存放的文档,就相当于键值数据库所存放的“值”。2.2.4 图数据库

图数据库顾名思义,就是一种存储图形关系的数据库,而图模型是图数据库中的重要概念。图模型由两个要素组成:节点和边,每个节点代表一个实体(人、地点、事物等),每条边代表两个节点之间的连接,这种通用结构可以对各种场景进行建模,如社交网络以及由关系定义的任何其他事物。

如下所示的图模型中包含 3个节点:中国、北京、长城。其两条边分别是:长城是北京的著名景点、北京属于中国。

从上面的图模型可以看出,图数据库的目标就是基于图模型以一种直观的方式模拟这些关系,可以很好地分析实体之间的关系。2.2.5 时序数据库

在介绍时序数据库前先了解下时序数据,时序数据是按照时间顺序记录系统、设备状态变化的数据,普遍存在于IT基础设施、运维监控系统和物联网中。在有时间的坐标中将这些数据点连成线,往前看可以做成多纬度报表,揭示其趋势性、规律性、异常性;往后看可以建立数学模型、做统计分析,预测事物发展趋势。

时序数据库就是存放时序数据的数据库,并且需要支持时序数据的快速写入、持久化、多纬度的聚合查询等基本功能。相比于传统数据库仅仅记录了数据的当前值,时序数据库则记录了所有的历史数据。同时时序数据的查询也总是会带上时间作为过滤条件。

下面对时序数据库的数学模型做下简单介绍:

metric:度量的数据集,类似于关系型数据库中的table

point:一个数据点,类似于关系型数据库中的row

timestamp:时间戳,表征采集到数据的时间点

tag:维度列,代表数据的归属、属性,表明是哪个设备/模块产生的,一般不随着时间变化,供查询使用

field:指标列,代表数据的测量值,随时间平滑波动,不需要查询

时序数据库基本概念图

如上表中,度量为Wind,每一个数据点都具有一个timestamp,其中有两个field:风向、速度,两个tag:设备编号、城市。根据表中第一行和第三行的数据可知,存放的都是sensor号码为95D8-791的设备,属性城市是北京。随着时间的变化,风向和风速都发生了变化,风向从24.2变成25.6,风速从3.6变成了3.3。2.2.6 搜索引擎数据库

搜索引擎数据库通常用于搜索保存在其他存储和服务中的数据。搜索引擎数据库可以对大量的数据建立索引,并提供近实时的索引查询。搜索引擎数据库是应用在搜索引擎领域的数据存储形式,由于搜索引擎会爬取大量的数据,并以特定的格式进行存储,这样在检索的时候才能保证性能最优。

搜索引擎数据库除了搜索像网页这样的非结构化的数据,许多应用程序还使用它为其他数据库中的数据提供结构化和即时搜索功能。有一些数据库也能提供全文索引功能,但是搜索数据库还具备通过词干和泛化将单词缩减为词根的功能。三为什么越来越多的企业选择专用数据库?

“原来数据库分发方式是怎么样的?一家企业要买数据库,比如Oracle,首先要买一年或者两年的授权,第二要买跑数据库的硬件,第三还得买数据库相关的服务,包括固件更新、维护升级等等。传统的数据库购买流程是一个非常沉重的过程,投入会非常大”,相信很多IT从业人员对这句话深有感触。传统商用数据库是集中式架构,在扩展性和灵活上先天不足,比如传统的商业数据库可能仅仅软件安装就需要一整天的时间,需要配置各种补丁等,需要有专业的DBA(数据库管理员)来完成这样的服务,如果需要扩展通常只能是纵向扩展,为此需要购买昂贵的设备,投资不菲。

传统数据库架构面向早期业务模型,包括传统数据库的售卖方式、使用方式、服务方式,在数字化的背景和海量数据存储的诉求下,已经不能满足大多数企业的诉求。从技术角度来看,云计算已经发展到非常成熟的阶段,并且被广泛认可,云计算由量变到质变的过程,给数据库带来了颠覆,核心是云计算彻底改变了数据库的分发方式。

专用数据库相比于传统数据库在成本、安全性、操作及效率4个方面具有更适应现代IT技术快速发展的优势:

传统数据库VS专用数据库

可以看到,在实际业务运营过程中有各种不同的数据管理需求的时候,就需要迁移到专用的数据库来。自我管理的这些数据库和分析服务,因为耗时、管理起来复杂性很高,尤其是硬件、软件的安装,同时数据库的性能、可用性又遇到很多的挑战,又不像在云上那么容易的进行扩展。那么迁移到专用数据库有什么好处呢?下图为在AWS上的全托管服务和自己管理的区别。

自我管理与AWS完全托管的区别

四AWS专用数据库满足企业不同应用场景的管理需求

随着信息技术的蓬勃发展,数据规模也在不断增长,企业需要处理的数据规模从GB快速增长到TB甚至PB规模,同时需要提供毫秒级延迟的数据访问,数据库有时需要每秒处理数百万个请求,可扩展以支持世界各地的数以百万、千万计的用户。

开发人员面对特定的需求场景,往往需要选择一款适合自身需求的数据库。很多企业开始尝试采用不同类型的开源数据库,如MySQL,PostgreSQL等。然而,在采用开源数据库满足不同类型的需求的同时,还想获得与商业级数据库相同的性能和可用性却是非常困难。为了响应这一客户需求,AWS提供了一系列针对特定场景进行优化的数据库,如下图所示。

AWS数据库服务一览图

4.1关系数据库-Amazon Aurora

Amazon Aurora是一种与MySQL和PostgreSQL兼容的关系数据库,专为云而打造,既具有传统企业数据库的性能和可用性,又具有开源数据库的简单性和成本效益。

Amazon Aurora的速度最高可以达到标准MySQL数据库的五倍、标准PostgreSQL数据库的三倍。它可以实现商用数据库的安全性、可用性和可靠性,而成本只有商用数据库的1/10。Amazon Aurora由AmazonRelational Database Service (RDS)完全托管,RDS可以自动执行各种耗时的管理任务,例如硬件预置以及数据库设置、修补和备份。

Amazon Aurora关系数据库优势

Amazon Aurora 采用一种有容错能力并且可以自我修复的分布式存储系统,这一系统可以把每个数据库实例扩展到最高128TB。它具备高性能和高可用性,支持最多15个低延迟读取副本、时间点恢复、持续备份到 Amazon S3,还支持跨三个可用区(AZ)复制。4.2键值数据库-AmazonDynamoDBAmazon DynamoDB是一种键值数据库,可以在任何规模的环境中提供个位数的毫秒级性能,且无需硬件配置、软件修补或升级,它是一个完全托管、多区域多主的持久数据库,具有适用于Internet规模的应用程序的内置安全性、备份和恢复和内存缓存,通过跨多个区域复制表快速访问本地数据。DynamoDB每天可处理超过10万亿个请求,并可支持每秒超过2000万个请求的峰值。

Amazon DynamoDB键值数据库优势

目前许多全球发展最快的企业,如Samsung、Toyota、Lyft等企业,都依靠DynamoDB 的规模和性能来支持其关键任务工作负载。选择 DynamoDB作为键值和文档数据库,可用于其移动、Web、游戏、广告技术、物联网以及其他需要任何规模的低延迟数据访问的应用程序。

4.3内存数据库-Amazon ElastiCache

Amazon ElastiCache是一种托管的内存数据库,它可以采用两种引擎,一种是Redis,一种是Memcached,通过这两种不同的引擎可以为用户提供一个相当于亚毫秒级延时的数据库的响应。它在安全性方面,可用于集群隔离、静止/传输加密和HIPAA合规性的虚拟私有云。在扩展性方面,可使用副本进行读扩展,使用分片进行写和内存扩展,不存在中断扩展。另外,在高可用和可靠性方面,可通过多可用区实现自动故障切换。

Amazon ElastiCache内存数据库优势

Amazon ElastiCache可在云中无缝设置、运行和扩展常见的开源兼容内存中数据存储。通过从高吞吐量和低延迟的内存数据存储中检索数据,构建数据密集型应用程序或提升现有数据库的性能,是缓存、会话存储、游戏、地理空间服务、实时分析和队列等实时使用案例的常见选择。

4.4文档数据库-Amazon DocumentDB

Amazon DocumentDB是一种快速、可扩展、高度可用且完全托管的文档数据库,支持MongoDB工作负载,即原来采用MongoDB的用户,几乎可以无缝的切换到DocumentDB上来。作为一个文档数据库,Amazon DocumentDB使得存储、查询和索引JSON数据变得简单。

Amazon DocumentDB文档数据库优势

Amazon DocumentDB是一种非关系数据库服务,可以提供大规模运行关键任务型 MongoDB工作负载时所需的性能、可扩展性和可用性。由于存储和计算是分离的,允许各自独立扩展,所以不管数据大小如何,都能够通过在几分钟内添加多达 15 个低延迟只读副本来将读取容量增至每秒数百万个请求。AmazonDocumentDB的设计旨在实现 99.99% 的可用性,并且可以跨三个AWS可用区(AZ)复制6个数据副本。

4.5宽表数据库-AmazonKeyspaces

Amazon Keyspaces是一种可扩展、高度可用且兼容Apache Cassandra(开源分布式NoSQL数据库,属于宽表数据库)的托管数据库,借助Amazon Keyspaces,可以提供大规模运行业务关键型Cassandra工作负载所需的性能、弹性和企业级功能,也就是说,使用当前的相同Cassandra应用程序代码和开发人员工具在AWS上可运行Cassandra工作负载。

Amazon Keyspaces宽表数据库优势

无需预置、修补或管理服务器,并且不需要安装、维护或操作软件。Amazon Keyspaces是无服务器服务,因此只需为实际使用的资源付费,并且该服务会根据应用程序流量自动扩展和缩减表。

借助Amazon Keyspaces,可以构建每秒可处理数千个请求,且吞吐量和存储空间几乎无限的应用程序,同时数据默认会被加密,还可以使用时间点恢复持续备份表数据。

4.6图数据库-Amazon Neptune

Amazon Neptune是一种快速、可靠且完全托管的图形数据库,可帮助构建和运行使用高度互连数据集的应用程序。其核心是专门构建的高性能图形数据库引擎,它进行了优化以存储数十亿个关系并将图形查询延迟降低到毫秒级。Amazon Neptune支持常见的图形模型Property Graph和W3C的RDF及其关联的查询语言ApacheTinkerPop Gremlin和SPARQL,从而能够轻松构建查询以有效地导航高度互连数据集,所支持的图形使用案例,如社交网络、建议引擎、欺诈检测、知识图谱、药物开发和网络安全等。

Amazon Neptune图数据库优势

Amazon Neptune具有高可用性,并提供只读副本、时间点恢复、到 Amazon S3 的持续备份以及跨可用区的复制,也很安全,可支持 HTTPS 加密客户端连接和静态加密。另外,Amazon Neptune支持完全托管,因此无需担心数据库管理任务,例如硬件预置、软件修补、设置、配置或备份等数据库管理任务。4.7时序数据库-Amazon Timestream

AmazonTimestream 是一种快速、可扩展的无服务器时间序列数据库,适用于物联网和运营应用程序,使用该服务每天可以轻松存储和分析数万亿个事件,速度提高了1000倍,而成本仅为关系数据库的十分之一。

Amazon Timestream时序数据库优势

Amazon Timestream将近期数据保留在内存中,根据用户定义的策略将历史数据移至成本优化的存储层,大大节省了管理时间序列数据生命周期的时间和成本,专门构建的查询引擎可用于访问和分析近期数据和历史数据,无需在查询中显式指定数据是保存在内存中还是成本优化层中。同时还内置了时间序列分析函数,可帮助近乎实时地识别数据的趋势和模式,由于是无服务器服务,可自动缩放以调整容量和性能,因此无需管理底层基础设施,可以专注于构建应用程序。

4.8分类账数据库-Amazon QLDBAmazon QLDB是一个完全托管的分类账数据库,提供了一个透明、不可变、可以加密方式验证的事务日志,且该事务日志由一家可信的中央机构拥有,可用于跟踪每次的应用程序数据更改,并不断维护完整且可验证的更改历史记录。分类账通常用于记录组织中的经济和金融活动历史。许多组织构建类似分类账功能的应用程序,维护其应用程序数据的准确历史记录,例如,跟踪银行交易中的信贷和借记历史,验证保险索赔的数据沿袭,或跟踪供应链网络中的项目移动。分类账应用程序的实现通常使用自定义审计表或在关系数据库中创建的审计跟踪来完成。然而,使用关系数据库构建审计功能较为耗时,而且容易出现人为错误。一方面需要自定义开发,另一方面由于关系数据库本身并非不可变,因此难以跟踪和验证对数据的任何意外更改。

Amazon QLDB分类账数据库优势

Amazon QLDB是一种新型数据库,无需参与构建自己的类似分类账应用程序的复杂开发工作,数据的更改历史记录就是不可变的(无法更改或删除),并且,还可以使用加密技术,轻松保证应用程序的数据不会遭到意外修改。其使用不可变的事务日志(简称日志),可跟踪每个的应用程序数据更改,并不断维护完整且可验证的更改历史记录。

Amazon QLDB易于使用,因为它为开发人员提供了一个常见且类似SQL的API、一个灵活的文档数据模型以及对事务的完全支持。Amazon QLDB的流式传输功能为存储在其中的数据提供近乎实时的数据流,能够开发事件驱动型工作流、实时分析,并将数据复制到其他AWS服务以支持高级分析处理。此外,Amazon QLDB没有服务器,因此它会自动扩展以支持应用程序的需求。无需管理服务器,而且无需配置读取或写入限制。五传统数据库向专用数据库迁移实践案例分享

在企业级IT系统中数据库居于核心地位,据不完全统计,关键业务系统中有90%基于数据库系统开发。如果对选定的数据库进行更换,一方面要修改应用程序,工作量较大,还存在一定的风险;另一方面,数据库中保存的一般是企业非常重要的数据,数据库迁移可能会威胁数据的安全。那么如何把传统数据库安全迁移到AWS专用数据库呢?

AWS数据库迁移服务(Database MigrationService,简称DBS)支持本地数据库和AWS之间的迁移,也支持不同的数据库之间的迁移,同时支持Schema(模式)的转换。比如原来是Oracle的数据库,可以迁移到Amazon Aurora上面来,可以实现Schema自动转换,同时数据的复制可以实现几乎零停机时间。

AWS 数据库迁移服务

AWS数据库迁移服务主要有以下几点优势:

简单易用。无需安装任何驱动程序或应用程序,大多数情况下,也不需要对源数据库进行更改。

最少停机时间。帮助用户将数据库迁移至 AWS,几乎没有停机时间。

支持最广泛使用的数据库。可以在广泛使用的商用和开源数据库之间迁移数据。

成本低廉。是一项低成本服务,只需为迁移过程中使用的计算资源以及额外的日志存储空间付费。

设置快速简单。在 AWS 管理控制台中,只需花费几分钟的时间就能设置一个迁移任务。

运行可靠。具有高度恢复和自愈能力,可持续监控源数据库和目标数据库、网络连接性以及复制实例。

数据显示,在2019年,通过DMS进行了超过20多万个数据库的迁移,超过了2016年到2018年的数据总和,越来越多的一些公司都采用了Amazon的DMS进行了数据库的迁移。其中最典型的一个案例就是亚马逊(Amazon.com),迁移前大约有7500个Oracle数据库,存储的数据量为75PB,把所有的Oracle的数据库都迁移到了AWS专用数据库上面来挑战极大,一方面是扩展复杂且成本高,另一方面是昂贵且惩罚性的Oracle许可证。通过100多个Amazon团队的共同努力,完成了专用数据库如Aurora、DynamoDB、Redshift等的迁移工作。迁移到专用数据库的益处是有效降低了约60%的数据库成本,因为商业数据库的License费用是非常高的。同时又减少了约70%的数据库管理工作,更多的工作可以让AWS来完成,释放了更多人力资源,另外对于重要应用提高了约40%的性能,效果显著。

亚马逊全部Oracle数据库迁移到专用数据库

总结在新基建的浪潮下,云计算仍在普及之中,未来一切皆在云上并非虚言。国际研究机构Gartner发布的2020年全球云数据库魔力象限报告显示,预测到2022年,75%的数据库将部署或迁移到云平台,而只有5%会考虑将其再迁回到本地。AWS在此魔力象限中处于领导者地位,能够针对不同的数据管理需求提供专用的数据库服务,与其他“超大规模”提供商相比,AWS在可用性和可靠性方面有更好的记录。

在这一全新的数字化时代,数据是一切业务的核心,要想更有效地管理、分析和挖掘数据带来的价值,离不开专用数据库。传统商用数据库因其昂贵的投入、扩展性和灵活性不足受到挑战,而专用数据库则因天然地具备云计算的弹性能力,兼具开源数据库的易用、开放特点,及传统数据库的管理和处理性能等优势,正成为企业实现数字化转型的优先选择。

「精彩预告」

“巅峰科技,重塑未来”亚马逊 re:Invent 2020 AWS年度盛会将于2020年12月1日—12月18日举行,长达3周的在线峰会,首次对公众免费开放,欢迎品鉴!

发表评论

登录后才能评论