在C#中同步多个Azure表/容器 - 最佳做法是什么?

时间:2013-10-04 00:19:11

标签: c# sql azure azure-storage

我有一个Azure存储拓扑,其中包含多个镜像节点,但可以使用不同的数据,具体取决于哪个区域的用户使用哪个容器节点。

我的要求是将3个节点表同步到主节点表中。例如,如果表是Users,则三个节点(节点A,节点B,节点C)将使用三个节点的并集结果填充主User表,忽略重复并删除不再引用的行。

“Big Hammer”方法(如果我在SQL中执行此操作)将从主表中获取用户列表,3个节点列表,将节点组合到新集合中,将该集合与主集合并执行数据的合并/并集,最后将新的合并和截断集合推送到该主节点。

我的问题是:

  1. 是否有内置的Azure方式来执行此操作?
  2. 如上所述,在C#中这样做是不错的做法?
  3. 可能出现哪些类型的问题/风险,应该考虑哪些因素?
  4. 你能否为这个问题提出更好的解决方案;一些尝试和真实的东西(设计模式可能?)
  5. 您能否在C#中提供代码示例?
  6. 我认为如果azure没有机制来帮助支持这个功能,那么azure可以从混合中取出,这就变成了一个纯粹的C#List Manipulation问题。

    非常感谢。

1 个答案:

答案 0 :(得分:1)

1)不,但在幕后,Microsoft会对您的azure表进行地理复制/本地复制,最多再复制5次(总共6份)..他们可能会为此发布一个明确的API 2)取决于你的数据大小/工作频率...记住你得到每个/交易的费用..如果你开始每4小时做数十亿行,那么这将开始花费很多钱 3)我会在worker角色上执行此操作,因此数据不必离开MS数据中心,这样可以提高性能。在工作者角色中,它也可以“安排”以特定间隔运行

Azure表存储对此并不是一个很好的解决方案。数据库之间的SQL数据库中提供了跨持久存储的同步。虽然,提取数据并以原子方式处理所有这些操作不是Azure特定问题,但这很重要。