如何使用Azure SQL实现跨多个区域(而不是复制)的数据跨越
我有一个Azure SQL Server和一个数据库。我想要一个解决方案来存储数据库中不同区域中所选表的特定记录。 例如,我有一个用户表,其中包含所有PII数据。这些用户可以来自世界任何地方。但我希望只在欧盟地区存储来自欧盟地区的用户记录。 要添加它,我希望与特定用户相关的所有其他表记录也存储在该用户的区域中 从应用程序的角度来看,我将能够跨所有用户和所有相关表进行查询,以获得全局用户的仪表板数据如何使用Azure SQL实现跨多个区域(而不是复制)的数据跨越,azure,azure-sql-database,database-partitioning,Azure,Azure Sql Database,Database Partitioning,我有一个Azure SQL Server和一个数据库。我想要一个解决方案来存储数据库中不同区域中所选表的特定记录。 例如,我有一个用户表,其中包含所有PII数据。这些用户可以来自世界任何地方。但我希望只在欧盟地区存储来自欧盟地区的用户记录。 要添加它,我希望与特定用户相关的所有其他表记录也存储在该用户的区域中 从应用程序的角度来看,我将能够跨所有用户和所有相关表进行查询,以获得全局用户的仪表板数据 任何解决这个问题的方法都会对我有帮助 这里有一种方法。。。当您的用户/租户为您的服务注册时,他们需
任何解决这个问题的方法都会对我有帮助 这里有一种方法。。。当您的用户/租户为您的服务注册时,他们需要选择数据应该驻留的位置。这称为数据驻留。然后,在后续的读写数据请求中,应用程序的存储库层需要知道请求的执行者,以便它可以查找适当的连接字符串并连接到该数据库以检索/写入数据 路由数据可以复制到多个区域和/或封装在单个位置,因为它不包含PII。Azure Web应用程序可以由单个区域托管(如下图所示),也可以复制到多个区域,并通过全局流量管理器将流量路由到该应用程序 这种方法支持这样一种情况,即欧洲用户选择将其数据驻留在法国,但恰好访问美国 这张图片显示了它的外观。一个叫Barry Luijbregts的家伙有一个很好的pluralsight视频,深入研究了这种方法 祝你好运
另一种方法可能是对数据库进行分片。使用水平分片将每个国家/地区的行存储在该国家/地区的单独数据库中。弹性数据库客户端库将使用shardmap为您完成大部分分片工作(假设您使用的是.NET)。您可以使用shardmap中的国家代码分割区域数据 参考体系结构: 弹性数据库客户端: