正在从azure表存储中复制过去30天的数据

正在从azure表存储中复制过去30天的数据,azure,azure-storage,azure-table-storage,Azure,Azure Storage,Azure Table Storage,我们正在将手动管理的生产环境迁移到Terraform,并在此过程中重新创建环境所需的所有资源。其中一个资源是存储帐户 我们有一个存储帐户,它有近1500多个表,每个表由数百万条记录组成,每条记录都附有时间戳。在迁移期间,我们最感兴趣的是复制过去30天的记录 我想知道是否有一种工具可以帮助我们最有效地执行此复制操作,而且耗时更少 我们研究了Azcopy,但它只允许我们进行一对一的复制,复制数十亿条记录可能需要几天时间,从我在网上了解到,Azcopy不支持从某个时间戳只复制几天的查询 对于我们能够适

我们正在将手动管理的生产环境迁移到Terraform,并在此过程中重新创建环境所需的所有资源。其中一个资源是存储帐户

我们有一个存储帐户,它有近1500多个表,每个表由数百万条记录组成,每条记录都附有时间戳。在迁移期间,我们最感兴趣的是复制过去30天的记录

我想知道是否有一种工具可以帮助我们最有效地执行此复制操作,而且耗时更少

我们研究了Azcopy,但它只允许我们进行一对一的复制,复制数十亿条记录可能需要几天时间,从我在网上了解到,Azcopy不支持从某个时间戳只复制几天的查询


对于我们能够适应以实现这一目标的不同工具和技术,有助于获得一些见解

据我所知,没有这样的工具可以从指定的时间戳复制表存储。您应该编写自己的逻辑来从指定的时间戳中进行选择,但这会导致性能下降

在这里,我建议您可以使用名为的工具。它支持将azure blob/azure表存储复制到新存储帐户。对于azure表存储,它支持指定分区\ U密钥的复制数组,但不支持指定的时间戳

如果您对此感兴趣,可以按照以下简单步骤操作:

1.在D驱动器中创建一个名为“backup”的文件夹,然后将中提到的所有4个项目下载到D:\backup中

2.解压所有4个项目,并在visual studio中的manage nuget包中逐个打开它们,更新所有旧包->逐个构建,确保每个项目都成功构建

3.打开EastFive.Azure.Storage.backup项目中的backup.json,填写
sourceConnectionString
targetConnectionString

如果不想复制blob,只需删除blob即可

对于末尾的
timeLocal
字段,它表示根据您的本地时间何时运行复制活动

4.您可以,然后启动服务以运行复制活动

我在我身边进行了测试,我所有的azure表存储都复制到了新的存储帐户,屏幕截图如下:


您找到了更好的解决方案吗?@IvanYang感谢您的回复。我做了以下工作:*从一开始就使用Azure data factory进行了一对一的复制,运行了将近80个小时*使用此处提到的cosmos DB库创建了一个C#应用程序:复制增量(在执行data factory作业期间添加的数据)*好的,您可以通过发布答案共享您的解决方案:)