我正在一个项目中工作,我的工作是build立一个数据库系统来pipe理大约600亿个数据条目。
项目背景是我必须对大量每秒从大约30,000个RFID阅读器读取的消息进行实时存储。 假设每个RFID阅读器每天产生6000条消息,我必须将180,000,000条条目插入到数据库中。
一个可能的数据input就像“time_stamp,Reader_ID,Tag_ID,other_msg_content”
将根据时间范围,Reader_ID和Tag_ID进行查询(SELECT)。 查询不会很复杂。
现在我正在devise数据库系统,并计划使用MySQL。 我的转储问题是:
使用MySQL是明智的,还是应该使用Oracle(昂贵)或HBase?
如果我必须使用MySQL,任何想法如何build立群集?
如果我把消息插入一个表格,表格很快就会变长。 我想使用Sharding技术将长表拆分为许多短表。
3.A. 我想知道一个MySQL InnoDB表的正确长度,也就是说,在插入了多less条数据之后,我将开始分片?
3.B. 那里有没有好的分片代理解决scheme? 我知道spock代理和其他一些,需要build议。
我必须使用MySQL群集吗? 或者我只使用mysql主服务器和分片从服务器,并使用复制来实现高可用性?
假设我必须在MySQL中处理20TB数据(一年),我打算使用20个节点(PC服务器,便宜),并且每个节点存储1TB的数据,这有可能吗? 任何意见都欢迎。
非常感谢。
思考:
最后