我们计划在Azure云中实施多租户应用程序。我正在寻找在数据库级别实现此功能的最佳方法。数据库架构非常庞大,我们有多个表分布在多个模块中。并且每个客户的数据大小各不相同。对于某些人来说,表中可能有100行。但对于一些人来说,它可能是数百万行。在这种情况下实施弹性数据库的最佳方法是什么?
在这种情况下如何设计分片?每个碎片单个租户或租户列表?如果我为每个分片创建一个租户列表,并且相邻的租户拥有大量数据,那么它将会过度拥挤。我们如何才能有效地找到分区的分片键?
如果我为每个分片执行单个租户,我可以根据数据大小扩展单个分片吗?
有没有人遇到过这种情况?请帮我一些示例链接?
感谢您的帮助!
答案 0 :(得分:2)
David Makogon的评论是正确的 - 有很多方法可以做到这一点。我只是提供答案,因为Microsoft花了很多时间为这种情况提供解决方案。如果您决定采用多数据库方法,请务必查看弹性池和Elastic Client Library。这为跨分片创建分片,分片映射管理和分布式查询提供了支持。自己创建这将是一项很大的工作。