Как архивировать старые данные CosmosDB в Azure Таблицу, используя Azure Фабрику данных, когда документы коллекции CosmosDB имеют разные свойства? - PullRequest
1 голос
/ 24 марта 2020

Я пытаюсь заархивировать старые данные из CosmosDB в Azure Таблицы, но я очень плохо знаком с Azure Фабрикой данных, и я не уверен, что будет хорошим подходом для этого. Сначала я подумал, что это можно сделать с помощью операции копирования, но поскольку свойства моих документов, хранящихся в источнике CosmosDB, различаются, возникают проблемы с отображением. Любая идея о том, что было бы хорошим подходом для решения этого процесса архивации?

По сути, я хочу сохранить данные, чтобы скопировать свойства документа root как они есть, и сохранить вложенный JSON как сериализованная строка.

Например, если бы я хотел заархивировать эти 2 документа:

[
  {
    "identifier": "1st Guid here",
    "Contact": {
      "Name":  "John Doe",
      "Age": 99
    }
  },
  { 
    "identifier": "2nd Guid here",
    "Distributor": {
       "Name": "Jane Doe",
       "Phone": {
         "Number": "12345",
         "IsVerified": true
       }
    }
  }
]

Я бы хотел, чтобы эти документы были сохранены в Azure Таблица, подобная этой:

identifier      | Contact                                   | Distributor 
"Ist Guid here" | "{ \"Name\": \"John Doe\", \"Age\": 99 }" | null
"2nd Guid here" |  null                                     | "{\"Name\":\"Jane Doe\",\"Phone\":{\"Number\":\"12345\",\"IsVerified\":true}}"

Возможно ли это с действием копирования?

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

1 Ответ

1 голос
/ 24 марта 2020

Пожалуйста, следуйте моей конфигурации в Mapping Tag.

enter image description here

Тестовый вывод с вашими образцами данных:

enter image description here

...