维护Azure SQL和表存储中存储的数据之间的关系

时间:2017-02-13 14:19:19

标签: azure foreign-key-relationship azure-table-storage azure-sql-server

处理一个项目,在该项目中,大量数据将从SQL Server(在Azure VM上运行)移动到Azure Table Storage,以实现扩展和更低成本的存储。数据中有几个外键被移动到表存储,它们是SQL表中的GUID(主键)。显然,没有办法确保参照完整性,因为事务不跨越不同的Azure存储类型。我想知道是否有人在此存储设计方面取得了任何成功。是否有任何事务管理解决方案允许创建跨SQL Server和Azure表存储的事务?从两个数据库(SQL和表存储)读取查询的含义是什么?

1 个答案:

答案 0 :(得分:1)

如果您尝试执行跨越SQL Server和Azure表的事务,最好的选择是使用eventually consistent transaction模式。

简而言之,您将把更新放入队列消息中,然后使用工作进程(无论是WebJob,工作者角色,VM上运行的某些内容)使用peeklock将消息出列,确保所有步骤都在执行事务,然后在消息上调用complete。

如果您希望仅在Azure表上执行事务,只要您的实体位于同一分区中,就可以使用批量更新。