我有许多具有手动RU配置的现有集合,我想将它们迁移到Autopilot管理,以便更好地自动处理不同级别的需求。
这些集合包含许多GB的历史时间序列数据,在客户无法获得新数据或历史数据的情况下,我不能有任何停机。我还必须确保在迁移过程中不会丢失数据
每天一次,新的一天的数据被批量上传到cosmosdb集合中,集合可以随时被前面的面向客户的服务查询。
对于迁移,我考虑了以下几点: 1.创建新的autopilot集合2.修改服务以查询新旧集合并对两者中存在的任何数据进行重复数据删除3.将数据上载重定向到新集合4.使用ADF (Azure数据工厂)将旧集合的内容复制到新的Autopilot集合5.更新服务以仅查询新集合6.删除旧集合。
这是最好的迁移策略,还是有其他方法可以提供更好的客户体验,或者工作量更少?
发布于 2020-01-11 04:15:05
在预览中,您需要手动将数据迁移到AutoPilot容器。一旦我们正式上市,我们计划允许客户无缝地将容器从常规吞吐量迁移到AutoPilot吞吐量。
对于您描述的场景,当我需要进行几乎为零的停机迁移时,我发现使用ChangeFeed更容易。创建一个新的Azure配置容器,然后使用Cosmos DB绑定创建一个AutoPilot函数,从源容器读取并写入新的AutoPilot容器,以允许数据保持同步。
重写您的消费应用程序以使用新的容器和批量加载脚本来写入新的容器。完成后,部署更改。我喜欢为Web应用程序(或任何你选择的)使用插槽,以获得零或接近零的停机时间。
要注意的一件事是,由于您正在批量加载此数据,Azure函数很可能会远远落后于保持数据同步。您将希望监视以查看这需要多长时间,这样您就可以知道何时可以打开迁移开关。
希望这能有所帮助。
https://stackoverflow.com/questions/59686273
复制相似问题