我在一个项目中工作,我的工作是构建一个数据库系统来管理大约 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。我的转储问题是:
使用 MySQL 是否明智,还是我应该求助于 Oracle(价格昂贵)或 HBase?
如果我必须使用 MySQL,知道如何构建集群吗?
如果我将消息插入表格中,很快表格就会很长。我想使用 Sharding 技术将长表拆分为许多短表。
3.a. 我想知道一个MySQL InnoDB表的合适长度,即插入多少条数据后,我要开始分片?
3.b. 有没有好的分片代理解决方案?我知道 spock 代理和其他一些,需要推荐。
我必须使用 MySQL 集群吗?或者我只是使用mysql主服务器和分片从服务器,并使用Replication来实现高可用?
假设我必须在 MySQL 中处理 20 TB 数据(1 年),我计划使用 20 个节点(PC 服务器,便宜),并且每个节点存储 1 TB 数据,这可能吗?欢迎提出任何意见。
非常感谢。
gbn*_*gbn 11
想法:
最后