我需要在Oracle中设计一张表,一天可以存储2-5TB的数据。它可以增长到 200TB,当超过 200TB 时,记录将被清除。
将其保留在 OLTP 中是可行的选择,还是需要将其转移到数据仓库 DB 中?请建议我在设计此表或数据库的架构时应牢记的注意事项。
另外,如果它是 SQL 服务器,请告知,因为我可以使用任何一个数据库。
我需要在Oracle中设计一张表,一天可以存储2-5TB的数据。它可以增长到 200TB,当超过 200TB 时,记录将被清除。
将其保留在 OLTP 中是可行的选择,还是需要将其转移到数据仓库 DB 中?请建议我在设计此表或数据库的架构时应牢记的注意事项。
另外,如果它是 SQL 服务器,请告知,因为我可以使用任何一个数据库。
这种大小使您进入 VLDB 领域(非常大的数据库)。在那个高度,情况根本不同。
如果没有您的应用程序职责的全部要求,您的问题将无法回答。您需要针对应用程序应该对数据执行的操作进行性能设计。
我的建议是让有经验的人加入,否则你几乎 100% 肯定会失败。
如果您使用 Oracle,它提供了几种类型的分区,您需要非常小心地使用它们。您需要分区用于管理目的(移动数据、构建索引、恢复数据)以及查询性能:
此外,您需要知道如何构建和配置具有真正出色的 I/O 吞吐量的巨型机器的人。您需要超过 1GB/s,当您还需要存储 200 TB 时,这并不是很便宜。实际上,如果这 200 TB 只是表数据,您需要将其翻倍或三倍才能创建索引、聚合表、备份等。
抱歉,我无法为您提供可供使用的解决方案,但我想确保您了解您不仅仅是在构建一个高于平均大小的数据库。这是巨大的!
我将首先查看您的磁盘子系统,并确保它可以处理您每天将执行的 2-5 TB 负载。Oracle 和 SQL Server 都内置了分区。在 SQL Server 中,您还可以使用压缩来最小化磁盘上的存储(不确定 Oracle)
这将主要用于 OLAP 或 OLTP 吗?