在Azure数据库中实现多租户的最佳方法是什么?

时间:2017-03-28 18:53:57

标签: sql azure azure-sql-database azure-elastic-scale azure-elastic-sharding

我们计划在Azure云中实施多租户应用程序。我正在寻找在数据库级别实现此功能的最佳方法。数据库架构非常庞大,我们有多个表分布在多个模块中。并且每个客户的数据大小各不相同。对于某些人来说,表中可能有100行。但对于一些人来说,它可能是数百万行。在这种情况下实施弹性数据库的最佳方法是什么?

在这种情况下如何设计分片?每个碎片单个租户或租户列表?如果我为每个分片创建一个租户列表,并且相邻的租户拥有大量数据,那么它将会过度拥挤。我们如何才能有效地找到分区的分片键?

如果我为每个分片执行单个租户,我可以根据数据大小扩展单个分片吗?

有没有人遇到过这种情况?请帮我一些示例链接?

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

David Makogon的评论是正确的 - 有很多方法可以做到这一点。我只是提供答案,因为Microsoft花了很多时间为这种情况提供解决方案。如果您决定采用多数据库方法,请务必查看弹性池和Elastic Client Library。这为跨分片创建分片,分片映射管理和分布式查询提供了支持。自己创建这将是一项很大的工作。

相关问题