是否可以使用 MySQL 管理 20 TB 数据?

8 mysql database hadoop hbase

我在一个项目中工作,我的工作是构建一个数据库系统来管理大约 60,000,000,000 条数据条目。

项目背景是我要对每秒从大约30,000个RFID阅读器读取的大量消息进行实时存储。假设每个 RFID 阅读器每天生成 6,000 条消息,我必须向数据库中插入 180,000,000 个条目。

可能的数据条目类似于“time_stamp、Reader_ID、Tag_ID、other_msg_content”

将是基于时间范围、Reader_ID 和 Tag_ID 的查询 (SELECT)。查询不会很复杂。

现在在设计数据库系统,打算用MySQL。我的转储问题是:

  1. 使用 MySQL 是否明智,还是我应该求助于 Oracle(价格昂贵)或 HBase?

  2. 如果我必须使用 MySQL,知道如何构建集群吗?

  3. 如果我将消息插入表格中,很快表格就会很长。我想使用 Sharding 技术将长表拆分为许多短表。

    3.a. 我想知道一个MySQL InnoDB表的合适长度,即插入多少条数据后,我要开始分片?

    3.b. 有没有好的分片代理解决方案?我知道 spock 代理和其他一些,需要推荐。

  4. 我必须使用 MySQL 集群吗?或者我只是使用mysql主服务器和分片从服务器,并使用Replication来实现高可用?

  5. 假设我必须在 MySQL 中处理 20 TB 数据(1 年),我计划使用 20 个节点(PC 服务器,便宜),并且每个节点存储 1 TB 数据,这可能吗?欢迎提出任何意见。

非常感谢。

gbn*_*gbn 11

想法:

  • 如果您在公共论坛上提出这些问题,请聘请专家为您解答
  • 考虑 Postgres 和 SQL Server,它们也将扩展到这个容量
  • 你需要酸吗?否 = 考虑 NoSQL
  • 设计和硬件比平台更重要
  • 不要虚拟化或削减其他硬件角落
  • 您的 RPO/RTO 是多少?
  • 维护窗口?也就是你真的是 24/7/365 吗?始终每秒 30k 行
  • 存档?
  • 您需要在线年龄较大(比如 6 个月)吗?
  • 预算?
  • 验证架构和设计的规定负载所需的实际测试
  • 20 TB 可能太小了
  • 每个 RFID 每天 6k,但每秒 30k?每天有 86.4k 秒,所以每 14 个 RFID 中只有 1 个每秒写入:每秒 420k+ 行的潜在峰值负载怎么样

最后

  • 这不是数据库问题而是架构问题
  • 你问错了问题,这个要求太早了