在什么规模的数据中,分区的ROI最有价值?

时间:2014-10-02 15:31:15

标签: sql database-design data-warehouse database-partitioning

所以我正在研究数据仓库和分区,并且非常好奇在哪个规模上最有意义的是对密钥上的数据进行分区(例如,SaleDate)。

教程经常提到您正试图将其分解为逻辑块,以便更新数据的可能性不大,从而导致服务中断。

因此,假设我是一家在特定美国州工作的中型公司。我做了很多关于SaleDate的工作,通常每天都有成千上万的交易(有必要的交易细节,每个交易4-50个?),并且有大约5年的数据。我想查询并构建趋势信息;例如:

  • 每年都要知道哪些项目随着时间的推移越来越不受欢迎。
  • 每月查看哪些项目在一年中的某个时间(夏季冰)受欢迎
  • 每周查看我的个人商店的运作情况
  • 每天观察盗窃趋势或其他事项

现在我的业务部门也想查询该数据,但我希望能够保持响应。

我怎么知道最好对这个数据集进行年,月,周,日等分区?通过测试每个场景,它是否只是我实际观察到的提供最佳响应时间?或者是否有某种规模可以用来了解我的分区最有效的位置?

编辑:我个人正在使用Sql Server 2012.但我很好奇其他人如何看待与核心概念相关的问题而不是实施(除非这不是你能做到的情况之一)这样做。)

2 个答案:

答案 0 :(得分:3)

需要考虑的事项:

  1. 您使用的是哪种类型的数据库?非常重要的是,Oracle与SQLServer和IBM等的不同策略
  2. 示例查询和运行时间。分区使用取决于where子句中的条件,你要过滤什么?
  3. 创建/使用聚合表是否有意义?似乎每月汇总会为您节省一些时间。
  4. 分区使用取决于where子句中的条件,您要过滤什么?
  5. 基于您可用的硬件和存储选项的许多选项,需要更多详细信息才能提出更具体的建议。

答案 1 :(得分:0)

这是一个Ms-SQL 2012数据库,每天有700万条记录,希望将数据库增长到6年的趋势分析数据。

分区基于YearWeek列,以整数表示(在201453到201501之后)。因此每个分区都有一周的交易数据。 这使得最多可以有320个分区,这些分区在一个方案中最多可以选择1000个分区。一个表中一个分区的最大大小现在是大约。 10 Gb,这比总的3Tb大小更容易处理。

分区方案中的新文件用于每个新年。 500Gb数据文件适合备份和删除。

当计算一个月的数据时,4个处理器并行工作以分别处理一个分区。