【问题标题】:Error: upload data to Cosmosdb using pydocumendb错误:使用 pydocumentdb 将数据上传到 Cosmos Db
【发布时间】:2018-05-30 14:39:30
【问题描述】:

我正在使用 pydocumentdb 使用 Python 脚本将一些处理后的数据作为 Azure Cloud 上的文档上传到 CosmosDB。这些文件来自同一来源。提取适用于某些文件,但对于大于 1000 KB 的文件会出现下一个错误:

 pydocumentdb.errors.HTTPFailure: Status code: 413
 "code":"RequestEntityTooLarge","message":"Message: {\"Errors\":[\"Request 
 size is too large\"]

我正在使用 SQL API,这就是我在 Collection 中创建文档的方式:

client = document_client.DocumentClient(uri, {'masterKey': cosmos_key})
... I get the Db link and Collection link ...
Client.CreateDocument(collection_link, data)

我该如何解决这个错误?

【问题讨论】:

  • 如何定义“小文件”和“大文件”?您是说对于特定大小的文档,一切正常吗?请编辑您的问题以提供更多详细信息。
  • 嗨@DavidMakogon,感谢cmets,我已经用一些更准确的细节更改了帖子。大约 500 kb 的文件已正确上传,但其他大约 1000 kb 的文件给我一个“请求大小太大”的错误。
  • 嗨,问题是这个错误是否真的与 pydocumentdb 库有关,或者您只是达到了每个文档 2MB 的文档数据库大小限制?
  • 嗨@HaukeMallow,我是天蓝色平台的新手,所以我不知道所有细节。据我所知,我无法限制或扩大文档大小。问题是 pydocumentdb 或 CosmosDB 是否有预先配置的大小限制? (我认为答案是否定的,因为它应该适用于大于 1MB 的大小)。谢谢!
  • 嗨,Marc,Cosmos DB 的每个文档的固定大小限制为 2 MB (docs.microsoft.com/en-us/azure/cosmos-db/sql-api-resources)。我的猜测是你达到了这个限制。

标签: python python-2.7 azure azure-cosmosdb azure-cosmosdb-sqlapi


【解决方案1】:

根据我的经验,要在 Azure Cosmos DB 上存储一些大型数据或文件,最佳做法是将数据上传到 Azure Blob 存储或其他外部存储,并在 Azure 上的文档中创建包含其引用或关联元数据的附件Cosmos DB。

您可以参考Attachments的REST API来了解它并使用PyDocument API的方法实现您需要的功能包括CreateAttachment、ReplaceAttachment、QueryAttachments等等。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    • 2021-10-03
    • 2018-12-14
    • 2019-01-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多