時系列データベースベンチマークの比較: GridDB、QuestDB、TimescaleDB

この Time Series Benchmark Suite Evaluation of GridDB, QuestDB, TimescaleDB では、3つの時系列データベースのインジェストまたはロード性能を評価することで比較しています。また、時系列データの実世界での分析に使用できるさまざまなユースケースを強調したTSBSで利用可能な5つのクエリを用いてクエリ性能も測定しています。

評価対象となるデータベースには、1つ大きな違いがあります。QuestDBとTimescaleDBは表形式のデータモデルを使用し、GridDBはKey-Containerデータモデルを使用しています。QuestDBとTimescaleDBのデータはすべて1つのテーブルに挿入され、GridDBは各ホストのデータを別々のテーブル(GridDB用語ではコンテナ)に格納します。

各データベース、特にGridDBのKey-Containerデータモデルにカーディナリティがどのように影響するかを検証するため、100、1,000、10,000、100,000ホストのデータセットでロード性能とクエリ性能の両方を評価しました。high-cpu-all、high-cpu-1、lastpoint、single-groupby、double-groupbyのクエリを検証しました。

負荷性能が期待通りでなかったため、tsdb_loadはGridDB用にJavaで再実装しました。JavaはGridDBのネイティブインタフェースであり、Goを含む他の言語バインディングと比較してオーバーヘッドの削減を実現しています。

一般に、GridDBは3つのデータベースの中で最も高速でしたが、より多くのチューニングが必要でした。例外は、各ホストの最新レコードを取得する単純なlastpointクエリでした。この非常にシンプルなクエリは、n台のホストに対してn回実行する必要がありました。

10,000ホストの結果の要約を以下に示します:

3つのデータベースはいずれも、10万ホスト分のDevOpsデータを、各データポイントの間に10秒をおいてリアルタイムで取り込むことができ、このユースケースにとって効果的な取り込みオプションとなっています。QuestDBとTimescaleDBのクエリパフォーマンスの遅さは、リアルタイムの分析が必要な場合には気になりますが、分析を毎晩のバッチジョブとして実行するシナリオでは、十分なパフォーマンスを発揮するでしょう。

詳細な比較は、こちらでご覧いただけます: TSDB_Evaluation_of_GridDB_QuestDB_and_TimescaleDB を参照。

ブログの内容について疑問や質問がある場合は Q&A サイトである Stack Overflow に質問を投稿しましょう。 GridDB 開発者やエンジニアから速やかな回答が得られるようにするためにも "griddb" タグをつけることをお忘れなく。 https://stackoverflow.com/questions/ask?tags=griddb

Leave a Reply

Your email address will not be published. Required fields are marked *