База данных временных рядов для Java? - PullRequest
7 голосов
/ 11 января 2011

Я хочу хранить миллионы записей временных рядов (длинное время, двойное значение) с помощью Java. (Наша система мониторинга в настоящее время хранит каждую запись в большой таблице mySQL, но производительность очень низкая.)

Существуют ли базы данных временных рядов, реализованные в java?

Ответы [ 4 ]

6 голосов
/ 07 октября 2011

Я надеюсь увидеть дополнительные предложенияв этой теме.

3 голосов
/ 16 ноября 2011

Производительность была плохой из-за неправильного дизайна базы данных. Я использую 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      |         |               |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+

Спасибо за все ваши ответы!

1 голос
/ 11 января 2011

Вы можете взглянуть на KDB .Он в основном используется финансовыми компаниями для получения рыночных данных временных рядов.

0 голосов
/ 11 января 2011

Что вам нужно делать с данными и когда?

Если вы просто сохраняете значения для последующего использования, простой текстовый файл может сработать, а затем загрузить его в базу данных.

...