如何设计一个存储非常大的数据的表?

pas*_*ena 2 sql-server oracle large-data-volumes large-data

我需要在Oracle中设计一个表,它将在一天内存储2-5 TB的数据.它可以增长到200TB,记录将在超过200TB时被清除.

将它保留在OLTP中是否是可行的选择,还是需要将其转移到数据仓库DB?请在设计此表或数据库的模式时牢记建议.

另外,请告知它是否是SQL服务器,因为我可以使用任一数据库.

Ron*_*nis 6

这个大小使您进入VLDB领域(非常大的数据库).在那个高度,事情根本不同.

如果没有应用程序职责的全部要求,您的问题将无法解决.你需要设计用于针对您的应用程序应该是什么表现DO的数据.

我的建议是让那些有过往经验的人,或者你几乎100%保证会失败.

如果您使用Oracle,它会提供几种类型的分区,您需要非常小心地使用它们.您需要用于管理目的的分区(移动数据,构建索引,恢复数据)以及查询性能:

  • 范围分区,例如日期范围
  • 列表分区,用于存储数据切片,例如国家/地区('SE','US','GB')
  • 散列分区.根据哈希函数将数据存储在其中一个分区中
  • 或以上的任何组合

此外,您需要知道如何构建和配置具有真正令人敬畏的I/O吞吐量的怪物机器的人.您需要超过1GB/s,当您还需要存储200 TB时,这不是很便宜.实际上,如果那些200 TB只是表数据,则需要将其加倍或加倍才能创建索引,聚合表,备份等.

抱歉,我无法为您提供可供使用的解决方案,但我想确保您了解您不仅仅是在构建一个高于平均水平的数据库.它是巨大的!