mysql-以70.000条记录/秒的速度写入大量数据该怎么办?
作者:互联网
也许有人可以对此发表意见?我目前正在寻找一种解决方案,每天将5亿至40亿条记录存储到数据库中的一个(或2个)表中,最低写入率为70.000条/秒.一条记录包含大约30个变量.我们希望每小时和并行加载数据(对数据进行分区),以达到计算机在CPU,内存和IO方面的最大容量.在写过程中,查询必须是可行的,并且在写操作期间应保持可接受的性能.
我一直在浏览网页,看看是否有人尝试将这些数量并行写入MySQL数据库,但未发现任何特定内容.大多数人看每秒的事务,但这不是我们正在处理的.我们正在加载原始数据,我们需要快速,并行且停机时间为零(即用户必须能够查询可用数据).是否值得研究MySQL来完成这项工作,或者如果我们不花大量的钱(您认为呢?)在硬件上,我们甚至不应该考虑它吗?
注意:通过多核64位128GB服务器中可用的GBit FC,SAN存储的磁盘空间没有问题.我不是在寻找详细的技术解决方案,而是从专家的角度考虑可行性,并提供一些提示/技巧以向正确的方向指出.
欣赏您的见解.
回应评论:
每个记录单独计数,每个变量都是可能的候选搜索标准.更多信息:
>昨天和较早的数据(最多10天)必须是可查询的(SQL会很简单)
>最好不要通过自定义API进行数据访问,而更喜欢使用ODBC等开放标准或客户端(例如Oracle Client)
>数据消耗涉及汇总(午夜之后,以及每小时统计数据涉及最小/最大/平均的部分小时),并存储在更高级别的历史记录表中以供最终用户报告.那和前面提到的搜索原始数据以进行问题/临时分析.
>在10天周期结束时,很容易删除一整天的数据.
>再一次强调一下:写作每小时都要进行一次以跟上交付进度,并且不会为午夜总结创建积压,因此不能长时间推迟.
>搜索结果不必是即时的,但最好不要超过-在整个10天的时间内15分钟= 3,000亿条记录.
解决方法:
有了这么多的数据,我认为您应该尝试研究NoSQL(MongoDB,Cassandra,HBase等).使用MySQL,您必须大量扩展服务器.我们尝试每秒进行约1200次插入,并且MySQL失败(或硬件失败).解决方案使用的是XCache(当时,memcached也失败了).尝试研究NoSQL,您会喜欢的.
标签:parallel-processing,volume,mysql 来源: https://codeday.me/bug/20191208/2089220.html