TL;DR;
有没有办法以自动化、经济高效的方式复制 azure 表?
长版
我有一个 Multi-Tenancy 云服务,有很多表。现在,我正在采取行动,使用云服务的“暂存”部署,以便我可以将系统的“RC”版本提供给客户端...这个新版本可能是错误修正版本,也可能是“新版本”模块”版本...
今天,测试版本使用预定义的测试负载来理解“所有”场景,这很好,但并不理想。
我想做的是让用户使用自己的复制数据测试新版本。用户将转到管理门户,单击“刷新测试集”并进行测试。评估产品的新客户将使用旧的测试集...
我的问题是:通过“insert into mytableCopy select * from myTable”复制表的成本很高!
- 时间成本很高。我花了大约 20 分钟使用专用的中型工作角色复制所有表。由于用户很早就要求此功能并且他们喜欢实时数据,我预计他们将“垃圾邮件点击”刷新测试集按钮。花 20 分钟来复制它将是一个大问题...是的,我必须复制所有数据,因为很多报告都涉及趋势。
- 成本昂贵。运行额外实例是固定成本。额外的存储空间是合理但可预测的成本(它并不便宜,但我可以预测)。我担心的成本是可以快速累积的存储交易成本!如果 addoption 是预期的 1/3,那么我的交易账单将在每个新的“错误修复”版本中上涨 500%,在每个“新模块”版本中上涨 10000%...我可以通过简单地删除非工作时间重复的数据以及我可以关闭的额外实例...
所以基本上我的问题是我如何摆脱困境?!?
- 有没有办法“避免”或降低交易成本?!?
- 是否有更快速的方法来复制表格?
(使用量计算基于用户今天点击我的“重置测试集”按钮的次数)
最佳答案
任务的主要延迟是上下文路线图。当您请求数据时,上下文会为您的所有实体创建代理,并可能跟踪这些实体。为了避免这种延迟,您可以直接使用 REST API 而不是 .Net 客户端库
过去,我开发了一个 Azure 存储代理服务,充当我的客户端应用程序和我的真实存储之间的中间件。
解决方案路线图可能是这样的:
1-) 阅读表格
2-) 创建克隆表
3-) 对于每个表逐页读取
4-) 使用正则表达式转换原始的 RESPONSE 并用作克隆中 INSERT 操作的主体
希望这有帮助!!!
关于azure - 重复的 Azure 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22963555/