Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Azure SQL实现跨多个区域(而不是复制)的数据跨越_Azure_Azure Sql Database_Database Partitioning - Fatal编程技术网

如何使用Azure SQL实现跨多个区域(而不是复制)的数据跨越

如何使用Azure SQL实现跨多个区域(而不是复制)的数据跨越,azure,azure-sql-database,database-partitioning,Azure,Azure Sql Database,Database Partitioning,我有一个Azure SQL Server和一个数据库。我想要一个解决方案来存储数据库中不同区域中所选表的特定记录。 例如,我有一个用户表,其中包含所有PII数据。这些用户可以来自世界任何地方。但我希望只在欧盟地区存储来自欧盟地区的用户记录。 要添加它,我希望与特定用户相关的所有其他表记录也存储在该用户的区域中 从应用程序的角度来看,我将能够跨所有用户和所有相关表进行查询,以获得全局用户的仪表板数据 任何解决这个问题的方法都会对我有帮助 这里有一种方法。。。当您的用户/租户为您的服务注册时,他们需

我有一个Azure SQL Server和一个数据库。我想要一个解决方案来存储数据库中不同区域中所选表的特定记录。 例如,我有一个用户表,其中包含所有PII数据。这些用户可以来自世界任何地方。但我希望只在欧盟地区存储来自欧盟地区的用户记录。 要添加它,我希望与特定用户相关的所有其他表记录也存储在该用户的区域中

从应用程序的角度来看,我将能够跨所有用户和所有相关表进行查询,以获得全局用户的仪表板数据


任何解决这个问题的方法都会对我有帮助

这里有一种方法。。。当您的用户/租户为您的服务注册时,他们需要选择数据应该驻留的位置。这称为数据驻留。然后,在后续的读写数据请求中,应用程序的存储库层需要知道请求的执行者,以便它可以查找适当的连接字符串并连接到该数据库以检索/写入数据

路由数据可以复制到多个区域和/或封装在单个位置,因为它不包含PII。Azure Web应用程序可以由单个区域托管(如下图所示),也可以复制到多个区域,并通过全局流量管理器将流量路由到该应用程序

这种方法支持这样一种情况,即欧洲用户选择将其数据驻留在法国,但恰好访问美国

这张图片显示了它的外观。一个叫Barry Luijbregts的家伙有一个很好的pluralsight视频,深入研究了这种方法

祝你好运


另一种方法可能是对数据库进行分片。使用水平分片将每个国家/地区的行存储在该国家/地区的单独数据库中。弹性数据库客户端库将使用shardmap为您完成大部分分片工作(假设您使用的是.NET)。您可以使用shardmap中的国家代码分割区域数据

参考体系结构:

弹性数据库客户端: