加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – Azure联盟已弃用.我有什么选择?

发布时间:2020-12-12 06:39:08 所属栏目:MsSql教程 来源:网络整理
导读:的背景: 我们有一个主要实体是客户的应用程序.此应用程序中的所有信息均从客户处开始.我们认为如果我们可以将它用于某种分区,那将是非常好的.我们使用Azure SQL数据库作为后端设计了该服务. 我们的表格看起来像这样(为简洁起见,只留下相关部分): TABLE dbo.
的背景:

我们有一个主要实体是客户的应用程序.此应用程序中的所有信息均从客户处开始.我们认为如果我们可以将它用于某种分区,那将是非常好的.我们使用Azure SQL数据库作为后端设计了该服务.

我们的表格看起来像这样(为简洁起见,只留下相关部分):

TABLE dbo.Orders
(
     CustomerId INT NOT NULL DEFAULT( FEDERATION_FILTERING_VALUE( 'FEDERATION_BY_CUSTOMER' ) ),OrderId INT NOT NULL,....,CONSTRAINT PK_Orders PRIMARY KEY CLUSTERED ( CustomerId,OrderId )
) FEDERATED ON ( FEDERATION_BY_CUSTOMER = CustomerId );

现在这让我们做了一些疯狂的事情.我们对所有SQL相关内容的入口点始终首先包含以下命令:

USE FEDERATION GroupFederation( FEDERATION_BY_CUSTOMER = 1 ) WITH RESET,FILTERING = ON

在这种情况下,这句话:

SELECT * FROM Orders

要么

INSERT INTO Orders ( OrderId ) VALUES ( 10 );

只需要处理给定客户的数据,就可以顺利运行. CustomerId COLUMN将始终从系统函数FEDERATION_FILTERING_VALUE中推断出来;

现在,我们可以将所有客户都放在一个数据库中而不会出现问题,并且它们将彼此隔离.如果将来某个时候,其中一个太大了,我们可以在该特定客户ID上拆分联盟,我们不必更改代码中的任何内容来支持它.

哎呀,我们可以让每个客户都在分离的联邦数据库中,而使用它的服务也不会对它有任何了解.

我们对我们的解决方案非常满意,我认为我非常聪明地想出来.直到最近,当微软宣布他们正在使用即将推出的新的azure数据库版本弃用azure联合功能时.阅读更多关于它here和here.

我希望你能看到我的问题.您认为我的替代方案是什么?您是否使用Azure联盟?您将如何过渡?

谢谢.

解决方法

我们已经看到,与Federations相比,自定义分片解决方案通常可以在可伸缩性,灵活性和性能方面获得更好的结果.您可以在此处找到有关联合和自定义分片的更多信息: http://msdn.microsoft.com/en-us/library/dn495641.aspx.这是宣布退出联盟以及Windows Azure SQL数据库中的Web和Business Edition的部分原因.

我鼓励你研究自我分片作为替代方案. CAT团队去年在http://social.technet.microsoft.com/wiki/contents/articles/17987.cloud-service-fundamentals.aspx发布了关于自我分片模式的良好指导,更多这样的材料即将推出.

请随时与我联系,讨论迁移现有Federations应用程序的替代方案.我是Azure数据库产品团队的一员,您可以通过torsteng(at)microsoft.com与我联系

谢谢,

托斯滕

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读