re:Invent 2023 | 亚马逊Aurora无限数据库,轻松实现规模化!一文带你掌握关键技巧

关键字: [Amazon Web Services re:Invent 2023, Scale With Amazon Aurora, Amazon Aurora Limitless Database, Sharding Databases, Distributed Transactions, Query Parallelism]

本文字数: 1700, 阅读完需: 8 分钟

视频

如视频不能正常播放,请前往bilibili观看本视频。>> https://www.bilibili.com/video/BV14g4y1f7zD

导读

Amazon Aurora是一个为云而构建的关系型数据库服务,其设计目标是实现全球范围内无与伦比的高性能和可用性,同时完全兼容MySQL和PostgreSQL。在本次会议中,我们将了解Amazon Aurora无限数据库是如何使应用程序能够以每秒数百万次事务的速度扩展到PB级的数据量。我们将探讨Aurora无限数据库的架构、分布式事务管理以及无服务器扩展能力。此外,我们还将发现哪些应用模式非常适合Aurora无限数据库,哪些模式应该避免。我们将学习Aurora无限数据库如何使扩展Aurora变得前所未有的简单。

演讲精华

以下是小编为您整理的本次演讲的精华,共1400字,阅读时间大约是7分钟。如果您想进一步了解演讲内容或者观看演讲全文,请观看演讲完整视频或者下面的演讲原文。

演讲者首先描述了数据库增长的情况。随着依赖数据库的应用和业务的成功,数据量和数据库访问量往往呈现快速增长的趋势。例如,一个迅速发展的电子商务网站可能会导致数据量和数据库访问量的大幅增加。同样,一个SaaS客户可能会看到其应用的爆炸性采用,从而推动更多的数据存储和数据库查询。构建这些应用的团队应为自己解决重要业务问题的能力感到自豪。然而,这也带来了一项新的挑战:随着应用的扩展,数据大小和查询量呈指数级增长。数据库需要能够满足这种需求。

演讲者还分享了客户可以通过三种主要方式扩展数据库工作负载:提高性能、优化SQL查询和创新技术的应用。客户可以与DBAs合作调整并优化高负载查询。当工作负载过大时,客户可能需要寻求额外的帮助,即增加物理机器和资源来处理工作。对于具有指数级增长的客户,通常需要手动将数据库分散到不同的实例中。

对于读取扩展,Aurora可以以相对简单的方式利用读取副本。然而,扩展写入更为复杂。最常见的方法是使用一种名为分片的技术。通过分片,将数据分布在多个数据库实例中,使得每个实例都可以处理总体数据的子集。如果正确执行,这些实例可以并行工作,实现比任何单个实例更大的规模。

然而,分片在应用开发中引入了许多复杂性。在数据分散到不同数据库的情况下,查询变得更加困难。应用程序必须了解数据的分布才能连接到正确的分片。客户发现查询分割的数据库相当复杂。

它使得Aurora的扩展变得更加简便,能够自动扩展至单个实例的限制之外。用户可以避免繁琐的手动分片过程。

  • 分布式架构允许其扩展,同时提供一个更像未分片的单一接口。用户无需针对复杂的分片拓扑进行编码。

  • 值得一提的是,无限数据库在整个系统中保持了完整的交易一致性,这是一个极为复杂的成就(稍后会进一步探讨)。用户无需牺牲一致性。

  • 它能处理每秒数百万交易以及单个Aurora集群内的PB级数据。用户可获得极致的性能和容量。

  • 用户仍能享受到Aurora的好处,如跨3个可用区的存储持久性、多区域高可用性、Performance Insights和CloudWatch等,这些都集成在一个熟悉的包中。操作复杂性降至最低。

为了展示无限数据库的效果,演讲者引入了一个简单的电子商务模型,其中包括用户可能会使用的三个表:

  1. 客户

  2. 订单

  3. 订单详情

无限数据库引入了两种新型表:

  1. Sharding Tables - These tables are distributed across instances that support the database. Determining which shard a given row belongs to based on the selected sharding key, in this case, the customer ID for the Orders table, ensures that all data related to a particular customer is located in the same shard. This optimization helps with queries that require access to all the data related to a customer. In the Limitless Database, data is automatically distributed across multiple instances. For example, mapping two customers to one shard means that each shard contains data from multiple customers.

  2. Reference Tables - These tables exist fully on each shard rather than being distributed across multiple shards. Reference tables work well when they naturally don't need to be sharded and are relatively small. Providing reference tables fully on each shard avoids additional connection coordination. However, high write volumes can cause issues as each shard must execute them individually.

Creating sharding and reference tables follow the same syntax as Aurora PostgreSQL. Additional session parameters define the schema and options:

  1. Setting the schema to SHARD allows for subsequent creation of sharded tables.
  2. Setting the schema to REFERENCE allows for subsequent tables to be reference tables.
  3. Sharded tables require a SHARD KEY to be set to the desired column.
  4. Colocating adjacent tables is achieved by setting the COLOCATE WITH parameter to the name of an existing sharded table.

Thus, Limitless Database introduces minimal changes to allow for massive scalability while maintaining PostgreSQL compatibility. Customers can use familiar syntax and add small features to enable sharding.

The speaker then delved into the architectural and implementation details:

  • Configuration is as simple as setting the maximum ACU to control the overall budget for extension-based computing redundancy and high availability. Customers enjoy simplified configuration.
  • Storage utilizes the distributed, durable infrastructure of Aurora spanning across three available zones. Customers benefit from the elasticity of Aurora storage.
  • Routers and shards are also distributed across the zones to avoid resource concentration in a single zone. Customers avoid zone failures impacting their operations.

For data distribution, sharded tables utilize hash range partitioning:

  • The sharding key is hashed to a 64-bit space, resulting in an even data distribution.
  • Ranges within this space are allocated to shards, referred to as table fragments. Data is logically split this way.
  • The router maintains only small metadata for table fragments, minimizing overhead.

碎片可以通过将表片段切片并移动到新的节点来实现分割,同时利用诸如存储克隆和写入时复制等Aurora功能来最小化开销。这种设计有助于有效扩展。

参考表使用分布式事务以实现复制时的强一致性。此举有助于避免客户面临的不一致性问题。

事务在处理方式上与标准的PostgreSQL非常相似,同时也支持分布:

无限数据库支持在整个系统上一致地使用读已提交和可重复读取隔离级别。这使得客户能够享受到熟悉的隔离级别。

要实现这一目标,需要进行大量定制工程,重点是使用路由器和碎片的紧时时钟同步来进行基于时间的快照和提交。然而,这些复杂性将由Aurora来解决。

对于单碎片写操作,快速的一阶段提交方法可以非常好地扩展。这使得客户能够在规模上获得性能优势。

多碎片事务需要两阶段提交以确保ACID保证,这具有更多的开销,但保持了正确性。通过这种方式,分布式事务能够保持ACID合规性。

该系统使用EC2时钟同步的精度来确保可重复读取和一致的快照,受最早/最晚可能时间限制。这种做法有助于避免异常情况。

总的来说,Limitless Database提供了与PostgreSQL相同的语义,只是在分布式环境中。这意味着客户可以使用熟悉的PostgreSQL功能。

在SQL方面,Limitless Database与PostgreSQL保持线性兼容性,并广泛覆盖其特性和扩展。查询在路由器上部分计划,然后让碎片执行本地规划,如选择索引和连接。虽然性能针对单碎片操作进行优化,但并行碎片查询也可以非常快地执行。这使得客户能够使用PostgreSQL工具和驱动程序。

总之,演讲者解释了Amazon Aurora Limitless Database如何使分布式数据库的力量易于使用,就像单个数据库一样。它保留了Aurora的好处,同时允许客户实现极端扩展和大工作量。他邀请与会者参加预览,亲自体验这一新功能。客户可以在没有分片痛苦的情况下实现大规模扩展。

下面是一些演讲现场的精彩瞬间:

克里斯托弗·海姆,作为亚马逊Aurora的产品经理,向我们介绍了一项名为Limitless的新数据库扩展功能,该功能允许Aurora集群突破之前的限制进行扩展。

尽管分片带来了规模的扩大,但同时也带来了跨数据库查询和实施事务的复杂性。

为了解决这些问题,Limitless数据库在单个Aurora集群内提供了一致的事务一致性和可扩展性,即使面对每秒数百万交易的工作负载也能轻松应对。

为了实现这一目标,路由器通过传递时间上下文来建立跨分片的一致快照。

此外,领导者们强调了亚马逊云科技Aurora的广泛SQL兼容性以及对Postgres扩展的支持。

值得注意的是,架构的基础是postgres外部表查询,但由于其局限性,团队在postgres引擎内部对性能、可扩展性和功能进行了增强。

总结

在re:Invent上,亚马逊云科技进行了一次关于如何运用Amazon Aurora Limitless数据库突破单台机器限制进行关系型数据库扩展的演讲。演讲者首先阐述了分片作为一种扩大数据库写入吞吐量的常见方法,其原理是将数据分布到多个实例中。然而,分片同时也带来了查询、一致性和维护等方面的复杂性。为了解决这个问题,Amazon Aurora Limitless数据库旨在通过在托管服务中自动扩展,从而提供分片数据库的优点,同时保持单一数据库的简单性。该数据库提供了分布式架构和系统范围内的交易一致性,能够支持每秒数百万笔交易和PB级的数据量。

Limitless数据库采用了两类表:分布在不同实例上的分片表和每个实例上完全存在的引用表。这些表格可以并置,以便相关数据位于相同的分片中。语法利用了PostgreSQL的兼容性。在幕后,Limitless数据库使用了哈希范围分区、表切片和分片分割来实现水平扩展。此外,它还采用了基于时间的快照、提交和两阶段提交,以在具有可重复读取和读取已提交隔离性的分片之间提供ACID事务。

总之,Limitless数据库为关系型数据库带来了无缝的超规模简化,同时保持了PostgreSQL的兼容性和Aurora生态系统的集成。演讲者鼓励用户加入预览版,并在托管的数据库服务中体验极致的扩展。

演讲原文

https://blog.csdn.net/just2gooo/article/details/134838050

想了解更多精彩完整内容吗?立即访问re:Invent 官网中文网站!

2023亚马逊云科技re:Invent全球大会 - 官方网站

点击此处,一键获取亚马逊云科技全球最新产品/服务资讯!

点击此处,一键获取亚马逊云科技中国区最新产品/服务资讯!

即刻注册亚马逊云科技账户,开启云端之旅!

【免费】亚马逊云科技“100 余种核心云服务产品免费试用”

【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用”

亚马逊云科技是谁?

亚马逊云科技(Amazon Web Services)是全球云计算的开创者和引领者,自 2006 年以来一直以不断创新、技术领先、服务丰富、应用广泛而享誉业界。亚马逊云科技可以支持几乎云上任意工作负载。亚马逊云科技目前提供超过 200 项全功能的服务,涵盖计算、存储、网络、数据库、数据分析、机器人、机器学习与人工智能、物联网、移动、安全、混合云、虚拟现实与增强现实、媒体,以及应用开发、部署与管理等方面;基础设施遍及 31 个地理区域的 99 个可用区,并计划新建 4 个区域和 12 个可用区。全球数百万客户,从初创公司、中小企业,到大型企业和政府机构都信赖亚马逊云科技,通过亚马逊云科技的服务强化其基础设施,提高敏捷性,降低成本,加快创新,提升竞争力,实现业务成长和成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李白的朋友高适

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值