我们有一个企业应用程序,我们正在迁移到云。到目前为止,我们的应用程序已经有多个用户通过位于其主服务器上的数据库访问信息。
我们正试图找出将软件迁移到云的最佳设置。我对 azure Sql 数据库的数据库分片做了一些研究。
我们试图实现的是,当用户访问我们的网站时,他们可以选择登录或注册登录。如果用户不熟悉该软件,我们希望为使用主数据库模式的用户公司创建一个新数据库。使用数据库分片,我相信这将被称为添加分片,然后用户将被添加到我们的ShardMapManager中,并给出一个分片键,该键将允许他们读取和写入数据到新创建的数据库(分片(。在软件内部,用户可以添加更多用户,这将为他们提供与管理员用户相同的分片密钥。
对于由于隐私原因需要为每个公司拥有自己的数据库的软件来说,这是最好的解决方案,还是对于我们正在努力做的事情有更好的解决方案。
另外,如果我考虑正确,我们是否必须执行查询以从分片映射管理器中查找分片键,以便当前用户能够读取和写入应用程序的数据?
任何意见都非常感谢!
我认为你正在寻找 Azure SQL 弹性池:https://learn.microsoft.com/en-us/azure/sql-database/sql-database-elastic-pool
手动控制分片的想法也是可能的,但会增加运营团队的复杂性。也看看这里描述的其他模式:https://learn.microsoft.com/en-us/azure/sql-database/saas-tenancy-app-design-patterns