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

云计算
re:Invent
0
0
## 视频 <video src="https://dev-media.amazoncloud.cn/30-LibaiGenerate/31-LiBaiRebrandingVideo/DAT344-Achieving_scale_with_Amazon_Aurora_Limitless_Database-LBrebrandingWCaptionCN.mp4" class="bytemdVideo" controls="controls"></video> ## 导读 [Amazon Aurora](https://aws.amazon.com/cn/rds/aurora/?trk=cndc-detail)是一个为云而构建的关系型数据库服务,其设计目标是实现全球范围内无与伦比的高性能和可用性,同时完全兼容MySQL和PostgreSQL。在本次会议中,我们将了解[Amazon Aurora](https://aws.amazon.com/cn/rds/aurora/?trk=cndc-detail)无限数据库是如何使应用程序能够以每秒数百万次事务的速度扩展到PB级的数据量。我们将探讨Aurora无限数据库的架构、分布式事务管理以及[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)扩展能力。此外,我们还将发现哪些应用模式非常适合Aurora无限数据库,哪些模式应该避免。我们将学习Aurora无限数据库如何使扩展Aurora变得前所未有的简单。 ## 演讲精华 <font color = "grey">以下是小编为您整理的本次演讲的精华,共1400字,阅读时间大约是7分钟。如果您想进一步了解演讲内容或者观看演讲全文,请观看演讲完整视频或者下面的演讲原文。</font> 演讲者首先描述了数据库增长的情况。随着依赖数据库的应用和业务的成功,数据量和数据库访问量往往呈现快速增长的趋势。例如,一个迅速发展的电子商务网站可能会导致数据量和数据库访问量的大幅增加。同样,一个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](https://aws.amazon.com/cn/rds/aurora/?trk=cndc-detail) Limitless Database如何使分布式数据库的力量易于使用,就像单个数据库一样。它保留了Aurora的好处,同时允许客户实现极端扩展和大工作量。他邀请与会者参加预览,亲自体验这一新功能。客户可以在没有分片痛苦的情况下实现大规模扩展。 **下面是一些演讲现场的精彩瞬间:** 克里斯托弗·海姆,作为亚马逊Aurora的产品经理,向我们介绍了一项名为Limitless的新数据库扩展功能,该功能允许Aurora集群突破之前的限制进行扩展。 ![](https://d1trpeugzwbig5.cloudfront.net/DAT344-Achieving_scale_with_Amazon_Aurora_Limitless_Database/images/rebranded/DAT344-Achieving_scale_with_Amazon_Aurora_Limitless_Database_0.png) 尽管分片带来了规模的扩大,但同时也带来了跨数据库查询和实施事务的复杂性。 ![](https://d1trpeugzwbig5.cloudfront.net/DAT344-Achieving_scale_with_Amazon_Aurora_Limitless_Database/images/rebranded/DAT344-Achieving_scale_with_Amazon_Aurora_Limitless_Database_1.png) 为了解决这些问题,Limitless数据库在单个Aurora集群内提供了一致的事务一致性和可扩展性,即使面对每秒数百万交易的工作负载也能轻松应对。 ![](https://d1trpeugzwbig5.cloudfront.net/DAT344-Achieving_scale_with_Amazon_Aurora_Limitless_Database/images/rebranded/DAT344-Achieving_scale_with_Amazon_Aurora_Limitless_Database_2.png) 为了实现这一目标,路由器通过传递时间上下文来建立跨分片的一致快照。 ![](https://d1trpeugzwbig5.cloudfront.net/DAT344-Achieving_scale_with_Amazon_Aurora_Limitless_Database/images/rebranded/DAT344-Achieving_scale_with_Amazon_Aurora_Limitless_Database_3.png) 此外,领导者们强调了亚马逊云科技Aurora的广泛SQL兼容性以及对Postgres扩展的支持。 ![](https://d1trpeugzwbig5.cloudfront.net/DAT344-Achieving_scale_with_Amazon_Aurora_Limitless_Database/images/rebranded/DAT344-Achieving_scale_with_Amazon_Aurora_Limitless_Database_4.png) 值得注意的是,架构的基础是postgres外部表查询,但由于其局限性,团队在postgres引擎内部对性能、可扩展性和功能进行了增强。 ![](https://d1trpeugzwbig5.cloudfront.net/DAT344-Achieving_scale_with_Amazon_Aurora_Limitless_Database/images/rebranded/DAT344-Achieving_scale_with_Amazon_Aurora_Limitless_Database_5.png) ## 总结 在re:Invent上,亚马逊云科技进行了一次关于如何运用[Amazon Aurora](https://aws.amazon.com/cn/rds/aurora/?trk=cndc-detail) Limitless数据库突破单台机器限制进行关系型数据库扩展的演讲。演讲者首先阐述了分片作为一种扩大数据库写入吞吐量的常见方法,其原理是将数据分布到多个实例中。然而,分片同时也带来了查询、一致性和维护等方面的复杂性。为了解决这个问题,[Amazon Aurora](https://aws.amazon.com/cn/rds/aurora/?trk=cndc-detail) Limitless数据库旨在通过在托管服务中自动扩展,从而提供分片数据库的优点,同时保持单一数据库的简单性。该数据库提供了分布式架构和系统范围内的交易一致性,能够支持每秒数百万笔交易和PB级的数据量。 Limitless数据库采用了两类表:分布在不同实例上的分片表和每个实例上完全存在的引用表。这些表格可以并置,以便相关数据位于相同的分片中。语法利用了PostgreSQL的兼容性。在幕后,Limitless数据库使用了哈希范围分区、表切片和分片分割来实现水平扩展。此外,它还采用了基于时间的快照、提交和两阶段提交,以在具有可重复读取和读取已提交隔离性的分片之间提供ACID事务。 总之,Limitless数据库为关系型数据库带来了无缝的超规模简化,同时保持了PostgreSQL的兼容性和Aurora生态系统的集成。演讲者鼓励用户加入预览版,并在托管的数据库服务中体验极致的扩展。 ## 演讲原文 ## 想了解更多精彩完整内容吗?立即访问re:Invent 官网中文网站! [2023亚马逊云科技re:Invent全球大会 - 官方网站](https://webinar.amazoncloud.cn/reInvent2023/?s=8739&smid=19458 "2023亚马逊云科技re:Invent全球大会 - 官方网站") [点击此处](https://aws.amazon.com/cn/new/?trk=6dd7cc20-6afa-4abf-9359-2d6976ff9600&trk=cndc-detail "点击此处"),一键获取亚马逊云科技全球最新产品/服务资讯! [点击此处](https://www.amazonaws.cn/new/?trk=2ab098aa-0793-48b1-85e6-a9d261bd8cd4&trk=cndc-detail "点击此处"),一键获取亚马逊云科技中国区最新产品/服务资讯! ## 即刻注册亚马逊云科技账户,开启云端之旅! [【免费】亚马逊云科技“100 余种核心云服务产品免费试用”](https://aws.amazon.com/cn/campaigns/freecenter/?trk=f079813d-3a13-4a50-b67b-e31d930f36a4&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技“100 余种核心云服务产品免费试用“") [【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用”](https://www.amazonaws.cn/campaign/CloudService/?trk=2cdb6245-f491-42bc-b931-c1693fe92be1&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用“")
目录
亚马逊云科技解决方案 基于行业客户应用场景及技术领域的解决方案
联系亚马逊云科技专家
亚马逊云科技解决方案
基于行业客户应用场景及技术领域的解决方案
联系专家
0
目录
关闭