Cassandra或PostgreSQL:每分钟大量插入

Ksh*_*mar 1 database postgresql cassandra

这是我的场景:

  1. 我有超过10万张桌子.
  2. 我要每分钟在每个表中插入一次,即每分钟100,000个插入所有在单独的表中.
  3. 数据丢失并不重要,但速度和成本确实如此.
  4. 插入字段将是id,param1,param2,param3,param4,param5,timestamp.

请告诉我这个案例哪个数据库更快更便宜.

Nad*_*'El 10

Cassandra可能面临100,000个独立表格的严重可扩展性问题.100,000个单独的表意味着100,000个打开文件的多个(因此您需要确保您的内核配置为允许这么多打开的文件),100,000个memtables(每个表的最后修改暂时保存在内存中)所以你'我需要大量的内存.

在Cassandra中执行此类操作的另一种方法是使用一个表,具有100,000个不同的分区(这是宽行的Cassandra名称).每分钟您要为每个现有分区添加另一行(一个小条目).为了避免分区在添加条目数月之后变得越来越大,通常做的就是每周(比如每周)开始一个新的分区(每周大约有10,000分钟).在Cassandra建模中,这通常被称为"时间序列数据".

在你的问题中,你只提到了数据,而不是阅读它.假设这不是一个疏忽,你真的更关心写性能而不是读性能,那么Cassandra是一个很好的选择,因为它对写入来说特别快.如果你绝对关心速度和每美元性能,你还应该看一下Scylla,它是用C++重新实现Cassandra的.