分布式SQL数据库新的演变方向

分布式SQL数据库新的演变方向

译文
作者:陈峻 2020-08-03 07:00:00

数据库

分布式 本文将和您具体讨论分布式SQL的相关概念和基本特征,以方便进行选择与试用。

[[335933]]

【51CTO.com快译】随着各个组织先后将其业务转向云端环境时,他们很快地意识到:在一些最关键的应用背后,那些旧式的关系型数据库不但限制了迁移的速度,而且根本无法有效地实现灵活的业务扩展。许多企业既希望保持诸如Oracle、SQL Server、Postgres和MySQL之类关系型数据库的可靠性,又能够享受到云服务所带来的规模效应、以及全局稳定性等“红利”。

为了满足此类需求,人们开始转向使用NoSQL数据库。但是由于NoSQL并非完全为提供真正的一致性而设计的,因此它无法作为事务型数据库而使用。当然,最近有一些NoSQL解决方案声称能够提供“ACID事务”。不过,它们无法提供诸如:财务分帐、库存控制、以及身份管理等关键任务所需的隔离级别。

分布式SQL–一种新的数据库

2012年,Google发表了一篇有关Spanner的论文。文中介绍了一种全新的基于分布式系统的,且可以全球性扩展的分布数据库。总的说来,Google Cloud Spanner是一种可扩展的、多版本的、同步复制(synchronously-replicated)型数据库。它是第一个能够在全球范围内分发数据,并支持外部一致性(externally-consistent)的分布式事务的系统(具体请参见–https://ai.google/research/pubs/pub39966)。

下面我们此基础上,一起来具体讨论此类分布式SQL的基本相关概念,特别是如何实现可扩展性和一致性的。通常,为了能够在分布式环境中真正具有可扩展性,分布式SQL数据库具有如下七种核心特征:

1.可扩展

正如我们无需繁重的准备就能够实现扩展式计算那样,分布式SQL数据库能够在不增加操作复杂性的情况下,适应云端环境的无缝扩展。也就是说,它具有在多个分布式参与者之间均匀分布数据的能力。

2.一致性

分布式SQL数据库必须在分布式环境中提供高度的隔离性。云端环境往往是由各种分布式系统和微服务所组成,而不同的调用和操作可能会指向同一块数据,因此我们很难保证事务一致性。分布式SQL数据库除了能够调节资源的争用,还能够提供与单实例数据库相同的事务隔离级别。

3.鲁棒性

分布式SQL数据库能够在无需任何外部工具的条件下,提供最高级别的鲁棒性。凭借着云服务为我们的业务所提供持续在线环境,分布式数据库可以将故障恢复的用时减到最少,并且无需任何外部配置,即可自动化地复制数据。

4.地理复制(Geo-replication)性

由于云服务能够以一种可接受的服务水平,将用户的业务触达全球的各个角落,因此分布式SQL数据库也能够据此突破地域的限制。在复杂、广泛、分散的地理环境中,它能够进行分布处理和数据存储,以满足各地用户的业务需求。

5.支持SQL

众所周知,SQL是数据库所使用的结构化语言,也是所有应用逻辑的默认语言。凭借着其通用性,我们不必重新培训开发人员,即可熟练地对接和调用数据库资源。除了上面提到的Spanner,诸如Amazon Aurora、Yugabyte、FaunaDB和CockroachDB等都能够支持SQL。

6.数据本地化

在分布式系统中,由于数据被分散到了各个地区的数据中心,因此应用架构师往往需要了解每个站点的位置,在程序逻辑上找到最近的位置,以便将需要调用的存储数据绑定为应用的一部分。那么,分布式SQL可以在其数据表中,基于某些字段对数据进行地理分区,进而让数据更接近用户侧。这就是所谓的数据库的数据主权(data sovereignty)问题。据此,开发人员可以确保用户对其信息的低延迟访问,从而最大程度地减少数据在云端传输的费用和流量的开销。

7.多云(Multi-cloud)模式

分布式SQL数据库的一个独特特征是:半自治单元(semi-autonomous units),它们可以参与到较大的系统中。也就是说,每个单元都能够自行部署,然后加入到CockroachDB集群之类更大的系统中。通过该特征,分布式SQL数据库可以更好地扩展到真正的多云环境中,而不仅仅依赖于单个网络,来完成数据的分发。在此模式下,参与者(participant)的云服务类别将不再受到限制,它们可以位于任何地方,任何一种公共云、私有云、甚至是单个的本地(on-premise)实例。显然,这对于我们在分布式混合与多云环境中的各类应用来说,都是至关重要。

分布式SQL的基本要求

上述七项特征可谓分布式SQL在云端环境中所独有的。但是,说到底它仍然是一种数据库,因此也应当具备数据库的如下基本功能:

  1. 可管理性:用户可以使用一组命令行、或基于图形化的工具,来轻松地安装和配置目标数据库。用户通过针对运行环境的控制、数据生命周期的管理、以及常规的备份与还原,以实现数据表的创建,schema的定义与实现,索引与分区的设置,以及DDL的重建等。
  2. 可优化:DBA可以深入了解数据库在查询响应方面的性能,运用基于成本的优化器(cost-based optimizer)等高级功能,进而实现查询效率的优化。
  3. 具有安全性:与企业的其他常用软件类似,安全性是一个不容忽视的环节。数据库应提供认证、授权和可问责性,这样的AAA机制。而且,此类功能不应该只独立数据库内部,而应当与具有身份管理和治理功能的集中式管控系统集成一起,以便对流转在整个系统中各个级别的数据(包括表、行和列等级别)设置一致性的策略。
  4. 可集成:显然,数据库需要能够通过经过测试的、或已知的驱动程序,与前端应用相集成,以实现批量获取或导出数据等服务。与此同时,数据库还应通过与ETL(Extract-Transform-Load)工具的配合使用,将捕获到的数据,与数据流分析、或云端存储等更高级的服务相集成。

当然,上述所谓“基本”功能要求,其实并不简单,它们旨在提供更加成熟的、针对企业级应用的数据库。

总结

作为一种新兴的类别和演变的方向,分布式SQL数据库还需要在数据一致性和本地化等方面,进一步配合云端环境来不断改进。毕竟,在严苛的生产环境中,此类数据库会碰到更多有关性能和效率等方面的实际问题。

前文提到的CockroachDB,是一种云原生的分布式SQL数据库。它可以帮助各种企业级应用,将最基本的工作负载和一些关键性的任务迁移到云端,并实现了对于各种高级云端原生环境的策略编排。您可以作为了解分布式SQL的一个切入口进行试用。

原标题:Distributed SQL: An Evolution of the Database ,作者: Jim Walker

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

 

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/300869.html<

(0)
管理的头像管理
上一篇2025-05-24 01:56
下一篇 2025-05-24 01:57

相关推荐

  • 云服务器和云虚拟主机怎么选?云服务器和虚拟主机区别

    云服务器适合业务增长快、需弹性扩展的场景,而云虚拟主机适合预算有限、技术门槛低的小型静态网站或测试环境,二者核心区别在于资源独享性与运维复杂度,核心差异解析:从底层架构到使用体验很多人容易混淆这两者,觉得它们都是“买空间建站”,它们的底层逻辑完全不同,云服务器(ECS)就像是你租了一整栋别墅,水电网络独立,你想……

    2026-06-29
    0
  • 赣州智慧旅游招聘是真的吗?赣州旅游人才招聘信息

    中级岗位(3-5年经验)月薪范围通常在6000-10000元,这类岗位需要独立负责项目模块,如独立运营一个抖音账号,或维护一个景区小程序的功能迭代,具备成功案例的候选人议价能力较强,高级岗位(5年以上经验)月薪范围通常在10000-20000元,部分核心管理岗可达更高,这类人才需要具备战略规划能力,如制定整个景……

    2026-06-29
    0
  • 赣州智能物联网车位锁如何管理?智能车位锁管理系统多少钱

    赣州智能物联网车位锁管理的核心在于通过云端平台实现远程控锁、状态实时监控及自动计费,彻底解决传统车位“被占难管”与“找位难”的痛点,在赣州这样的城市,随着机动车保有量的持续增长,老旧小区、商业综合体以及私人固定车位的资源矛盾日益凸显,传统的机械地锁或简易遥控锁,不仅操作繁琐,更无法实现数据化管理,引入智能物联网……

    2026-06-29
    0
  • 赣州智能消防栓好用吗,智能消防栓多少钱一个

    赣州智能消防栓通过物联网技术实现实时监测与远程报警,能显著降低火灾响应时间并提升城市消防安全管理水平,是目前智慧城市建设中不可或缺的基础设施,赣州智能消防栓的核心价值与应用场景传统消防栓往往存在“看不见、摸不着、用不了”的痛点,在赣州这样地形复杂、老城区与新城区并存的区域,传统设施的管理难度极大,智能消防栓的出……

    2026-06-29
    0
  • 云服务器和物理机到底有啥区别?

    云服务器本质上是虚拟化资源池中的弹性实例,而传统物理服务器是独占的硬件实体,前者胜在弹性与运维便捷,后者强在物理隔离与性能稳定,具体选择取决于业务对成本、扩展性及安全合规的权衡,很多人初次接触服务器时,容易把“云服务器”和“传统物理服务器”混为一谈,觉得它们都是用来跑网站或存数据的盒子,这两者的底层逻辑完全不同……

    2026-06-29
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注