我们正在将手动管理的生产环境迁移到Terraform,并且在此过程中将重新创建环境所需的所有资源。存储帐户就是这种资源之一。
我们有一个存储帐户,该帐户具有接近1500多个表,每个表包含数百万条记录,每个记录都附带时间戳。在迁移期间,我们最有兴趣复制过去30天的记录。
我想知道是否有一种工具可以帮助我们最有效地执行此复制操作,并且耗时更少。
我们调查了Azcopy,但它只允许我们进行一对一复制,复制数十亿条记录可能要花费几天的时间,而据我在网上了解到的那样,Azcopy不支持仅从特定时间戳复制几天的查询。
有助于深入了解我们可以用来实现此目标的不同工具和技术。
答案 0 :(得分:0)
据我所知,没有这样的工具可以从指定的时间戳复制表存储。您应该编写自己的逻辑以从指定的时间戳中进行选择,但这会导致性能下降。
在这里,我建议您可以使用名为EastFive.Azure.Storage.Backup的工具。它支持将Azure Blob / Azure表存储复制到新的存储帐户。对于天蓝色表存储,它支持指定partition_key的副本数组,但不支持指定时间戳。
如果对此感兴趣,可以按照以下简单步骤操作:
1。在D驱动器中创建一个名为“ backup”的文件夹,然后将Prerequisites中提到的所有4个项目下载到D:\ backup。
2。解压缩所有4个项目,然后在Visual Studio中逐个打开它们->在Visual Studio中的manage nuget包中,更新所有旧包->逐个构建它们,确保每个都构建成功。
3。在EastFive.Azure.Storage.Backup项目中打开 backup.json ,分别填写sourceConnectionString
和targetConnectionString
。
如果您不想复制Blob,只需删除Blob。
对于最后的timeLocal
字段,这表示何时根据您的本地时间运行复制活动。
4。您可以install it as a service,然后启动服务以运行复制活动。
我在我旁边进行了测试,并将我所有的天蓝色表存储都复制到了新的存储帐户中,截图如下: