在使用Azure Table服务时,我有一个关于最佳实践的问题。
想象一下名为Customers的表。想象一下其他几个表,分成大量的分区。在这些表中,有CustomerName字段。
如果客户更改了他的名字......那么我更新了Customers表中的相应记录。与关系数据库相比,另一个表中的所有其他列(显然)都没有更新。
确保所有其他表格也更新的最佳方法是什么?查询CustomerName上的所有表并随后更新所有这些记录似乎效率极低。
答案 0 :(得分:3)
如果你在表之间多次存储CustomerName没有任何魔力,你需要找到这些记录并更新它们上的CustomerName字段。
由于这是一个非常低效的操作,你可以(并且应该)执行“off-transaction”。这意味着,当您执行初始“名称更改”操作时,将项目推送到队列并让工作人员执行“名称更改”。由于没有网络响应/用户焦急地等待工人完成这样一个事实,即它非常低效是无关紧要的。
这是在分布式系统中实现最终一致性的主要设计模式。