Обновите существующие документы в Cosmos db с помощью фабрики данных Azure - PullRequest
0 голосов
/ 22 октября 2019

Я создал фабрику данных для обновления моей существующей базы данных Cosmos, используя данные, хранящиеся в Blob, как CSV-файл. CSV-файл содержит два поля столбца «X» и «Y» и их значения. Я хочу вставить новый ключ в мою существующую базу данных Cosmos Db как Y, критерием фильтра является столбец X, который является уникальным

. Я уже создал конвейер и поместил документы в cosmosdb. Но в текущем конвейере старые данные удаляются, и вставляется только столбец Y.

Данные в текущем документе в космосе db

  {
    "_id" : ObjectId("5dad5adbfa882146ea8e7a0e"),
    "x" : "UUID",
   "old_key" : true
  }

Данные в CSV-файле

   x,new_key
   UUID, "new_value"

Ожидаемый вывод

   {
     "_id" : ObjectId("5dad5adbfa882146ea8e7a0e"),
      "x" : "UUID",
     "old_key" : true,
    "new_key":"new_value"

    }

Мой вывод, который я попробовал (старые ключи удалены)

   {
     "_id" : ObjectId("5dad5adbfa882146ea8e7a0e"),
     "x" : "UUID"
     "new_key":"new_value"

   }

1 Ответ

0 голосов
/ 22 октября 2019

Вы хотите реализовать инкрементное обновление или частичное обновление для базы данных космоса.

{
    "_id" : ObjectId("5dad5adbfa882146ea8e7a0e"),
    "x" : "UUID",
   "old_key" : true
}

изменить на:

{
     "_id" : ObjectId("5dad5adbfa882146ea8e7a0e"),
      "x" : "UUID",
     "old_key" : true,
    "new_key":"new_value"
}

Как я знаю, частичное обновление не поддерживается в базе данных космосапока что. Пожалуйста, посмотрите этот голос пользователя и это заявление о функции (я знаю, что недостаток этой функции длится уже так долго ....). Итак, вы должны содержать все свойства в ваших новых документах, кроме "_id".

Я сделал простой тест:

1. Загрузите CSV-файл в космос db:

_id,x,A
5daeb1eda34d640184a71d47,123,ValueA

2. загрузить новый csv-файл в базу данных космоса:

_id,x,B
5daeb1eda34d640184a71d47,123,ValueBBB

3.печатать два вывода:

enter image description here

...