使用分区集合扩展 DocumentDB

Posted

技术标签:

【中文标题】使用分区集合扩展 DocumentDB【英文标题】:DocumentDB Scaling with Partitioned Collections 【发布时间】:2017-02-27 19:59:33 【问题描述】:

我正在从管理每个租户的多个单实例 10gb 分区迁移到使用分区键 (tenantId) 的更具可扩展性的解决方案。以前我按集合分区,但我对通过迁移到分区集合节省的成本感兴趣,因为我的大多数租户不需要超过 1-5gb 的存储空间。我将我的初始集合设置为具有最低 RU 设置(用于测试和节省成本)的 10gb 实例,如下所示:

现在当需要扩展时,我返回门户,单击扩展,但我没有看到将我的 10gb 分区增加到更大容量的方法:

定价层已锁定,我无法将我的集合大小增加到 10GB 以上。

几个问题:

1.是我提出支持请求的唯一方法吗? 如果您滚动信息图标,门户会指出这一点,但它模糊地引用了正在开发的更好的扩展方式?但是,我正在寻找一些明确的信息,因为在生产场景中提出支持请求是站不住脚的,因为我可能需要即时增加(和减少)容量!

2。是否有(或将有)一种自动扩展分区的方法?例如,我可以让我最初的 10gb 以 10gb 的增量自动扩展到 50gb - 但提醒我让它超过 50gb?

3.是否有(或将有)通过 C# SDK 以编程方式扩展分区的方法?

4.扩展的增量单位是什么?我假设它是以 10gb 为增量,但我找不到任何明确的文档。

5.我是否应该假设我的 PartitonKey 仍然受到 10gb 存储限制的限制?如果是这样:是否有即将到来的(或现有的)场景允许 PartitionKey 超出这个 10gb 边界?我不得不再次在这里做出假设,因为文档是零星的而且非常模糊!

【问题讨论】:

如果您需要对 DocumentDb 集合进行自动缩放,请查看 CloudMonix @cloudmonix.com - 无法通过 Azure 自动缩放 Document DBs 【参考方案1】:

从DocumentDB Pricing 中,我们可以知道每个集合按小时计费,基于存储的数据量(以 GB 为单位)和预留的吞吐量(以 100 RUs/秒为单位)。正如你所说,目前它只能让我们在 Azure 门户上的 Scale Blade 下adjust throughput level。

此外,根据您的描述,如果您要将其扩展到更高的吞吐量(>10,000 RU/s)或更大的数据存储(>10GB),我们可以发现您创建的单分区集合具有最低的吞吐量容量),您可以使用 DocumentDB 数据迁移工具将数据从单分区集合迁移到分区集合。 This article 展示了如何从单分区集合迁移到分区集合,请参考。

【讨论】:

根据您所说的,我可以开始使用分区集合的唯一方法(不必担心以后进行迁移)是从 250GB 计划开始?这对我来说似乎有点傻。特别是因为如果我将其设置为最低的 RU 级别,成本是 6 倍。这也是我要支付的大量未使用的存储空间! 这是否也意味着如果我选择一个 250GB 计划然后超出它,我将不得不发送请求以增加这个数量(比如说 500GB),然后必须将 250GB 的数据迁移到新的 500GB 计划?

以上是关于使用分区集合扩展 DocumentDB的主要内容,如果未能解决你的问题,请参考以下文章

硬盘分区

mysql水平分表和分区有啥区别

java怎样将集合中的数值数据分区间统计个数:例如(0-1000)有几个人数据,1000-2000有几个数据

VMware安装Linux,系统分区。

磁盘管理

Linux分区基础