在Cosmos DB中,是否有可以发送到存储过程的最大文档大小?

时间:2018-05-07 13:53:36

标签: azure azure-cosmosdb

我的请求数量太大'宇宙中的错误。 我最终将以下文档(每行应创建一个文档)发送到我的批量导入存储过程: Document File Sizes Calculated 2 Ways

这些都不超过2 MB,除非我误解2MB不到150万。

尺寸计算:

    var json = JsonConvert.SerializeObject(series);
    var sizeMethod1 = json.Length * sizeof(Char);
    var sizeMethod2 = System.Text.UTF8Encoding.Unicode.GetBytes(json).Length;
    log.Info($"Document Size Method 1: {sizeMethod1} and Size Method 2: {sizeMethod2}");

在抛出错误时调试存储过程非常具有挑战性。

2 个答案:

答案 0 :(得分:1)

  

在抛出存储过程时调试存储过程非常具有挑战性   错误。

您可以使用console.log ()来计算存储过程中文档的大小,如下所示。然后使用getScriptLog从存储过程console.log()语句中获取输出。

请注意,打印console.log需要EnableScriptLogging = true

var response = await client.ExecuteStoredProcedureAsync(
    document.SelfLink,
    new RequestOptions { EnableScriptLogging = true } );
Console.WriteLine(response.ScriptLog);

您可以参考此official doc

  

我的请求数量太大'宇宙中的错误。

请求大小太大意味着您向sproc发送了太多输入。脚本的最大输入大小目前为2MB。您可以减少输入文档以适应该限制,并按照官方doc上的批量插入示例进行操作。

希望它对你有所帮助。

答案 1 :(得分:0)

根据 docs

  

请求中的文档大小超出了允许的文档大小   对于请求。允许的最大文档大小为2 MB。

某处超过2MB尝试减少文档数量并确保输入适合该文档。

此外,如果您需要更多尺寸,可以发布 here