你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
停用 S1、S2 和 S3 性能级别
适用对象: NoSQL MongoDB Cassandra Gremlin 表
重要
本文所述的 S1、S2 和 S3 性能级别即将停用,在新的 Azure Cosmos DB 帐户中将不再提供。
本文概述 S1、S2 和 S3 性能级别,并介绍如何将使用这些性能级别的集合迁移到单分区集合。 阅读本文后,可以回答以下问题:
- 为何要停用 S1、S2 和 S3 性能级别?
- 单区集合和分区集合与 S1、S2、S3 性能级别有哪些区别?
- 我需要做些什么才能确保不间断地访问我的数据?
- 迁移后,集合会发生怎样的变化?
- 迁移到单分区集合后,帐单会发生怎样的变化?
- 如果需要 20 GB 以上的存储空间,应该怎么做?
- 在计划的迁移期限之前,是否可以在 S1、S2 和 S3 性能级别之间切换?
- 如何自行从 S1、S2、S3 性能级别迁移到单区集合?
- EA 客户会受到怎样的影响?
为何要停用 S1、S2 和 S3 性能级别?
S1、S2 和 S3 性能级别无法提供标准 Azure Cosmos DB 产品提供的灵活性。 使用 S1、S2、S3 性能级别时,吞吐量和存储容量都是预设的,没有任何弹性。 现在,Azure Cosmos DB 允许用户自定义吞吐量和存储,大幅提高随需求变化而缩放的灵活性。
单区集合和分区集合与 S1、S2、S3 性能级别有哪些区别?
下表比较了单区集合、分区集合以及 S1、S2、S3 性能级别提供的吞吐量和存储选项。 下面是美国东部 2 区域的一个示例:
配额名称 | 分区集合 | 单区集合 | S1 | S2 | S3 |
---|---|---|---|---|---|
最大吞吐量 | 无限制 | 10K RU/s | 250 RU/s | 1 K RU/s | 2.5 K RU/秒 |
最小吞吐量 | 2.5 K RU/秒 | 400 RU/s | 250 RU/s | 1 K RU/s | 2.5 K RU/秒 |
最大存储 | 无限制 | 20 GB | 20 GB | 20 GB | 20 GB |
价格(每月) | 吞吐量:6 美元/100 RU/秒 存储:0.25 美元/GB |
吞吐量:6 美元/100 RU/秒 存储:0.25 美元/GB |
25 美元 | 50 美元 | 100 美元 |
是 EA 客户吗? 如果是,请参阅 如果我是 EA 客户,我会受到怎样的影响?
我需要做些什么才能确保不间断地访问我的数据?
如果有 S1、S2 或 S3 集合,则应使用 .NET SDK 以编程方式将该集合迁移到单分区集合。
迁移后,集合会发生怎样的变化?
如果有 S1 集合,可以将该集合迁移到吞吐量为 400 RU/秒的单分区集合。 400 RU/s 是单区集合提供的最低吞吐量。 但是,单分区集合中 400 RU/秒吞吐量的费用大致与 S1 集合中 250 RU/秒吞吐量的费用相同 - 因此,不需要为额外的 150 RU/秒付费。
如果有 S2 集合,可以将该集合迁移到吞吐量为 1000 RU/秒的单分区集合。 吞吐量级别没有可见变化。
如果有 S3 集合,可以将该集合迁移到吞吐量为 2500 RU/秒的单分区集合。 吞吐量级别没有可见变化。
对于上面的每种情况,在迁移集合后,便可以根据需要自定义吞吐量级别,或者将它调高和调低,以便向用户提供低延迟的访问。
迁移到单分区集合后,帐单会发生怎样的变化?
假设你在美国东部区域使用 10 个 S1 集合,其中每个集合的存储为 1 GB,现在要将这 10 个 S1 集合迁移到吞吐量为 400 RU/秒(最低级别)的 10 个单分区集合。 如果将 10 个单分区集合保留一整月,帐单将如下所示:
在计划的迁移期限之前,是否可以在 S1、S2 和 S3 性能级别之间切换?
只有使用 S1、S2 和 S3 性能的现有帐户才能使用 .NET SDK 以编程方式切换和更改性能级别层。 如果从 S1、S3 或 S3 切换到了单区集合,则无法恢复到 S1、S2 或 S3 性能级别。
如何自行从 S1、S2、S3 性能级别迁移到单区集合?
可以使用 .NET SDK 以编程方式从 S1、S2 和 S3 性能级别迁移到单分区集合。 可以在计划的迁移期限之前自行执行此操作,即可享用单分区集合提供的灵活吞吐量选项。
使用 .NET SDK 迁移到单分区集合
本部分只介绍了使用 SQL .NET API 更改集合的性能级别,但对于我们的其他 SDK,过程也是相似的。
以下代码片段可将集合吞吐量更改为每秒 5,000 个请求单位:
//Fetch the resource to be updated
Offer offer = client.CreateOfferQuery()
.Where(r => r.ResourceLink == collection.SelfLink)
.AsEnumerable()
.SingleOrDefault();
// Set the throughput to 5000 request units per second
offer = new OfferV2(offer, 5000);
//Now persist these changes to the database by replacing the original resource
await client.ReplaceOfferAsync(offer);
请访问 MSDN 以查看其他示例并了解更多有关服务方法的信息:
EA 客户会受到怎样的影响?
EA 客户在当前合同到期之前,价格将受到保护。
后续步骤
若要了解更多有关 Azure Cosmos DB 的定价和管理数据的信息,请浏览以下资源:
- Azure Cosmos DB 中的分区数据。 了解单区容器与分区容器的差异,以及有关实施分区策略以进行无缝缩放的提示。
- Azure Cosmos DB 定价。 了解预配吞吐量和使用存储的费用。
- 请求单位。 了解不同操作类型(例如读取、写入和查询)的吞吐量消耗。