IoT(Internet of Things) システムでは、各種センサーから、秒以下の周期で取得された、大量の時系列データを取り扱います。このようなデータを保持するシステムとして、時系列データベースは求められています。そこで、代表的な時系列データベースの InfluxDB, TimescaleDB, Azure Cosmos DB, GridDB について、調査して比較しました。
調査項目
時系列データベースの調査項目は以下の通りです。
調査項目 | 調査内容 |
---|---|
対応プログラム言語 | アプリケーションからデータベースを操作可能なプログラム言語 |
クエリ言語 | データベースに対する問い合わせ言語。主にSQLの調査 |
データ圧縮 | 時系列データの圧縮機能の有無 |
データ自動集計 | サマリなどデータを自動的に集計する機能の有無 |
期限解放機能 | 一定の期間を過ぎたデータを自動的に削除する機能の有無 |
時系列分析関数 | サンプリング機能などの時系列データ特有の関数 |
インデックス | 使用可能なインデックスの種類及び特徴 |
トランザクション | トランザクションの特性。ACID特性など。 |
ストアドプロシジャ | ストアドプロシージャ/ファンクションの有無、記述言語 |
トリガー | データベーストリガーの有無 |
dockerコンテナ | dockerコンテナイメージが提供されているかどうか |
性能拡張 | スケールアウトを中心にどのように性能拡張するのかを調査。主にシャーディング機能の調査。 |
高可用性 | 障害発生時に継続動作するためのメカニズムについて調査。主にレプリケーション機能の調査。 |
運用 | 運用時に必要なバックアップや監視ツールについて調査 |
通信暗号化 | DBサーバとクライアント間の通信暗号化機能の有無 |
DB格納領域の暗号化 | DBファイルなどの格納領域の暗号化機能の有無 |
認証機能 | ユーザーを識別するような認証機能の有無 |
権限管理 | DBオブジェクトに対する権限付与する機能の有無 |
DB監査 | 操作の履歴である監査証跡(ログ)機能の有無 |
調査結果比較
以下は、調査結果を比較した表です。
調査項目 | InfluxDB (OSS) |
InfluxDB (製品版) |
Timescale DB(OSS) |
Timescale DB(製品版) |
CosmosDB | GridDB (OSS) |
GridDB (製品版) |
---|---|---|---|---|---|---|---|
費用 | 〇 | X | 〇 | X | X | 〇 | X |
対応プログラム言語 | 〇 | 〇 | 〇 | 〇 | △ | 〇 | 〇 |
クエリ言語 | △ | △ | 〇 | 〇 | 〇 | 〇 | 〇 |
データ圧縮 | 〇 | 〇 | 〇 | 〇 | X | 〇 | 〇 |
データ自動集計 | 〇 | 〇 | 〇 | 〇 | △ | X | X |
期限解放機能 | 〇 | 〇 | △ | 〇 | 〇 | 〇 | 〇 |
時系列分析関数 | ◎ | ◎ | 〇 | 〇 | △ | 〇 | 〇 |
インデックス | 〇 | 〇 | 〇 | 〇 | 〇 | 〇 | 〇 |
トランザクション | X | X | 〇 | 〇 | 〇 | △ | △ |
ストアドプロシジャ | X | X | ◎ | ◎ | △ | X | X |
トリガー | X | X | 〇 | 〇 | △ | 〇 | 〇 |
dockerコンテナ | 〇 | X | 〇 | X | △ | 〇 | △ |
性能拡張 | X | 〇 | △ | 〇 | 〇 | ◎ | ◎ |
高可用性 | X | 〇 | 〇 | 〇 | ◎ | ◎ | ◎ |
運用 | △ | △ | 〇 | 〇 | ◎ | X | 〇 |
通信暗号化 | 〇 | 〇 | 〇 | 〇 | 〇 | X | 〇 |
DB格納領域の暗号化 | X | X | 〇 | 〇 | 〇 | X | X |
認証機能 | △ | △ | 〇 | 〇 | 〇 | △ | 〇 |
権限管理 | △ | △ | 〇 | 〇 | 〇 | △ | △*1 |
DB監査 | X | X | 〇 | 〇 | 〇 | X | X |
*1 : 2021年度下期に強化予定 |
詳細の調査結果は以下に掲載しています。
まとめ
時系列データに特化した機能をフル活用したい場合、InfluxDB か GridDB、時系列機能とそれ以外の機能(RDBMS)をバランス良く使いたい場合、TimescaleDB、マネージドサービスを求める場合、Azure Cosmos DB という選択肢が考えられます。ただし、Azure Cosmos DB が時系列データを上手く扱えるのかについては疑問があります。
また、無償でレプリケーションやシャーディングなどの機能を求める場合、TimescaleDB か GridDB を選択することになります。
日本国内でのサポートを重視するのであれば、製品版の GridDB しかありません。
掲載内容は、(株)東芝 デジタルイノベーションテクノロジーセンター及びソフトウェア技術センターの見解です。コメント等は広くご意見を頂ければ幸いです。
また、記述について誤りがあったり、気になることがあれば、編集リクエストやコメントでフィードバックしていただけると助かります。