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

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

正在开展一个项目,其中出于扩展和更便宜的存储原因,将大量数据从 SQL Server(在 Azure VM 上运行)移动到 Azure 表存储。正在移动到表存储的数据中有几个外键,它们是 SQL 表中的 GUID(主键)。显然,没有办法确保引用完整性,因为事务不跨越不同的 Azure 存储类型。我想知道是否有人在这种存储设计方面取得了成功。是否有任何事务管理解决方案允许创建跨 SQL Server 和 Azure 表存储的事务?从两个数据库(SQL 和表存储)读取的查询会产生什么影响?

最佳答案

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

简而言之,您将把更新放入队列消息中,然后让一个工作进程(无论是 Web 作业、工作角色还是虚拟机上运行的进程)使用 peeklock 将消息出队,确保其中的所有步骤事务被执行,然后调用消息上的完成。

如果您只想在 Azure 表上执行事务,只要您的实体位于同一分区中,就可以通过批量更新来执行此操作。

关于azure - 维护 Azure SQL 和表存储中存储的数据之间的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42206268/

相关文章:

eclipse - 缺少 "Publish as Azure Cloud Service"

mysql - SQL按has_many关系的最新元素的列选择

azure - 单元测试 Azure 表存储类

Azure Web App - 是否可以将自定义域放入虚拟应用程序

azure - 使用 API 在 OneDrive 上创建文件夹

Mysql - 检查外部表中是否存在id

c# - 用于更新表存储实体的 Azure 函数 - 未找到 CloudTable.Execute

c# - Azure 表存储多行查询性能

azure - 使用通配符在 blob 中搜索文件名

database-design - Doctrine 中的复合外键