加载大量数据(10000 个信号 - 时间序列)

Load large amount of data (10000 signals - time series)

我正在分析如何以每秒 50 次的速度存储超过 10000 个信号。可能我会从记忆中阅读它们。每个信号都有一个时间戳(8 字节)和一个双精度(8 字节)。此过程每周 1 天 运行 4 小时。那么:

10000 x 50 x 16 = 8 MBS/秒。

8 x 3600 x 4 = 115 GBS/周。

我应该使用什么数据库(或其他选项,如文件)来快速存储这些数据。 MondoDB 或 Cassandra 是好的选择吗?什么语言会好? Java 是否足够快以从内存中读取数据并存储在数据库中,或者 C 是更好的选择?

是否需要集群解决方案?

谢谢。

每天大约有 700~800 MB 的数据 - 所以如果您需要查询它 - 一个月后 - 将扫描 25 GB。

在这种情况下,您可能需要 clustered/sharded 解决方案来分担负载。

由于数据会不断增长 - 您需要一个动态解决方案,它可以使用 mongoDB 分片和副本集来跨越负载和管理数据分布。

根据您的描述,我建议使用 Sqlite 数据库。它重量很轻,比 MySQL 和 MongoDb.

更快

请参阅此处 benchmark