我们正在创建大规模,面向数据库的业务应用程序。此业务应用程序是多租户的,我们希望在Azure云中将其作为SOA(软件即服务)提供。 Azure SQL数据库仅限150 GB,这对我们来说是不够的。我们的客户每年都有大量的数据可能会增加。我们的应用程序数据库是关系型和复杂的,它使用复杂的查询(组,联接,聚合函数),存储过程来获取/保存数据。因此我们不愿意直接使用Big Table。 有人建议将数据库分解为分区和文件组,但我们不打算这样做。还有另一种可能性,只将当前年度数据保存到app并停留在其他分区/备份数据库中,但这不适合我们的应用程序,因为经常访问过去的数据。如果我们使用Azure Table,我们的复杂操作将在内存中完成,由于内存资源有限,这是不可能的。 但是,我们正在考虑将Azure SQL数据库和Azure表混合使用。但我们无法找到任何使用两者混合的合适示例。
我们也在寻找以下问题的答案?
答案 0 :(得分:2)
新的标准和高级Azure SQL数据库SKU现在支持250GB和500GB respectively。无论如何,Azure SQL数据库是大量数据的横向扩展模型。 Azure SQL数据库的弹性比例功能的预览刚刚announced。
将数据存储在最合适的位置有充分的理由 - 与Azure SQL数据库相比,Azure Tables提供了更具成本效益的大规模存储。绝对有理由将每个数据用于最合适的数据 - Azure表中的高级半结构化数据和Azure SQL数据库中的关系数据。
1)如果要创建新应用程序,则应考虑使用Azure SQL数据库作为关系数据,如果不起作用,则只迁移到Azure虚拟机中的SQL Server。虽然VM中的SQL Server看起来很简单,但是一旦开始添加传统的DBA活动(例如部署HA),事情就变得越来越棘手。如果你有大规模的关系需求,你应该考虑分片。
2)您的选择不应该是一个或另一个,而是在适当的时候使用它们。
3)Microsoft Patterns&实践中有许多eBooks,您应该看看它们可以帮助您构建您的架构。