Каков предел размера одного документа, хранящегося в Azure Cosmos DB - PullRequest
0 голосов
/ 01 ноября 2019

У меня есть база данных MongoDB в Azure (зарегистрированная под учетной записью Cosmos DB), и я прочитал в ms docs , что ограничение размера на сохраняемый документ составляет 2 МБ. Однако, когда я пытаюсь сохранить буфер изображения размером около 1,7 МБ, я получаю следующую ошибку:

2019-11-01T00:43:14.057681416Z { MongoError: Message: {"Errors":["Request size is too large"]}
2019-11-01T00:43:14.057757320Z RequestStartTime: 2019-11-01T00:43:13.9695930Z, RequestEndTime: 2019-11-01T00:43:13.9995776Z,  Number of regions attempted:1
2019-11-01T00:43:14.057768921Z ResponseTime: 2019-11-01T00:43:13.9995776Z, StoreResult: StorePhysicalAddress: rntbd://cdb-ms-prod-centralus1-fd19.documents.azure.com:14112/apps/0806fa15-6a2d-4127-a73b-b1626ddd8af1/services/5618d8a3-dc06-4e8a-ba18-39d3b0c58add/partitions/d61f7139-78bf-423b-a4d7-747179270393/replicas/132167814077711166p/, LSN: -1, GlobalCommittedLsn: -1, PartitionKeyRangeId: , IsValid: True, StatusCode: 410, SubStatusCode: 0, RequestCharge: 0, ItemLSN: -1, SessionToken: , UsingLocalLSN: False, TransportException: null, ResourceType: Document, OperationType: Create
2019-11-01T00:43:14.057779921Z SDK: Microsoft.Azure.Documents.Common/2.7.0
2019-11-01T00:43:14.057788121Z     at Function.create (/home/site/wwwroot/node_modules/mongodb/lib/core/error.js:44:12)
2019-11-01T00:43:14.057796322Z     at toError (/home/site/wwwroot/node_modules/mongodb/lib/utils.js:150:22)
2019-11-01T00:43:14.057804822Z     at coll.s.topology.insert (/home/site/wwwroot/node_modules/mongodb/lib/operations/common_functions.js:266:39)
2019-11-01T00:43:14.057813223Z     at handler (/home/site/wwwroot/node_modules/mongodb/lib/core/sdam/topology.js:1000:24)
2019-11-01T00:43:14.057821223Z     at wireProtocol.(anonymous function) (/home/site/wwwroot/node_modules/mongodb/lib/core/sdam/server.js:457:5)
2019-11-01T00:43:14.057829423Z     at /home/site/wwwroot/node_modules/mongodb/lib/core/connection/pool.js:408:18
2019-11-01T00:43:14.057837624Z     at process._tickCallback (internal/process/next_tick.js:61:11)
2019-11-01T00:43:14.057845624Z   driver: true,
2019-11-01T00:43:14.057853424Z   name: 'MongoError',
2019-11-01T00:43:14.057861125Z   index: 0,
2019-11-01T00:43:14.057868725Z   code: 16,
2019-11-01T00:43:14.057876326Z   errmsg:
2019-11-01T00:43:14.057886326Z    'Message: {"Errors":["Request size is too large"]}\r\n, RequestStats: \r\nRequestStartTime: 2019-11-01T00:43:13.9695930Z, RequestEndTime: 2019-11-01T00:43:13.9995776Z,  Number of regions attempted:1\r\nResponseTime: 2019-11-01T00:43:13.9995776Z, LSN: -1, GlobalCommittedLsn: -1, PartitionKeyRangeId: , IsValid: True, StatusCode: 410, SubStatusCode: 0, RequestCharge: 0, ItemLSN: -1, SessionToken: , UsingLocalLSN: False, TransportException: null, ResourceType: Document, OperationType: Create\r\n, SDK: Microsoft.Azure.Documents.Common/2.7.0',
2019-11-01T00:43:14.057902127Z   [Symbol(mongoErrorContextSymbol)]: {} }

В настоящее время я подписан на Azure for Students и использую бесплатный уровеньдля всех моих ресурсов. Я также прочитал в эту документацию о хранилище и пропускной способности, но я не уверен, что мне нужно изменить, чтобы все заработало.

Может кто-нибудь посоветовать?

Ответы [ 3 ]

2 голосов
/ 01 ноября 2019

Максимальный размер документа составляет 2 МБ и не может быть увеличен. В вашем случае вы можете сохранить изображение в хранилище BLOB-объектов и прикрепить URL-адрес в качестве свойства к сохраняемому документу, что сэкономит несколько байтов.

1 голос
/ 01 ноября 2019

Существует кодировка, которая имеет место при хранении документа в БД Cosmos. Я подозреваю, что ваши двоичные данные, когда они закодированы (расширяют их хранимый размер), станут проблемой, которая приведет к тому, что размер вашего документа превысит ожидаемый (и превысит ограничение в 2 МБ).

Как упоминалось @sajeetharan, тамальтернативные способы хранения ваших двоичных данных (например, большого двоичного объекта, содержащего только ссылочный URI в документе Cosmos DB), которые помогут уменьшить размер большого двоичного объекта.

Тип подписки, к которой вы имеете отношение, не имеет никакого отношенияПредельные размеры документов в Cosmos DB.

0 голосов
/ 01 ноября 2019

На основании этой ссылки , максимальный размер запроса составляет 2 МБ.

enter image description here

Общий запрос содержит размер файла и общие запросы . Вы можете захватить запрос и проверить его размер с помощью Fiddler Tool .

...