【问题标题】:How do I design a table which will store very large data?如何设计一个存储非常大数据的表?
【发布时间】:2011-07-21 14:45:44
【问题描述】:

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

将其保留在 OLTP 中是可行的选择,还是需要将其转移到数据仓库 DB 中? 请告知我在设计此表或数据库的架构时应牢记的注意事项。

另外,如果是 SQL 服务器,请告知,因为我可以使用任何一个数据库。

【问题讨论】:

标签: sql-server oracle large-data-volumes large-data


【解决方案1】:

这种规模让您进入 VLDB 领域(非常大的数据库)。 在那个高度,情况根本不同。

如果没有您的应用程序职责的全部要求,您的问题将无法回答。您需要针对应用程序应该执行数据的性能进行设计。

我的建议是让有经验的人加入,否则你几乎 100% 肯定会失败。

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

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

此外,您还需要知道如何构建和配置具有真正出色 I/O 吞吐量的巨型机器的人。您需要超过 1GB/s,当您还需要存储 200 TB 时,这并不是很便宜。实际上,如果这 200 TB 只是表数据,您需要将其翻倍或三倍才能创建索引、聚合表、备份等。

抱歉,我无法为您提供可供使用的解决方案,但我想确保您明白,您构建的不仅仅是一个高于平均规模的数据库。这是巨大的!

【讨论】:

    【解决方案2】:

    我会首先查看您的磁盘子系统,并确保它可以处理您每天要执行的 2-5 TB 负载。 Oracle 和 SQL Server 都内置了分区。在 SQL Server 中,您还可以使用压缩来最小化磁盘上的存储(不确定 Oracle)

    这将主要用于 OLAP 或 OLTP 吗?

    【讨论】:

    • 我只是确认 Oracle 也支持表和索引压缩。
    • 一天 2-5 TB?我会远离索引 - 压缩与否。如果您需要对其进行查询,请复制到 OLAP 结构。并且绝对分区。
    猜你喜欢
    • 2021-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-30
    • 2018-06-29
    • 2014-06-11
    • 2022-08-15
    • 1970-01-01
    相关资源
    最近更新 更多