当前位置: 首页 > 知识库问答 >
问题:

Azure DocumentDb存储限制-它们到底是什么意思?

柳墨一
2023-03-14

Azure 文档数据库似乎有一些奇怪的存储限制:

--------------------------------------------------------------------
| Entity                           | Default quota (Standard Offer)|
-------------------------------------------------------------------|
| Document storage per collection  | 250 GB*                       |
-------------------------------------------------------------------|
| Throughput per collection,       | 250,000 RU/s*                 |
| measured in Request Units per    |                               |
| second per collection            |                               |
-------------------------------------------------------------------|
| Request document size            | 512 KB*                       |
-------------------------------------------------------------------|
| Response document size           | 1MB                           |
-------------------------------------------------------------------|

请求文档大小-这是否意味着在没有请求支持的情况下,发送到docentdb中存储的json有效负载的大小不能大于512KB?

此外,如果对更大的请求文档大小发出支持请求,则对此有何限制?我可以要求1MB吗?2兆字节?

响应文档大小-这是否意味着json响应的大小不能超过1MB?除了最简单的实体之外,这似乎对任何东西都没有用处。

共有1个答案

戚令秋
2023-03-14

更新:截至2016年12月,DocumentDB已将默认文档大小配额增加到2mb,页面大小配额增加到4mb

DocumentDB团队在此。看起来我们的“限制”页面上的措辞可以改进...同时,请允许我试着澄清:

文档大小配额(默认:每个文档2MB)

默认的文档大小配额是每个文档2MB。换句话说,你可以储存

我们正在积极进行一些长期改进,以广泛增加我们的默认配额。与此同时,您可以提交支持请求,以便立即在您的DocumentDB帐户上预览更高的文档大小配额。

还值得注意的是,大多数文档(一般来说)是

每页结果的响应大小配额(默认值:每页4MB)

要明确的是,DocumentDB允许任意大小的查询结果(例如1 KB、1 GB、1 TB等)。

对于大的查询结果——document db会对结果进行分页,每个页面都会被限制在响应大小配额内(默认情况下,每页4MB)。

为什么分页查询结果是一个非常酷的特性:

您是否曾经在另一个数据存储(而不是DocumentDB)中运行过查询,并且它似乎要花费很长时间...如果一个查询需要一个小时才能完成——你怎么知道它是需要几分钟还是几个小时还是有进展呢?

DocumentDB通过将查询结果拆分为一组可以迭代的页面来解决这个问题。结果根据许多标准进行分页:

  • 每页最大响应大小:4 mb
  • 每页最长时间限制:5 秒
  • 如果用尽了具有可观缓冲区的预置吞吐量(取决于预置的吞吐量)

这意味着您可以立即流式处理和利用查询结果,并控制恢复执行查询的速率。

以下片段说明了如何使用C#一次检索查询结果1页。NET SDK:

var query = client.CreateDocumentQuery<Family>(collectionUri, "SELECT * FROM Families", options).AsDocumentQuery();
while (query.HasMoreResults)
{
    foreach (Family family in await query.ExecuteNextAsync())
    {
        families.Add(family);
    }
}

以下代码段说明了如何以常规方式让客户端 SDK 循环访问分页结果并代表您具体化整个查询结果:

var families= client.CreateDocumentQuery<Family>(collectionUri, "SELECT * FROM Families", options).toList();
 类似资料:
  • 我想使用dir作为单元测试(创建大量文件)的基本dir。此属性指向当前工作目录(例如,由'cd'命令设置)是否正确?

  • 问题内容: 我有以下示例: 在这段代码中,我可以理解Enum创建了一个Enum类型的Sizes。 我的问题是:EnumSet类型的对象吗?到底是什么意思 我真的很想更好地理解它。 问题答案: 对于任何变量,可以在其声明中找到其类型: 是的,(应该命名,因为它是一个集合)是type 。它也应该被泛化,因此被声明为 它的意思是那是type 。一个是一个包含一个特定的枚举类型的枚举例如,在比其他更有效的

  • 问题内容: 这是代码: 但是当我将“ #round”更改为“ this”时。它不会工作。为什么?(实际上是可行的,但是当我将它们放入setInterval()时,它将无法工作) 更改为“ this”,将无法使用。 问题答案: 是对调用当前函数的成员的引用… 那么您可以将其包装在jquery函数中以选择它,就像选择其他选择器一样。 因此调用匿名函数,这样它就不会被可引用成员调用,因此它默认为该对象。

  • 问题内容: 最近,在一次采访中有人问我,哈希图中的存储桶到底是什么?是数组还是arraylist还是什么? 我很困惑。我知道哈希表由数组支持。那么我可以说存储桶是一个在开始存储哈希码时容量为16的数组,并且链表具有其起始指针吗? 我知道哈希图在内部是如何工作的,只是想知道就数据结构而言,存储桶到底是什么。 问题答案: 不,存储桶是您要引用的数组中的每个元素。在早期的Java版本中,每个存储桶都包含

  • 问题内容: 我想使用作为我的单元测试的基本目录(创建很多文件)。此属性指向当前工作目录是否正确(例如,由“ cd”命令设置)? 问题答案: 这java是运行JVM的目录。不必位于用户的主目录中。它可以在用户有权运行Java的任何地方。 因此,如果你cd进入,然后运行你的程序,将是。 另一个属性指向用户目录。如或或。

  • 问题内容: 我对Java非常陌生,只想确认是什么?它类似于Float还是Int?任何帮助,将不胜感激。我有时还会看到大写字母,有时看到的是小写字母。如果有人可以弄清楚这意味着什么,那就太好了! 问题答案: Double是包装器类, Double类将原始类型double的值包装在对象中。类型为Double的对象包含单个类型为double的字段。 此外,此类提供了几种将double转换为String和