使用 DMT 工具将 Cosmos Db sql api 从一个容器迁移到另一个容器

Migrating Cosmos Db sql api from one container to another using DMT tool

我正在尝试将我的文档从我的数据库的一个容器复制到同一个数据库中的另一个容器。我关注了这篇文档 https://docs.microsoft.com/en-us/azure/cosmos-db/cosmosdb-migrationchoices

并尝试使用 DMT 工具。验证我的源和目标连接字符串并单击“导入”后,出现错误

Errors":["The collection cannot be accessed with this SDK version as it was created with newer SDK version."]}".

我只是从 UI 创建了目标集合。我尝试了两种方法(插入分区键并保持空白)。我做错了什么?

What wrong am I doing?

你没有做错任何事。只是此工具使用的 Cosmos DB SDK 非常旧 (Microsoft.Azure.DocumentDB version 2.4.1),它针对的是旧版本的 Cosmos DB REST API。由于您使用较新版本的 Cosmos DB REST 创建了容器 API,您收到此错误。

如果您的容器非常基础(从某种意义上说,它没有使用自动缩放等任何特殊功能),您可以从数据迁移工具 UI 本身创建容器.这样你就不会 运行 陷入兼容性问题。

解决了问题。这是由于启用了我的源数据库中的此设置:

My partition key is larger than 100 bytes.

这次我创建了一个 POC 源数据库,没有启用此设置,它可以通过 DMT 工具工作。

您应该使用更新版本的工具。

我 运行 遇到了这个问题,并从这里的 GitHub 仓库下载了 1.8.3 版:

https://github.com/Azure/azure-documentdb-datamigrationtool/releases/tag/1.8.3

有了这个版本,问题就解决了。