Azure Документ CosmosDB - массовое удаление - PullRequest
0 голосов
/ 05 февраля 2020

Недавно я попросил удалить несколько миллионов записей из общей суммы 14 ТБ данных Cosmos Db.

Когда я посмотрел в целое число rnet, я нашел хранимый про c для выполнения массовое удаление, и это работает на основе ключа раздела.

Мой сценарий состоит в том, что у нас есть 4 атрибута в каждом документе. 1. id 2. номер [ключ раздела] 3. начальная дата 4. конечная дата

Требуется удалить документы на основе начальной даты.

Удалить * из c, где c. startdate> = '' и c .startdate <= '' </p>

Приведенный выше запрос проходит через весь раздел и удаляет записи.

Я также проверил, выполнив запрос в Databricks для взять все записи CosmosDB во временном Dataframe и добавить атрибут TTL, а затем снова перенести в Cosmos DB.

Есть ли лучший способ добиться того же?

1 Ответ

0 голосов
/ 05 февраля 2020

Вообще говоря, массовое удаление имеет методы, перечисленные в этой статье .

enter image description here

Поскольку ваши данные очень большие, может навалом Удалить. js больше не подходит. В конце концов, SP имеет ограничение по времени выполнения. В дополнение к решению, описанному в вашем вопросе, я также предлагаю вам использовать код SDK для инкапсуляции метода самостоятельно:

Установите maxItemCount = 100 и EnableCrossPartitionQuery = true в вашем запросе запроса. Между тем, вы можете получить continuation token, что для данных следующей страницы. Обработайте данные в пакете, и, возможно, вы сможете получить фрагмент кода из . net bulk Удалить библиотеку (GeneratePartitionKeyDocumentIdTuplesToBulkDelete и BulkDeleteAsyn)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...