我需要开发一个 Azure SQL 服务器生产系统,能够根据用户的购买历史记录、用户健康状况和商品推荐(大约 415 MB)存储用户商品推荐。我知道 13 个月的大致输出、数据必须存储的时间,并计算出需要大约 30 TB 的存储空间。
我有一些使用数据库的经验,但处理如此大量的数据对我来说是陌生的。
我最初的方法是使用分片将这些数据存储在多个数据库中,但我不确定如何处理应用程序设计部分,其中应用程序需要了解分片策略并知道要连接到哪个数据库(分片),例如给定的操作(在我们的应用程序中,每个用户都是一个 guid) 我也不确定管理多个数据库、管理跨多个数据库的事务的复杂性。考虑到在天蓝色中我按数据库付费,成本结构会是什么样子。
社区会对我的问题有任何意见吗?
当然,这些是我的想法......
对于单个用户来说听起来很多。你是如何找到这个数字的?
您的大小计算中是否包含数据压缩?
静态数据的大小并不重要。只要您的数据库架构正确,基本上就没有什么区别。
这确实会变得不必要的复杂,而且可能几乎没有任何好处。在您用尽其他选项之前,目前的优化听起来有点为时过早。
听起来如果你分片它会很昂贵。如果将其保存在单个数据库中并根据需要进行垂直扩展,那么成本就不会那么昂贵。但无论如何,云计算的成本都很高。
简而言之,在我用尽其他选择之前,我不会关心数据分片。只需构建一个普通的数据库并在出现性能问题时解决它们即可。不要尝试过早地主动优化。
听起来像是 Azure Synapse Analytics 的一个很好的案例。 https://azure.microsoft.com/en-ca/products/synapse-analytics