Изменить данные Захват в БД Космос - PullRequest
1 голос
/ 19 января 2020

Я хочу записать измененные данные в Cosmos DB (JSON документ), используя задание по расписанию с помощью функции azure или другим способом, не влияя на онлайн-производительность БД, поскольку веб-приложение / мобильное приложение считывают и записывают данные в БД Космос с помощью вызова API. Я хочу получить данные для автономного ETL и для аналитических целей, так как oracle предоставляет файлы журнала повторов в автономном режиме.

1 Ответ

2 голосов
/ 19 января 2020

Есть два варианта сделать это с помощью Change Feed, в зависимости от того, нужно ли это запускать как пакетное задание или можно передавать в потоковом режиме.

Если это не нужно для пакетной обработки, вы можете использовать встроенный -in Azure Триггеры функций. Это самый простой подход, но вы можете начать только с начала или с момента запуска функции Azure. Можете начать здесь, https://docs.microsoft.com/en-us/azure/cosmos-db/change-feed-functions

Если вам действительно нужно быть партией, вам нужно использовать библиотеку Change Feed Processor и настроить время запуска на go до последнего datetime партия была запущена. Начните здесь, https://docs.microsoft.com/en-us/azure/cosmos-db/how-to-configure-change-feed-start-time. Пример кода здесь, https://github.com/Azure/azure-cosmos-dotnet-v3/blob/master/Microsoft.Azure.Cosmos.Samples/Usage/ChangeFeed/Program.cs

Некоторые предостережения, чтобы понять об Изменении в Космосе. Во-первых, это не настоящий op-log. Он будет отображать только самую последнюю версию (обновление) элемента в коллекции и не отображает удаления, вам нужно будет создать свойство isDeleted и установить значение true для «мягкого удаления». Во-вторых, Change Feed не говорит вам, что изменилось, только что что-то изменилось. В-третьих, Change Feed потребляет небольшое количество RU / s для коллекции, которую он отслеживает, и снова, когда вы запускаете чтение для извлечения данных. Но это мало по сравнению с RU / s для записи. Вы захотите контролировать потребление RU, чтобы обеспечить достаточный запас.

...