時系列データベース周辺を調査してみた

7月 25, 2014

わりと最近時系列データベースという単語を聞くようになったが、告白すると寝耳に水状態でちょっとあせったので軽く調べてみた(きっかけはこの過去記事)。

時系列データベースとやらは国内だとサーバー監視・モニタリングの分野から広まり始めてる印象だが、元々はセンサーデータ、M2M、IoTといったキーワードと相性がいいものらしい。
(ところで IoT: Internet of Things って日本では直訳調で「モノのインターネット」と言われるが、これだと何のことだかわからん。この言い方じゃ普及しないと思うぞ…)

「時系列データベース」と書いたが、プロダクトによってはデータベースという定義ではなく「データストア」だったり、データプラットフォーム全体を指したり、SaaSだったりいろいろある。細かい定義はさておき、今回は「それっぽいもの」をまとめてを取り上げる。

参考スライドによると、時系列データベース or 類似プロダクトの使途として、以下のようなものが挙げられる。

  • システムメトリックスの保存
  • アクセスログの集計/解析
  • RRDtoolの置き換え
  • MySQLの時系列データ解析の代替


ただリンクの参考スライドはInfluxDBの紹介資料なので、広義にはさらなる用途が見込めると思われる。いわゆるフツーのログ解析だけではなく、金融、医療、その他様々なデバイスを使用する分野でも応用可能なはず。



後でwikiの説明も読んでおくとして….
http://en.wikipedia.org/wiki/Time_series_database



本題。それらしいプロダクトをピックアップして比較してみた。

 
License
Key words
Note
OpenTSDBLGPLv2.1+
GPLv3+
Distributed, Scalable, runs on Hadoop and HBase.
Write with millisecond precision.
SBMサービスのStumbleUponで大量データをマネージするために開発された。
HBase/Hadoop上にデプロイ。
InfluxDBMITDistributed scalable time series db. Horizontally scalable, On disk and in memory, Time-Centric Functions.外部コンポーネントに依存せず、単体で動作する。SQLライクなクエリを使用可能。実装言語はGo。
KairosDBApache License 2.0Fast distributed scalable time series db.OpenTSDBのフォーク。Cassandra, HBase上にデプロイ。元はCassandra用だった。
SiteWhereCPAL 1.0Open Source M2M Integration Platform. Manage device communication,event data.
Big data ready with HBase & MongoDB.
Apache Solr,Hazelcast integration(many more)
M2M, IoTにフォーカスしてるっぽい。
HBase, MongoDB上にデプロイ。
DruidGPL version 2open source infrastructure for real-time exploratory analytics. Fault tolerant, distributed & scalable. Low latency data ingestion.Yahoo!ではStormと組み合わせてデプロイ?アドホッククエリをサポート。
TempoIQ-Backent for sensor analytics.センサーデータ解析に特化したクラウドプラットフォーム。
2014年7月以前はTempoDBという名前だった。
Geras-Scalable time-series database for IoT.IoTにフォーカス。バックエンドにC & RabbitMQ。クラウドサービス?月額課金制。期限に制約のないフリーバージョンも利用可能(SLAなし)。
KDB+-Fast time-series database for real-time and historical data. Run on clusters, grids, clouds, and other large-scale distributed architectures.IoTにフォーカス、医療、金融辺りも視野に入れてる感じ。in-memory 分散RDBっぽい。商用製品だがフリーバージョンあり。


OpenTSDB, KairosDB, SiteWhereのように他のデータストアに依存するもの、InfluxDBのように単体で動作するもの、クラウドサービス、いろいろあり。KDB+はRDBとのことだが、もうリレーショナルだろうがNoSQLだろうがどうでもいい境地になってきた。

補足いくつか。
KinabaのフォークであるビジュアライゼーションツールGrafanaが、最近OpenTSDBに対応した。(GrafanaはこれまでGraphite, InfluxDBで利用可能だった)OpenTSDBがHadoop/HBase上にデプロイする前提であるということは、OpenTSDB経由でHadoopクラスタに格納したデータをGrafanaで可視化できることになる???

どこで読んだか忘れたが、OpenTSDBをHBaseに組み込むことで、行キーの扱いを上手いことやってくれるらしい。つまり、通常はタイムスタンプを普通に行キーにすると書き込みがスケールできないのでNGですが、OpenTSDBを使うとよしなにハッシュ値を付与してくれたり、するのかな。再度調べるか、自分で弄ってみないとなんとも。

KairosDBにおけるCassandraとHBaseの違いは以下。

KairosDB supports millisecond granularity if you are using Cassandra. The HBase data store only supports a granularity of seconds.


Garesの技術概要は以下参照。
Gares Overview



やばい、全部いじってみたい。あ、タダで使えるものはね。
軽く調べるどころか、それどころじゃなくなってきたので今日はもう寝る。