7

我想用 Java 存储数百万个时间序列条目(长时间,双值)。(我们的监控系统目前将每个条目存储在一个大型 mySQL 表中,但性能非常差。)

那里有用java实现的时间序列数据库吗?

4

4 回答 4

6

我希望在这个线程中看到更多的建议。

于 2011-10-07T12:30:08.657 回答
3

由于错误的数据库设计,性能很差。我正在使用 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      |         |               |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+

感谢您的所有回答!

于 2011-11-16T12:55:45.187 回答
1

你可以看看KDB。它主要被金融公司用来获取市场时间序列数据。

于 2011-01-11T08:50:42.927 回答
0

您需要在什么时候处理这​​些数据?

如果您只是保存值以备后用,纯文本文件可能会做得很好,然后再上传到数据库。

于 2011-01-11T08:35:57.163 回答