复制Azure表

时间:2014-04-09 13:08:43

标签: azure azure-table-storage

TL; DR;
有没有办法以自动化,经济有效的方式复制蔚蓝表? 长版
我有一个多租户云服务,有很多表。现在,我正在采取行动,使用" staging"部署云服务,以便我可以制作" RC"我的系统版本可供客户使用...这个新版本可能是一个错误更正版本,也可能是一个"新模块"版本...
今天测试版使用预定义的测试负载理解"所有"情景很好,但并不理想 我想做的是让用户使用自己的复制数据测试新版本。用户将转到管理门户,单击" 刷新测试集"并去测试。评估产品的新客户将使用旧的测试集......

我的问题是:通过"复制表到mytableCopy select * from myTable"太贵了!

  • 它的价格昂贵。我需要大约20分钟才能使用专门的中型工作人员角色复制所有表格。由于用户正在急切地要求这个功能并且他们喜欢实时数据,因此我预测会发出垃圾邮件 - 点击垃圾邮件"刷新测试集按钮。花20分钟复制它将是一个主要问题...是的,我必须复制所有数据,因为很多报告都涉及趋势。
  • 成本昂贵。运行额外实例是固定成本。额外的存储是一个合理但可投资的成本(它不便宜,但我可以预测它)。我担心的成本是存储交易成本,可以快速叠加!如果addoption是预期的1/3,我的交易账单将增加500%,每个新的"错误修复"版本和10000%的每个"新模块"版本......我可以通过简单地删除非工作时间的重复数据以及我可以关闭的额外实例来缓解存储价格......

所以基本上我的问题是如何摆脱泡菜?!?

  1. 有没有办法避免"交易成本还是减少了?!?
  2. 有没有更快的方法来复制表格?
  3. (使用情况的计算方法取决于用户今天点击了我的" 重置测试集"按钮的次数)

1 个答案:

答案 0 :(得分:2)

您的任务的主要延迟是上下文路线图。当您请求数据时,上下文会为您的所有实体创建代理,并可能跟踪这些代理。为避免此延迟,您可以直接使用REST API而不是.Net客户端库

过去,我开发了一个Azure存储代理服务,它充当我的客户端应用程序和我的真实存储之间的中间件。

检查Rest API Reference

解决方案路线图可能是这样的:

1-)READ TABLES

2-)创建克隆表

3-)每张表阅读页面

4-)使用正则表达式转换原始的RESPONSE并将其用作INSERT操作的Body进入克隆

希望这有帮助!!!