2023 亚马逊云科技 re:Invent 大会探秘:Aurora 无限数据库的突破性应用

在这里插入图片描述

文章目录

    • 一、前言
    • 二、Amazon Aurora 无限数据库
      • 2.1 亚马逊云科技数据库产品发展历程
      • 2.2 什么是 Amazon Aurora Limitless Database(无限数据库)
      • 2.3 Amazon Aurora Limitless Database 设计架构
      • 2.4 Amazon Aurora Limitless Database 分片功能
      • 2.5 使用 Amazon Aurora Limitless Database 示例
        • 2.5.1 创建 customer 分片表
        • 2.5.2 创建 order 分片表
        • 2.5.3 创建 tax_rate 分片表
    • 三、在亚马逊云科技门户中创建 Amazon Aurora Limitless 数据库
    • 四、文末总结

授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 亚马逊云科技开发者社区, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道

一、前言

2023 年的亚马逊云科技 re:Invent 大会已于内华达州的拉斯维加斯盛大举行。在现今 2023 年该大会已经迎来了第 12 届。

在为期五天的大会里吸引了全球数万名观众和客户,共同深入探讨、学习并体验最新的云计算技术和行业趋势。作为亚马逊云科技每年一度的盛事,今年的re:Invent再次突显了该公司在云计算领域的领先地位和创新实力。此次盛会上,亚马逊云科技发布了一系列重要新品和解决方案,为全球客户带来了前所未有的科技盛宴。

而在今年的亚马逊 re:Invent 大会中,在关系型数据库方面,让我印象颇深的重磅发布是 Amazon Aurora Limitless Database (无限数据库)

在这里插入图片描述

二、Amazon Aurora 无限数据库

在本博文开头我有提过,让我印象颇深的重磅发布是 Amazon Aurora Limitless Database (无限数据库),接下来让我们更加详细了解一下 Amazon Aurora Limitless Database (无限数据库)。

2.1 亚马逊云科技数据库产品发展历程

我们在详细介绍 Amazon Aurora Limitless Database(无限数据库)前,先了解一下亚马逊云科技数据库产品发展历程。

在这里插入图片描述

对于比较了解亚马逊云科技产品的小伙伴们应该不会陌生,亚马逊云科技拥有众多的数据库产品,针对不同的业务及功能需要,你可以选择不同的数据库产品。
而回顾亚马逊云科技关系型数据库 15 年的发展历程你会发现,数据库产品逐渐走向,再从走向了无限

2009年推出:Amazon RDS(Relational Database Service)关系型数据库服务,支持多种关系型数据库引擎,如 MySQL、PostgreSQL、MariaDB、Oracle 和 Microsoft SQL Server。RDS 简化了数据库管理任务,提供了可扩展性和自动备份功能。

2014年推出:Amazon Aurora,是一种高性能、高可用性的关系型数据库引擎,与 MySQL 和 PostgreSQL 兼容。Aurora 的架构设计提供与商业数据库相媲美的性能,同时降低了成本。

2018年推出:Amazon Aurora Serverless,这项服务的推出是为了提供更加灵活和成本效益的数据库解决方案。相比于传统的数据库部署方式,Aurora Serverless 允许用户根据实际需求自动扩展数据库容量,从而降低了成本并提高了灵活性。用户无需管理底层的服务器或实例,而是根据实际数据库负载自动进行容量的扩展和缩减,这使得数据库更适应性更强。提供了数据库资源的无缝上下伸缩

2018年推出:Amazon Aurora Limitless,通过自研的时钟同步,来实现高性能的分布式事务,提供了可以横向写扩展的分布式数据库

2.2 什么是 Amazon Aurora Limitless Database(无限数据库)

Amazon Aurora Limitless Database(无限数据库)该数据库能够让你将 Amazon Aurora 集群扩展到每秒数百万次写入事务,并管理以 PB 计的数据量。借助这一新功能,你可以在 Aurora 上扩展关系型数据库工作负载,无需创建自定义应用逻辑或管理多个数据库。

Amazon Aurora Limitless Database(无限数据库)通过提供无服务器终端节点来轻松扩展你的关系型数据库工作负载,该节点会自动在多个 Amazon Aurora Serverless 实例之间分发数据和查询,并保持单个数据库的事务一致性。Amazon Aurora Limitless Database(无限数据库)提供分布式查询规划和事务管理等功能,消除了你创建自定义解决方案或管理多个数据库以进行扩展的需要。随着工作负载的增加,Amazon Aurora Limitless Database(无限数据库)会添加额外的计算资源,同时保持在指定预算范围内运行,因此无需为高峰时段进行配置,当需求低时,计算资源会自动缩减。

Amazon Aurora Limitless Database(无限数据库)目前仅在以下 Region 的 Amazon Aurora 与 PostgreSQL 兼容版本进行有限预览:

  • 美国东部(俄亥俄州)
  • 美国东部(弗吉尼亚北部)
  • 美国西部(俄勒冈州)
  • 亚太地区(东京)
  • 欧洲(爱尔兰)

这里注意,现阶段只有 Aurora PostgreSQL 才支持,MySQL 版本暂时不支持。

2.3 Amazon Aurora Limitless Database 设计架构

Shards(分片) 是 Aurora PostgreSQL 数据库的实例,每个实例存储数据库的一部分数据,可实现并行处理,提高写入吞吐量。事务路由器负责管理数据库的分布式特性,并向数据库客户端呈现单一的数据库图像。
在 Aurora Limitless 的 DB Shard group 中具有两层架构,由多个数据库节点组成,包括事务路由器和分片。分片是 Aurora PostgreSQL 数据库实例,每个分片存储数据库的一部分数据,以实现并行处理以实现更高的写入吞吐量。
这些路由器维护有关数据存储位置的元数据,解析传入的SQL命令并将其发送到各个分片,聚合分片数据以向客户端返回单一结果,并管理分布式事务以确保整个分布式数据库的一致性。无限数据库架构中的所有节点均包含在一个数据库分片组中。数据库分片组具有单独的终端节点,提供访问无限数据库资源。

(查看清晰大图:右键图片新窗口打开后放大镜查看)
在这里插入图片描述

在上述架构图中,左侧是官方给出的 Amazon Aurora Limitless Database 设计架构图(点击这里),在这个标准的架构中,其中包括四个主要部分:

  1. 在分布式存储上的 Aurora 卷
  2. 一个 Aurora 写入实例
  3. 通过可选的读取实例来实现可用性和读取扩展性
  4. 在无限制数据库中引入了“分片组”的概念"

具体的详细处理流程已经在上述有说明;右侧架构可以认为是左侧架构图中黄色部分:数据库分片组内的放大架构,而这个架构非常类似于阿帕奇的 ShardingSphere(点击这里)。希望这个我后绘制的架构图,能够帮你更好的理解 Amazon Aurora Limitless Databas。

2.4 Amazon Aurora Limitless Database 分片功能

不知道你有没有使用过 Amazon Aurora Serverless v2,这个版本的 Aurora 支持多个可用区,并具备自动扩容功能。当你在 RDS 服务中选择创建 Aurora 的时候就能看到该选项(后文体验中也有标注)。

在这次 re:Invent 大会后,你是否对 Amazon Aurora Serverless v2 和 Amazon Aurora Limitless Database 之间有何不同进行过考虑,博主个人认为最大的差异就在于增加了分片功能,我们在上述的 Amazon Aurora Limitless 架构中也有提到。

Amazon Aurora Serverless v2 能够自动增减ACU(Aurora 容量单位)容量。但是,增加的上限为个 128 ACU。

想了解关于 Amazon Aurora ACU 的知识点可以 点击这里,本文不过多赘述。

这个128 ACU大概是亚马逊云科技物理服务器的最大值。到这里还不足以成为一个完全的无服务器服务。然而,Amazon Aurora Limitless Database 现在可以处理分片数据库

这意味着当 ACU 数量超过128时,数据库可以分成 128 ACU 的主数据库加上附加数据库。换句话说,Amazon Aurora Limitless Database 非常有可能无上限地增加容量。

2.5 使用 Amazon Aurora Limitless Database 示例

出于说明示例的目的,假设我们有一个客户表(Customer)、一个订单(Order)和一个税率表(Tax Rate)。将此分片后,你可以使用客户 ID 作为订单表中的分片键。连接客户表和订单表时,有相同键的数据很方便。每个分片上都有税率表作为参考表。

具体示例如下图所示:

在这里插入图片描述

2.5.1 创建 customer 分片表

在实际创建表时,现在引入了新概念:create table mode(创建表模式),并设置会话参数。

对于客户表(分片表),将 create table mode 设置为sharded,并指定cust_id作为分片键来创建表。

SET rds_aurora.limitless_create_table_mode='sharded';SET rds_aurora.limitless_create_table_shard_key='{"cust_id"}';CREATE TABLE customer (cust_id INT PRIMARY KEY NOT NULL,name    TEXTemail   VARCHAR(100));
2.5.2 创建 order 分片表

对于订单表,为分片表,同样将 create table mode 设置为sharded,并将分片键指定为cust_id,并且,我们将 collocate with 参数设置成我们刚才创建的customer 表。

SET rds_aurora.limitless_create_table_mode='sharded';			--可选项
SET rds_aurora.limitless_create_table_shard_key='{"cust_id"}';	--可选项SET rds_aurora.limitless_create_table_collocate_with='customer';CREATE TABLE order (order_id    INT NOT NULL,cust_id     INT NOT NULL,amount      DOUBLE NOT NULL,tax_rate_id DOUBLE,PRIMARY KEY (order_id, cust_id)
);

注意:实际上,上面的三个SQL语句,表明我们将创建另一个分片表,它将与客户表(customer)放在同一个位置。因此两个表的所有数据将位于同一分片上,或者是具有相同分片键值的数据将位于同一分片上

2.5.3 创建 tax_rate 分片表

最后的税率表是一个参考表,使用语法和上述类似,是将 create table mode 设置为reference

从下面的语法中可以看到一方面limitless_create_table_mode的参数设置成了reference,而不是之前的sharded;另一方面创建 tax_rate 表的时候并没有指定分片键(limitless_create_table_shard_key)。所以 tax_rate 表和上述的客户和订单表不在同一个位置。

SET rds_aurora.limitless_create_table_mode='reference';CREATE TABLE tax_rate (tax_rate_id INT PRIMARY KEY NOT NULL,city        TEXT NOT NULL,state       TEXT,country     TEXT NOT NULL,tax_rate    DOUBLE NOT NULL
);-- 同时还支持直接创建标准的 Aurora 标准表。
SET rds_aurora.limitless_create_table_mode='standard';

除了 limitless_create_table_mode 设置成reference外,还支持直接创建标准的 Aurora 标准表,这也就意味着,这个标准表将与你的分片表和引用表位于同一个集群中。。

三、在亚马逊云科技门户中创建 Amazon Aurora Limitless 数据库

进入亚马逊门户首页,服务搜索框内,直接搜索RDS,注意文中开头有讲过 Amazon Aurora Limitless 数据库还是处于预览阶段,只有固定的几个 Region 中可以使用,所以需要确认自己的 Region。

在这里插入图片描述

进入到创建数据库 RDS 界面后,选择 Aurora(PostgreSQL),因为现在 Amazon Aurora Limitless 数据库暂时只支持 PostgreSQL 版本,MySQL 和其他数据库暂时不支持。

在这里插入图片描述

进入到基础设置页面后,根据自身情况进行设置,如下图所示:

在这里插入图片描述

进入集群设置页面后,根据自身情况进行设置,我们之前在 3.4 Amazon Aurora Limitless Database 分片功能 章节中有提到多 AZ 集群的功能,在此处即可进行设置,如下图所示:

在这里插入图片描述

继续设置网络 VPC 及连接等相关设置

在这里插入图片描述

最后预览自己的配置以及价格,直接点击创建数据库按钮。

在这里插入图片描述

创建过程中需要等待一段时间,等待过后,在数据库页面可以看到刚才所创建的 Aurora 数据库,之后点击 Action 按钮,可以在弹出的菜单中找到添加数据库分片组的新功能。

在这里插入图片描述

添加并设置好后,可以看到我们的集群中,即包括普通 PostgreSql 的实例,也包括 Amazon Aurora Limitless 数据库。

在这里插入图片描述

四、文末总结

在2023年的亚马逊云科技 re:Invent 大会上,众多创新产品和解决方案亮相,其中 Amazon Aurora Limitless Database 成为备受瞩目的重磅发布。这一无限数据库扩展了 Amazon Aurora 的能力,使用户能够轻松地将数据库扩展到每秒数百万次写入事务,并管理以 PB 计的数据量。通过无服务器终端节点,该数据库提供了分布式查询规划和事务管理等功能,消除了用户创建自定义解决方案或管理多个数据库以进行扩展的需要。Amazon Aurora Limitless Database 的分片功能更进一步,允许数据库无限制地增加容量,为用户提供了无限的可能性和扩展性。

虽然目前仅支持部分地区的 PostgreSQL 版本,但这一创新展示了亚马逊云科技在数据库领域持续推动的领先地位和创新实力,为用户提供了更大的性能、灵活性和成本效益。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/219151.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微服务最佳实践:构建可扩展且高效的系统

微服务架构彻底改变了现代软件开发,提供了无与伦比的敏捷性、可扩展性和可维护性。然而,有效实施微服务需要深入了解最佳实践,以充分发挥微服务的潜力,同时避免常见的陷阱。在这份综合指南中,我们将深入研究微服务的关…

WEB 3D技术 简述React Hook/Class 组件中使用three.js方式

之前 已经讲过了 用vue结合three.js进行开发 那么 自然是少不了react 我们 还是先创建一个文件夹 终端执行 npm init vitelatest输入一下项目名称 然后技术选择 react 也不太清楚大家的基础 那就选择最简单的js 然后 我们就创建完成了 然后 我们用编辑器打开创建好的项目目…

wvp-GB28181-pro 2.0+ZLMediaKit 使用Dockerfile制作镜像以及部署【CentOS7】

说明 部署gb28181和zlm主要需要构建两个镜像,第一个为基础镜像,以centos7为基础构建新的基础镜像base.Dockerfile,第二个镜像为服务部署镜像server.Dockerfile,以第一个镜像base.Dockerfile构建出的镜像为基础镜像进行构建 整个基础镜像的构…

高效营销系统集成:百度营销的API无代码解决方案,提升电商与广告效率

百度营销API连接:构建无代码开发的高效集成体系 在数字营销的高速发展时代,企业追求的是快速响应市场的能力以及提高用户运营的效率。百度营销API连接正是为此而生,它通过无代码开发的方式,实现了电商平台、营销系统和CRM的一站式…

深度解读 Cascades 查询优化器

数据库中查询优化器是数据库的核心组件,其决定着 SQL 查询的性能。Cascades 优化器是 Goetz 在 volcano optimizer generator 的基础上优化之后诞生的一个搜索框架。 本期技术贴将带大家了解 Cascades 查询优化器。首先介绍 SQL 查询优化器,接着分析查询…

集群监控Zabbix和Prometheus

文章目录 一、Zabbix入门概述1、Zabbix概述2、Zabbix 基础架构3、Zabbix部署3.1 前提环境准备3.2 安装Zabbix3.3 配置Zabbix3.4 启动停止Zabbix 二、Zabbix的使用与集成1、Zabbix常用术语2、Zabbix实战2.1 创建Host2.2 创建监控项(Items)2.3 创建触发器&…

Kubernetes实战(十四)-k8s高可用集群扩容master节点

1 单master集群和多master节点集群方案 1.1 单Master集群 k8s 集群是由一组运行 k8s 的节点组成的,节点可以是物理机、虚拟机或者云服务器。k8s 集群中的节点分为两种角色:master 和 node。 master 节点:master 节点负责控制和管理整个集群…

机器学习--归一化处理

归一化 归一化的目的 归一化的一个目的是,使得梯度下降在不同维度 θ \theta θ 参数(不同数量级)上,可以步调一致协同的进行梯度下降。这就好比社会主义,一小部分人先富裕起来了,先富带后富&#xff0c…

Crocoddyl: 多接触最优控制的高效多功能框架

系列文章目录 前言 我们介绍了 Crocoddyl(Contact RObot COntrol by Differential DYnamic Library),这是一个专为高效多触点优化控制(multi-contact optimal control)而定制的开源框架。Crocoddyl 可高效计算给定预定…

jmeter 如何循环使用接口返回的多值?

有同学在用jmeter做接口测试的时候,经常会遇到这样一种情况: 就是一个接口请求返回了多个值,然后下一个接口想循环使用前一个接口的返回值。 这种要怎么做呢? 有一定基础的人,可能第一反应就是先提取前一个接口返回…

CCD相机为什么需要积分球均匀光源

积分球内腔是一个具备高漫反射特性的收光球,其内部中空、内球面均匀地涂有漫反射材料,具有匀光与混光的作用,因此常常被用来做收光的均光球。由于光源性能等因素的影响,可能导致出射光线带偏振方向、出光不均匀,使用积…

智能优化算法应用:基于静电放电算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于静电放电算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于静电放电算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.静电放电算法4.实验参数设定5.算法结果6.…

MongoDB表的主键可以重复?!MongoDB的坑

MongoDB表的主键可以重复?! 眼见为实? 碰到一个奇怪的现象, MongoDB的一个表居然有两个一样的_id值! 再次提交时,是会报主键冲突的。那上图,为什么会有两个一样的_id呢? 将它们的…

盛最多水的容器

给定一个长度为 n 的整数列表 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。 说明:你不能倾斜容器。 示例1&…

@Scheduled任务调度/定时任务-非分布式

1、功能概述 任务调度就是在规定的时间内执行的任务或者按照固定的频率执行的任务。是非常常见的功能之一。常见的有JDK原生的Timer, ScheduledThreadPoolExecutor以及springboot提供的Schduled。分布式调度框架如QuartZ、Elasticjob、XXL-JOB、SchedulerX、PowerJob等。 本文…

MySQL之DQL语句

文章目录 DQL语句指定查询查询全部查询部分数据别名查询使用order by子句拼接查询去重查询WHERE – 条件过滤模糊查询JOIN – 多表关联求和查询排序查询统计查询分页查询 DQL语句 DQL(Data Query Language)查询数据 操作查询:select简单的查…

Cell Systems | 深度学习开启蛋白质设计新时代

今天为大家介绍的是来自Bruno Correia团队的一篇综述。深度学习领域的迅速进步对蛋白质设计产生了显著影响。最近,深度学习方法在蛋白质结构预测方面取得了重大突破,使我们能够得到数百万种蛋白质的高质量模型。结合用于生成建模和序列分析的新型架构&am…

OpenCV开发:MacOS源码编译opencv,生成支持java、python、c++各版本依赖库

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库。它为开发者提供了丰富的工具和函数,用于处理图像和视频数据,以及执行各种计算机视觉任务。 以下是 OpenCV 的一些主要特点和功能&#xff…

二、如何保证架构的质量、架构前期准备、技术填补与崩溃预防、系统重构

1、如何保证架构的质量 -- 稳定性和健壮性 2、正确的选择是良好的开端 -- 架构前期准备 ① 架构师分类:系统架构师、应用架构师、业务架构师 3、技术填补与崩溃预防 4、系统重构

day39算法训练|动态规划part02

62.不同路径 代码随想录 按照动规五部曲来分析: 1确定dp数组(dp table)以及下标的含义 dp[i][j] :表示从(0 ,0)出发,到(i, j) 有dp[i][j]条不同的路径。 2确定递推公式 想要求…