本文将介绍您在考虑使用阿里云 ApsaraDB 进行 POLARDB 开发时应该了解的特性和实用功能。

我是寺冈,一名基础设施工程师。
今天我将为大家介绍阿里云上的一项特定服务。

阿里云在日本推出新服务,包括云数据库“ApsaraDB for PolarDB”。

20日,阿里云宣布将在日本的公共云平台“阿里云”上推出关系型数据库“ApsaraDB for PolarDB”。

它终于来了……

所以,这次我们将重点介绍如何在日本地区充分利用 PolarDB,
我还会介绍一些将其用作服务数据库的实用功能!

ApsaraDB 是 PolarDB 的什么功能?

首先,我想简要介绍一下 PolarDB。PolarDB
是一款托管关系型数据库服务,兼容 MySQL、PostgreSQL 和 Oracle。它
被誉为阿里巴巴自主研发的下一代托管分布式关系型数据库服务 (RDS),
具有高性能和高性价比的特点。

从实际使用中可以看出,它
显然是以AWS Aurora为目标进行设计的,旨在与其他云服务竞争。
英特尔的测试表明,与Amazon Aurora相比,其QPS提升了约1.3倍,
第95百分位延迟(延迟时间)降低了约1.8倍。*1

如果它显然是为 Aurora 设计的,那么关键就在于它的功能特性以及它的独特之处。
我想以对比的形式总结一下这些特性。

PolarDB 的特点及其与 Aurora 的区别

建筑学

PolarDB 和 Aurora 都被称为分布式关系数据库服务。
下图是 PolarDB 的架构图,大致可以分为四个概念。*2

就像一个逻辑组,由一个主节点和 N 个只读节点组成。
创建集群时,系统会自动为其分配一个名为集群端点的 DNS 记录。
通过访问此端点,您可以向数据库发出 SQL 查询。

此外,PolarDB 端点支持读/写隔离。※3

  • 写入请求:已发送至主节点
  • 读取请求:根据各节点的负载情况,发送到主节点或只读节点。

如您所见,它会自动在内部确定目标节点。Aurora
为写入和读取分别设置了不同的端点,而
PolarDB 只有一个端点,并且会在内部合理分配流量,这非常方便。

主节点

这是集群中可以执行读写操作的单个节点。
对数据库的写入请求主要针对此节点执行。
虽然 Aurora 具有多主功能,允许使用多个主节点,但
PolarDB 不具备此功能,因此目前写入请求无法分布到多个节点上。

只读节点

这些是只读节点,集群内最多可以启动 15 个。
虽然可以手动增加或减少节点数量,但使用 DAS(数据库自治服务)
可以根据负载进行横向扩展/缩减。*4
自动调用功能和最多启动 15 个节点的能力与 Aurora 相同,
表明其非常注重功能性。

块服务器

PolarDB 和 Aurora 都将计算和存储处理完全分离在每个节点上。
在 PolarDB 中,存储处理由称为“块服务器”(Chunk Server)的组件负责。
数据库数据存储在该块服务器上,
存储容量可以根据数据量自动扩展或缩减。Aurora
也支持自动存储扩展,但最大扩展容量有所不同:
Aurora 最大可扩展至 64TB,而 PolarDB 最大可扩展至 100TB。

PolarDB 的实用功能

以下是我在实际使用中发现的一些实用功能。

DTS提供数据迁移支持

如果您是第一次使用 PolarDB,则无需考虑这些要点;但
如果您想要从现有服务的数据库迁移,则需要考虑以下事项:

  • 如何从现有数据库迁移数据
  • 如何减少切换到 PolarDB 时的停机时间

在这种情况下,PolarDB 允许使用 DTS(数据传输服务),因此
拥有现成的数据迁移流程非常有用。*5

在线规模扩大/缩小

PolarDB 可以在在线状态下进行横向扩展和缩减。
相比之下,Aurora 需要暂时停止节点运行,这或许是它最大的区别所在。

我担心更改规格时会造成停机时间,所以我创建了一个如下所示的测试数据库。

创建数据库 TEST; 创建表 test ( 列 int(10) DEFAULT NULL ) ENGINE=InnoDB;

更改规格时,我每秒发布一次更新进行检查。

更新测试集列=unix_timestamp();

控制台显示一条消息,表明连接将丢失最多 30 秒,但
完成更改的总时间实际上为 10 分钟,而连接错误只持续了大约 10 秒。

另一方面,Aurora 在更改节点配置时需要停止节点运行,
这会导致大约 5 到 10 分钟的停机时间。
为了避免这种情况,Aurora 中常见的做法
选择所需的配置,添加一个新的只读节点,然后
手动将该节点故障转移到写入节点,从而
最大限度地减少停机时间。

即使启用故障转移,根据我的经验,也需要 10 秒以上,所以
PolarDB 的速度肯定更快。

看起来你可以容忍大约 10 秒的停机时间!

加强监测项目

PolarDB*6提供了一套全面的
它非常出色,因为它不仅可以检查 CPU 使用率等资源指标,还可以检查与 InnoDB 相关的性能指标。

对于 Aurora,您可以在 Performance Insights 中查看类似的指标,但这需要额外付费。PolarDB
上没有任何相关信息*7,因此它似乎是免费的。

您还可以使用 CloudMonitor 设置警报。
而且您猜怎么着?CloudMonitor 也是免费的!太棒了!

概括

这次,我从操作的角度介绍了 PolarDB 的特性和实用功能。
本文不包含实际的安装步骤,但
了解其特性和功能对于在新项目中使用 PolarDB 或从其他关系型数据库迁移至关重要,因此
我希望本文能对正在考虑使用 PolarDB 的用户有所帮助。
我也会持续关注 PolarDB 的未来更新。

来源

*1 https://www.intel.com/content/www/us/en/products/docs/storage/alibaba-cloud-polardb-solution-brief.html
*2 https://www.sbcloud.co.jp/entry/sol/polardb/
*3 https://www.alibabacloud.com/help/ja/doc-detail/68510.htm
*4 https://www.alibabacloud.com/help/doc-detail/169686.htm
*5 https://jp.alibabacloud.com/product/data-transmission-service
*6 https://www.alibabacloud.com/help/ja/doc-detail/68555.htm
*7 https://www.alibabacloud.com/help/ja/doc-detail/68498.htm

如果您觉得这篇文章对您有帮助,请点个“赞”!
1
加载中...
1票,平均分:1.00/11
1,695
X Facebook Hatena书签 口袋

这篇文章的作者

关于作者

寺冈由纪

我于 2016 年加入 Beyond,目前
担任基础设施工程师和 MSP(托管服务提供商)已有六年。我负责处理突发事件的故障排除,
并使用 AWS 等公有云设计和构建基础设施。最近,我一直在
Docker 和 Kubernetes 等容器基础设施。此外,
使用 HashiCorp 的 Terraform 和 Packer 等工具来构建和自动化
我还担任技术推广者的角色,在外部学习小组和研讨会上进行演讲。

・GitHub
https://github.com/nezumisannn

• 演讲邀约
:https://github.com/nezumisannn/my-profile

• 演示材料(SpeakerDeck)
https://speakerdeck.com/nezumisannn

・认证:
AWS认证解决方案架构师 - 助理级、
Google Cloud专业云架构师