web-dev-qa-db-ja.com

時系列データ用の強力なデータベースシステムはありますか?

複数のプロジェクトでは、単純な測定値を保存、集計、評価する必要があります。通常、1つの行はタイムスタンプ、値、および値の属性で構成されます。アプリケーションによっては、1秒あたり1000個以上の値を保存したい場合があります。値の有効期間は1年程度に制限されているため、これらの値は挿入するだけでなく、同じレートで削除する必要があります(異なる集計ステップでは、年間を通じて1000/sを保存しません)。

これまで、さまざまなソリューションを開発してきました。 1つはFirebirdに基づいており、もう1つはOracleに基づいています。しかし、これらのどれも非常に満足のいくソリューションではありません。

両方のRDBMSソリューションは、目的のデータフローを処理できません。それに加えて、値を提供するアプリケーション(デバイスドライバーなど)をデータベースに簡単に接続することはできません。挿入ステートメントは扱いにくいものです。そして最後に、データへのSQLインターフェースを持つことが強く望まれていますが、一般的な評価はSQLで定式化するのが難しく、実行が遅くなります。例えば。先月のすべての測定について、15分ごとのタイムスタンプで最大値を見つけます。

自作のソリューションは挿入率を処理でき、それを行うためのクライアントフレンドリーなAPIを備えていますが、クエリ言語のようなものはなく、標準インターフェースを介して他のアプリケーションで使用することはできません。レポート用。

私の夢の中で最高の解決策は、次のようなデータベースシステムです。

  • 非常に高速な挿入のためのAPIがあります
  • 同じ速度で値を削除/切り捨てることができます
  • 典型的な時系列データに対する特定のサポートを備えた標準SQLインターフェースを提供します

これらの要件に近いデータベースを知っていますか、それとも別の方法で問題に取り組みますか?

62
Kit Fisto

他のほとんどの答えは、SQLベースのデータベースに言及しているようです。 NoSQLベースのデータベースは、この種の点ではるかに優れています。

いくつかのオープンソース時系列データベース:

クラウドベース:

42
Joakim

influxdb ::外部依存関係のないオープンソースの分散時系列データベース。

8
A.N.

IBMを考慮してください Informix Dynamic Server with TimeSeries DataBlade。

ただし、これは作業中の極端なデータレートです。 (CERNの亜原子物理学には至っていませんが、その一般的な方向に向かっています。)


公正な開示:私はIBMのInformix DBMSで働いていますが、TimeSeries DataBlade自体ではありません。

2
1
Mitch Wheat

時系列データにHDF5を試すことができます。このようなアプリケーションには非常に高速です。

1
shoonya

ジョナサンレフラーが言ったように、Informix Timeseries機能を試す必要があります。 Informixのすべてのエディションに追加料金なしで含まれています。サポートするTimeSeries関数をご覧ください。

IBM Informix時系列SQLルーチン

SQL関数または仮想ビューインターフェイスを介してデータにアクセスできます。ビューに挿入することもできます。

0
GeorgeStone