我想用 Java 存储数百万个时间序列条目(长时间,双值)。(我们的监控系统目前将每个条目存储在一个大型 mySQL 表中,但性能非常差。)
那里有用java实现的时间序列数据库吗?
我想用 Java 存储数百万个时间序列条目(长时间,双值)。(我们的监控系统目前将每个条目存储在一个大型 mySQL 表中,但性能非常差。)
那里有用java实现的时间序列数据库吗?
我希望在这个线程中看到更多的建议。
由于错误的数据库设计,性能很差。我正在使用 mysql,并且该表具有以下布局:
+-------------+--------------------------------------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------------------------------+------+-----+-------------------+-----------------------------+
| fk_category | smallint(6) | NO | PRI | NULL | |
| method | enum('min','max','avg','sum','none') | NO | PRI | none | |
| time | timestamp | NO | PRI | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
| value | float | NO | | NULL | |
| accuracy | tinyint(1) | NO | | 0 | |
+-------------+--------------------------------------+------+-----+-------------------+-----------------------------+
我的错是一个不合适的索引。添加多列主键后,我的所有查询都快如闪电:
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| job | 0 | PRIMARY | 1 | fk_category | A | 18 | NULL | NULL | | BTREE | | |
| job | 0 | PRIMARY | 2 | method | A | 18 | NULL | NULL | | BTREE | | |
| job | 0 | PRIMARY | 3 | time | A | 452509710 | NULL | NULL | | BTREE | | |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
感谢您的所有回答!
你可以看看KDB。它主要被金融公司用来获取市场时间序列数据。
您需要在什么时候处理这些数据?
如果您只是保存值以备后用,纯文本文件可能会做得很好,然后再上传到数据库。