微软最近推出了Azure Cosmos DB for MongoDB的内账户集合复制功能的公共预览版,允许用户在同一个账户内复制集合,提供了更强大的数据管理和迁移能力。
Azure Cosmos DB是一个完全托管的NoSQL数据库,提供各种针对NoSQL工作负载的API,包括原生NoSQL和兼容API,如MongoDB和Apache Cassandra。此外,该服务还支持针对PostgreSQL的关系型工作负载。
去年,该公司首次推出了针对Azure Cosmos DB的Core(SQL)API和Cassandra API的内账户容器复制作业预览版,允许用户使用Azure CLI创建容器的离线副本。Azure Cosmos DB现在还为MongoDB提供了内账户集合复制功能,根据该公司的说法,这个功能“使用户能够在同一个Azure Cosmos DB账户中以离线方式复制集合”。
Cosmos DB中的账户包含所有的Azure Cosmos DB资源:数据库、容器和项。在创建账户时,用户可以选择MongoDB API。随后,他们可以添加一个数据库和集合(容器)。在账户内,用户可以创建多个集合。
使用MongoDB账户复制集合的功能可以帮助数据迁移,例如当数据发生改变时且现有分片键的查询效率不高时。用户可以选择新的分片键在一个新的集合上,并使用集合复制来迁移数据。另一个使用案例是通过定义新的唯一键索引策略来更新容器的唯一键索引,并使用集合复制将数据迁移到新的集合上。
用户可以注册预览版功能,并通过CLI安装Azure Cosmos DB预览扩展来迁移集合或数据库。接下来,选择他们想要复制数据的源集合和目标集合,并从Azure CLI启动集合复制操作。最后,用户可以监视复制进度。
用于复制Azure Cosmos DB API for MongoDB账户中容器的作业。
az cosmosdb dts copy `
--resource-group $resourceGroup `
--account-name $accountName `
--job-name $jobName `
--source-mongo database=$sourceDatabase collection=$sourceCollection `
--dest-mongo database=$destinationDatabase collection=$destinationCollection
其他云数据库服务也支持MongoDB,其中之一就是MongoDB Atlas,MongoDB自己的完全托管云数据库服务。该数据库服务也支持从一个数据库迁移到另一个数据库,与Azure Cosmos DB for MongoDB的最新功能Inter-Account Collection copy相似。使用MongoDB Atlas,用户可以通过现有MongoDB部署、JSON或CSV文件将数据带入Atlas部署,可以选择由Atlas协助的实时迁移,或者使用工具进行自主迁移从现有部署到Atlas。