数据库有哪些类型?如何根据应用场景选择?终于有人讲明白了
如今,数据作为生产要素重要性已不言而喻,数据能力成为企业必不可少的核心能力之一,作为企业数字化转型重要的一环,我们依然迫切需要数据库来帮助存储和操作这些数据,充分有效地管理和利用各类数据资产。数据存储和操作是以业务连续性为目标,包括存储数据的设计、实现和支持活动,以及在整个数据生命周期中,从计划到销毁的各种操作活动。
在互联网时代背景下,传统单一的数据库的时代已经过去,对于数据库的新需求在不断出现,随着这些新的需求越来越广泛地被提出,越来越多的企业意识到,采用传统的数据库应对不同需求这种一刀切的方式已经不再奏效。
本文首先阐述了数据库和数据库管理系统的概念,并对目前常见的几种数据库进行了介绍,分析了专用数据库相比于传统数据库的优势所在,然后重点对满足不同应用场景的8种专用数据库进行了详细说明,最后分享了传统数据库向专用数据库迁移的案例,旨在帮助读者在设计应用时选择正确的数据库。
数据库管理系统(Database ManagementSystem,英文简称DBMS)是为管理数据库而设计的电脑软件系统,是一种系统软件,负责数据库中的数据组织、数据操作、数据维护、控制及保护和数据服务等。数据库管理系统是数据系统的核心,主要功能有:数据模式定义、数据存取的物理构建、数据操纵、数据的完整性、安全性定义和检查、数据库的并发控制与故障恢复、数据的服务。我们常见的数据管理系统如:Oracle、SQL Server、MySQL、Accees、Sybase、DB2等。
数据库和数据库管理系统在IT软件中扮演着不可或缺的角色。比如某公司建设了员工管理系统,员工的信息都会存放在数据库中。当登录员工管理系统查询某员工的工资信息时,部署在服务器上的程序会连接数据库管理系统进行查询,并从数据库中取出该员工的工资数据,最后显示到前端系统页面上。
一般来说,数据库按照组织式分为两大类:关系型数据库和非关系型数据库。
1.关系型数据库是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。在关系型数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过这些关联的表格分类、合并、连接或选取等运算来实现数据的管理。
关系型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),指的是系统中的数据分布性的大小对系统的正确性,性能的影响(一定程度上就是可扩展性)。
关系数据库表示例表
关系数据库把复杂的数据结构归结为简单的二元关系(二维表),如上图所示是一个二维表的示例,通常该表第一行为字段名称,描述该字段的作用,下面是具体的数据。在定义该表时需要指定字段的名称及类型。目前主流的关系型数据库有OracleL、SQL Server、DB2、MySQL、PostgreSQL等。
常见的非关系型数据库有键值数据库、列存储数据库、文档数据库、图数据库、时序数据库、搜索引擎数据库等,这些常见数据库的主要特点及应用场景如下表所示。
2.2.1 键值数据库
2.2.2 列存储数据库
列存储数据库又被称为面向可扩展性的分布式数据库,它反转了传统的行存储数据库,将数据存储存在列族中,一个列族存储经常被一起查询的相关数据。如下表所示为人员信息表:
列存储解决的主要问题是数据查询问题,这部分数据库通常用来应对分布式存储的海量数据,典型的产品应用如Hbase。
2.2.3 文档数据库
文档数据库是一种非关系数据库,将半结构化数据存储为文档,其中文档包括 XML、YAML、JSON、BSON、office 文档等不同格式。文档型数据库可以看作是键值数据库的升级版,允许之间嵌套键值。
2.2.4 图数据库
图数据库顾名思义,就是一种存储图形关系的数据库,而图模型是图数据库中的重要概念。图模型由两个要素组成:节点和边,每个节点代表一个实体(人、地点、事物等),每条边代表两个节点之间的连接,这种通用结构可以对各种场景进行建模,如社交网络以及由关系定义的任何其他事物。
2.2.5 时序数据库
在介绍时序数据库前先了解下时序数据,时序数据是按照时间顺序记录系统、设备状态变化的数据,普遍存在于IT基础设施、运维监控系统和物联网中。在有时间的坐标中将这些数据点连成线,往前看可以做成多纬度报表,揭示其趋势性、规律性、异常性;往后看可以建立数学模型、做统计分析,预测事物发展趋势。
下面对时序数据库的数学模型做下简单介绍:
metric:度量的数据集,类似于关系型数据库中的table
point:一个数据点,类似于关系型数据库中的row
timestamp:时间戳,表征采集到数据的时间点
tag:维度列,代表数据的归属、属性,表明是哪个设备/模块产生的,一般不随着时间变化,供查询使用
field:指标列,代表数据的测量值,随时间平滑波动,不需要查询
时序数据库基本概念图
2.2.6 搜索引擎数据库
搜索引擎数据库通常用于搜索保存在其他存储和服务中的数据。搜索引擎数据库可以对大量的数据建立索引,并提供近实时的索引查询。搜索引擎数据库是应用在搜索引擎领域的数据存储形式,由于搜索引擎会爬取大量的数据,并以特定的格式进行存储,这样在检索的时候才能保证性能最优。
“原来数据库分发方式是怎么样的?一家企业要买数据库,比如Oracle,首先要买一年或者两年的授权,第二要买跑数据库的硬件,第三还得买数据库相关的服务,包括固件更新、维护升级等等。传统的数据库购买流程是一个非常沉重的过程,投入会非常大”,相信很多IT从业人员对这句话深有感触。传统商用数据库是集中式架构,在扩展性和灵活上先天不足,比如传统的商业数据库可能仅仅软件安装就需要一整天的时间,需要配置各种补丁等,需要有专业的DBA(数据库管理员)来完成这样的服务,如果需要扩展通常只能是纵向扩展,为此需要购买昂贵的设备,投资不菲。
专用数据库相比于传统数据库在成本、安全性、操作及效率4个方面具有更适应现代IT技术快速发展的优势:
传统数据库VS专用数据库
可以看到,在实际业务运营过程中有各种不同的数据管理需求的时候,就需要迁移到专用的数据库来。自我管理的这些数据库和分析服务,因为耗时、管理起来复杂性很高,尤其是硬件、软件的安装,同时数据库的性能、可用性又遇到很多的挑战,又不像在云上那么容易的进行扩展。那么迁移到专用数据库有什么好处呢?下图为在AWS上的全托管服务和自己管理的区别。
全托管的服务之下,对于用户来说,只需要去关注几个事情:应用层的架构设计、采用什么样的数据库、解决什么样的场景问题、查询构造、怎么去优化SQL查询语句或是NoSQL的查询方式。剩下的与数据库本身相关的工作,比如故障的转移、备份和恢复、隔离和安全、行业合规、补丁修复、监控、维护等,都可以交给AWS来做。这样一来,用户可以更加专注于业务本身的创新,而不是把时间浪费在数据库这种非常耗时、耗精力的基本维护上。
随着信息技术的蓬勃发展,数据规模也在不断增长,企业需要处理的数据规模从GB快速增长到TB甚至PB规模,同时需要提供毫秒级延迟的数据访问,数据库有时需要每秒处理数百万个请求,可扩展以支持世界各地的数以百万、千万计的用户。
AWS数据库服务一览图
Amazon Aurora是一种与MySQL和PostgreSQL兼容的关系数据库,专为云而打造,既具有传统企业数据库的性能和可用性,又具有开源数据库的简单性和成本效益。
Amazon Aurora关系数据库优势
Amazon DynamoDB键值数据库优势
目前许多全球发展最快的企业,如Samsung、Toyota、Lyft等企业,都依靠DynamoDB 的规模和性能来支持其关键任务工作负载。选择 DynamoDB作为键值和文档数据库,可用于其移动、Web、游戏、广告技术、物联网以及其他需要任何规模的低延迟数据访问的应用程序。
Amazon ElastiCache是一种托管的内存数据库,它可以采用两种引擎,一种是Redis,一种是Memcached,通过这两种不同的引擎可以为用户提供一个相当于亚毫秒级延时的数据库的响应。它在安全性方面,可用于集群隔离、静止/传输加密和HIPAA合规性的虚拟私有云。在扩展性方面,可使用副本进行读扩展,使用分片进行写和内存扩展,不存在中断扩展。另外,在高可用和可靠性方面,可通过多可用区实现自动故障切换。
Amazon ElastiCache内存数据库优势
Amazon ElastiCache可在云中无缝设置、运行和扩展常见的开源兼容内存中数据存储。通过从高吞吐量和低延迟的内存数据存储中检索数据,构建数据密集型应用程序或提升现有数据库的性能,是缓存、会话存储、游戏、地理空间服务、实时分析和队列等实时使用案例的常见选择。
Amazon DocumentDB是一种快速、可扩展、高度可用且完全托管的文档数据库,支持MongoDB工作负载,即原来采用MongoDB的用户,几乎可以无缝的切换到DocumentDB上来。作为一个文档数据库,Amazon DocumentDB使得存储、查询和索引JSON数据变得简单。
Amazon DocumentDB是一种非关系数据库服务,可以提供大规模运行关键任务型 MongoDB工作负载时所需的性能、可扩展性和可用性。由于存储和计算是分离的,允许各自独立扩展,所以不管数据大小如何,都能够通过在几分钟内添加多达 15 个低延迟只读副本来将读取容量增至每秒数百万个请求。AmazonDocumentDB的设计旨在实现 99.99% 的可用性,并且可以跨三个AWS可用区(AZ)复制6个数据副本。
Amazon Keyspaces是一种可扩展、高度可用且兼容Apache Cassandra(开源分布式NoSQL数据库,属于宽表数据库)的托管数据库,借助Amazon Keyspaces,可以提供大规模运行业务关键型Cassandra工作负载所需的性能、弹性和企业级功能,也就是说,使用当前的相同Cassandra应用程序代码和开发人员工具在AWS上可运行Cassandra工作负载。
Amazon Keyspaces宽表数据库优势
借助Amazon Keyspaces,可以构建每秒可处理数千个请求,且吞吐量和存储空间几乎无限的应用程序,同时数据默认会被加密,还可以使用时间点恢复持续备份表数据。
Amazon Neptune是一种快速、可靠且完全托管的图形数据库,可帮助构建和运行使用高度互连数据集的应用程序。其核心是专门构建的高性能图形数据库引擎,它进行了优化以存储数十亿个关系并将图形查询延迟降低到毫秒级。Amazon Neptune支持常见的图形模型Property Graph和W3C的RDF及其关联的查询语言ApacheTinkerPop Gremlin和SPARQL,从而能够轻松构建查询以有效地导航高度互连数据集,所支持的图形使用案例,如社交网络、建议引擎、欺诈检测、知识图谱、药物开发和网络安全等。
Amazon Neptune图数据库优势
AmazonTimestream 是一种快速、可扩展的无服务器时间序列数据库,适用于物联网和运营应用程序,使用该服务每天可以轻松存储和分析数万亿个事件,速度提高了1000倍,而成本仅为关系数据库的十分之一。
Amazon Timestream将近期数据保留在内存中,根据用户定义的策略将历史数据移至成本优化的存储层,大大节省了管理时间序列数据生命周期的时间和成本,专门构建的查询引擎可用于访问和分析近期数据和历史数据,无需在查询中显式指定数据是保存在内存中还是成本优化层中。同时还内置了时间序列分析函数,可帮助近乎实时地识别数据的趋势和模式,由于是无服务器服务,可自动缩放以调整容量和性能,因此无需管理底层基础设施,可以专注于构建应用程序。
Amazon QLDB分类账数据库优势
Amazon QLDB是一种新型数据库,无需参与构建自己的类似分类账应用程序的复杂开发工作,数据的更改历史记录就是不可变的(无法更改或删除),并且,还可以使用加密技术,轻松保证应用程序的数据不会遭到意外修改。其使用不可变的事务日志(简称日志),可跟踪每个的应用程序数据更改,并不断维护完整且可验证的更改历史记录。
在企业级IT系统中数据库居于核心地位,据不完全统计,关键业务系统中有90%基于数据库系统开发。如果对选定的数据库进行更换,一方面要修改应用程序,工作量较大,还存在一定的风险;另一方面,数据库中保存的一般是企业非常重要的数据,数据库迁移可能会威胁数据的安全。那么如何把传统数据库安全迁移到AWS专用数据库呢?
AWS数据库迁移服务主要有以下几点优势:
简单易用。无需安装任何驱动程序或应用程序,大多数情况下,也不需要对源数据库进行更改。
最少停机时间。帮助用户将数据库迁移至 AWS,几乎没有停机时间。
支持最广泛使用的数据库。可以在广泛使用的商用和开源数据库之间迁移数据。
成本低廉。是一项低成本服务,只需为迁移过程中使用的计算资源以及额外的日志存储空间付费。
设置快速简单。在 AWS 管理控制台中,只需花费几分钟的时间就能设置一个迁移任务。
运行可靠。具有高度恢复和自愈能力,可持续监控源数据库和目标数据库、网络连接性以及复制实例。
亚马逊全部Oracle数据库迁移到专用数据库
在这一全新的数字化时代,数据是一切业务的核心,要想更有效地管理、分析和挖掘数据带来的价值,离不开专用数据库。传统商用数据库因其昂贵的投入、扩展性和灵活性不足受到挑战,而专用数据库则因天然地具备云计算的弹性能力,兼具开源数据库的易用、开放特点,及传统数据库的管理和处理性能等优势,正成为企业实现数字化转型的优先选择。
“巅峰科技,重塑未来”亚马逊 re:Invent 2020 AWS年度盛会将于2020年12月1日—12月18日举行,长达3周的在线峰会,首次对公众免费开放,欢迎品鉴!