Использование каналов изменений CosmosDB для обнаружения удалений в данных без временных меток

#azure #azure-cosmosdb #azure-cosmosdb-changefeed

#azure #azure-cosmosdb #azure-cosmosdb-changefeed

Вопрос:

У меня есть источник данных с примерно 30 000 записей. Когда я опрашиваю источник данных, я получаю все записи за один раз. Нет метки времени, указывающей, когда источник данных обновлялся в последний раз.

Я хотел бы использовать Azure для преобразования данных в серию инструкций по добавлению, обновлению и удалению, которые публикуются на служебной шине.

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

В этом сценарии есть ли способ использовать канал изменений CosmosDB для создания удалений? Если нет, есть ли другой «Azurey» способ генерировать инструкции по добавлению, обновлению и удалению из опроса источника данных без временных меток? Любая помощь приветствуется! Спасибо

Ответ №1:

Один из способов сделать это сегодня — вставить флаг надгробия "delete": true в вашу запись.

Затем, когда этот элемент появляется в ленте изменений, вы можете проверить наличие этого свойства и, если оно существует, запустить его в ServiceBus, а затем вызвать DeleteItemAsync() из вашего процесса, в котором размещен канал изменений, будь то виртуальная машина, функция Azure и т. Д.