是否有强大的时间序列数据数据库系统? [英] Is there a powerful database system for time series data?

查看:12
本文介绍了是否有强大的时间序列数据数据库系统?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在多个项目中,我们必须存储、汇总、评估简单的测量值.一行通常由时间戳、值和该值的一些属性组成.在某些应用程序中,我们希望每秒存储 1000 个值甚至更多.这些值不仅必须以相同的速率插入,还必须以相同的速率删除,因为值的生命周期被限制为一年左右(在不同的聚合步骤中,我们不存储全年的 1000/s).

In multiple projects we have to store, aggregate, evaluate simple measurement values. One row typcially consists of a time stamp, a value and some attributes to the value. In some applications we would like to store 1000 values per second and more. These values must not only be inserted but also deleted at the same rate, since the lifetime of a value is restricted to a year or so (in different aggregation steps, we do not store 1000/s for the whole year).

到目前为止,我们已经开发了不同的解决方案.一种基于Firebird,一种基于Oracle,一种基于一些自制的存储机制.但这些都不是非常令人满意的解决方案.

Until now, we have developped different solutions. One based on Firebird, one on Oracle and one on some self-made storage mechanism. But none of these are very satisfying solutions.

两种 RDBMS 解决方案都无法处理所需的数据流.除此之外,传递值的应用程序(例如设备驱动程序)不能轻易地附加到数据库,插入语句很麻烦.最后,虽然强烈希望有一个数据的 SQL 接口,但典型的评估很难用 SQL 制定并且执行速度很慢.例如.找出上个月所有测量值每 15 分钟带有时间戳的最大值.

Both RDBMS solutions cannot handle the desired data flow. Besides that, the applications that deliver the values (e.g. device drivers) cannot be easily attached to databases, the insert statements are cumbersome. And finally, while having an SQL interface to the data is strongly desired, typical evaluations are hard to formulate in SQL and slow in the execution. E.g. find the maximum value with time stamp per 15 minutes for all measurements during the last month.

自制的解决方案可以处理插入率,并且有一个客户端友好的 API 来做这件事,但它不像查询语言,不能通过某些标准接口被其他应用程序使用,例如用于报告.

The self-made solution can handle the insertion rate and has a client-friendly API to do it, but it has nothing like a query language and cannot be used by other applications via some standard interface e.g. for reporting.

我梦想中最好的解决方案是一个数据库系统:

The best solution in my dreams would be a database system that:

  • 有一个用于非常快速插入的 API
  • 能够以相同的速度删除/截断值
  • 提供标准的 SQL 接口,对典型的时间序列数据提供特定支持

您知道一些接近这些要求的数据库,或者您会以不同的方式解决问题吗?

Do you know some database that comes near those requirements or would you approach the problem in a different way?

推荐答案

大多数其他答案似乎都提到了基于 SQL 的数据库.基于 NoSQL 的数据库在这方面的表现要好得多.

Most other answers seem to mention SQL based databases. NoSQL based databases are far superior at this kind of thing.

一些开源时间序列数据库:

Some Open source time-series databases:

  • https://prometheus.io - Monitoring system and time series database
  • http://influxdb.com/ - time series database with no external dependencies (only basic server is open-source)
  • http://square.github.io/cube/ - Written ontop of MongoDB
  • http://opentsdb.net/ - Written on top of Apache HBase
  • https://github.com/kairosdb/kairosdb - A rewrite of OpenTSDB that also enables using Cassandra instead of Hadoop
  • http://www.gocircuit.org/vena.html - A tutorial on writing a substitute of OpenTSDB using Go-circuits
  • https://github.com/rackerlabs/blueflood - Based on Cassandra
  • https://github.com/druid-io/druid - Column oriented & hadoop based distributed data store

基于云:

这篇关于是否有强大的时间序列数据数据库系统?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆