top of page

Machbase 6.1とInfluxDB 2.7の性能比較

43 分前
読了時間: 3分


はじめに

前回はInfluxDB 1.8.1とMachbaseを比較しました。今回は、当時Linuxのパッケージ管理ツールで標準的に導入されていた1.8系から対象を広げ、Machbase 6.1とInfluxDBのオープンソース版2.7を比較します。


Machbase

Machbaseは、時系列センサーデータの高速な取り込み、検索、集計を目的として設計されたDBMSです。


Raspberry Piのようなエッジ機器、一般的な単一サーバー、複数サーバーのクラスターに対応しています。時系列センサーデータやマシンログを処理するための専用機能とアーキテクチャを備えています。


InfluxDB

InfluxDBはInfluxDataが開発する時系列DBMSで、オープンソース版が提供されています。時系列データ処理で広く利用されている製品の一つです。クラスター機能の提供範囲はエディションによって異なります。


InfluxDBの詳細は公式ドキュメントをご覧ください。


テスト


テスト環境

今回のテストには、次の環境を使用しました。


  • CPU:AMD EPYC 7742、64コア/128スレッド

  • メモリー:256GB

  • ディスク:Samsung NVMe 2TB(PCI Express 3.0 × 4)

  • OS:CentOS Linux 7.8.2003

  • データベース:Machbase 6.1.8 Fog/InfluxDB v2.7.0

テスト上の制約

InfluxDB 2.xでは、1.8系のデータベースという管理単位からバケットと組織へ構成が変わり、トークンによる認証なども導入されました。そのため、この比較で使用していた既存のクライアントやクエリツールをそのまま利用することはできませんでした。従来のSQL形式のテストクエリは、Fluxに書き直して実行しました。

Machbaseについては、既存のテスト結果を使用しています。


取り込み性能のテスト

今回の環境では、InfluxDBを1.8から2.7へ更新すると、リソース使用量が大幅に増加しました。


前回と同様に、次の条件でテストを実施しました。


取り込み性能の結果



テスト機のリソースに余裕があっても、InfluxDBの取り込み性能は以前の約160,000件/秒をやや下回りました。このテスト条件では、バージョン更新による取り込み性能の改善は確認できませんでした。


クエリ性能のテスト

InfluxDB 2.7ではFluxを使用してテストしました。従来のテスト用クエリツールをそのまま使えなかったため、比較対象のSQLクエリをFluxへ変換しました。各クエリは以下のとおりです。


  • Machbase(SQL)/Q1


  • InfluxDB(Flux)/Q1


  • Machbase(SQL)/Q2


  • InfluxDB(Flux)/Q2


  • Machbase(SQL)/Q3


  • InfluxDB(Flux)/Q3


  • Machbase(SQL)/Q4


  • InfluxDB(Flux)/Q4


クエリ性能の結果


実行時間は、それぞれmachsqlとinfluxの実行ツールで測定しました。結果を以下に示します。



テスト結果の比較



レコード数を取得する最初のクエリは実行時間の差が大きいため、残り3つのクエリを別のグラフでも示します。


まとめ

今回の条件では、前回の比較と同様に、Machbaseが取り込み速度とクエリ性能で優位な結果となりました。また、InfluxDB 1.8系から2.7への移行では、今回使用した既存のアプリケーションやクエリを修正する必要がありました。これらは、本稿で扱うバージョン、構成、ワークロードにおける結果です。

Machbaseは、SQLを含む業界標準への対応によって既存プログラムとの互換性を維持しながら、Machbase Neoでの新しいAPIの拡充と継続的な性能改善に取り組んでいきます。


お読みいただき、ありがとうございました。


著者:Machbase CRO シム・グァンフン

 
 
電話
英語
bottom of page