Неустранимая ошибка при переносе эмулятора Cosmos DB (API MongoDB) в Azure

У меня много проблем с переносом локальной базы данных Cosmos DB, размещенной в эмуляторе Cosmos DB, в онлайн-экземпляр Cosmos DB в Azure. Я использовал инструмент миграции данных Microsoft для загрузки текущей базы данных, преобразованной в файлы JSON, в учетную запись хранения и с помощью службы миграции данных для извлечения данных из учетной записи хранения в базу данных Cosmos DB в соответствии с указанными шагами здесь.

В начале миграции я получаю следующую фатальную ошибку:

Невозможно десериализовать "BsonDocument" из BsonType "Array"

Я не знаю, что делать дальше. Кто-нибудь имеет опыт таких преобразований и знает, как избавиться от этой ошибки?


person Maarten B    schedule 06.12.2019    source источник


Ответы (1)


Когда другие столкнутся с этой же проблемой в будущем: я применил следующее, чтобы заставить эту работу:

  • Загрузите Mongodump. Загрузите полный сервер MongoDB здесь
  • Дамп эмулируемой базы данных Cosmos DB с помощью mongodump
  • Скопируйте полученные файлы .bson и метаданных в учетную запись хранения Azure (хранилище BLOB-объектов).
  • Получите URL-адрес SAS для этой учетной записи с помощью обозревателя хранилищ Azure.
  • Создайте новую службу миграции базы данных Azure (MongoDB => Cosmos DB (MongoDB API))
  • Установите хранилище Azure в качестве источника и введите URL-адрес SAS.
  • Установите базу данных Cosmos DB в качестве целевой

Используя mongodump, данные генерируются в файловую структуру, понятную Cosmos DB.

person Maarten B    schedule 09.12.2019