处理一个项目,其中大量数据将从 SQL Server(在 Azure VM 上运行)移动到 Azure 表存储,以实现扩展和更便宜的存储原因。正在移动到表存储的数据中有几个外键,它们是 SQL 表中的 GUID(主键)。显然,没有办法确保引用完整性,因为事务不跨越不同的 Azure 存储类型。我想知道是否有人在这种存储设计上取得了成功。是否有任何事务管理解决方案允许创建跨 SQL Server 和 Azure 表存储的事务?从两个数据库(SQL 和表存储)读取查询的含义是什么?
问问题
62 次
1 回答
1
如果您尝试执行跨越 SQL Server 和 Azure 表的事务,最好的办法是使用最终一致的事务模式。
简而言之,您会将更新放入队列消息中,然后有一个工作进程(无论是 WebJob、工作角色,还是在您的 VM 上运行的东西)使用 peeklock 将消息出列,确保事务中的所有步骤都是执行,然后在消息上调用完成。
如果您希望仅在 Azure 表上执行事务,只要您的实体位于同一分区中,就可以使用批量更新来执行此操作。
于 2017-02-13T14:48:50.207 回答