WhaTapは、ますます多様で複雑なアーキテクチャに変化しているビジネスシステムのパフォーマンスモニタリングソリューションです。さまざまなアーキテクチャから発生する多数のモニタリング指標をリアルタイムで収集、保存するだけでなく、リアルタイムでユーザーに洞察を提供できる必要があります。多くのモニタリングソリューションは、リアルタイムで収集される指標のリポジトリとして市販のRDBMSを使用していますが、速度とスケーラビリティの点で限界があります。WhaTapは、モニタリングデータの性格に合った時系列データベースを独自に開発して使用しており、グローバルサービスから発生するデータまで収容するスケーラビリティと性能を備えています。WhaTapだけの時系列データベースである、MxDBをご紹介します。
WhaTapのデータは時系列データです。時系列データは、一定の時間間隔で収集または記録された一連のデータです。このタイプのデータは、金融、IoT(モノのインターネット)、さまざまな分野でのデータ分析、モニタリングおよび視覚化に広く使用されています。したがって、MxDBには、時系列データベース(TSDB、Time Series Database)の次の特徴があります。
高速データ検索に使用する一般的なツリーベースのインデックスでは、さまざまな機器から注がれる時系列データを分析するパフォーマンスを提供することは困難です。MxDBはデフォルトで時間に基づいてデータを保存します。また、さまざまな種類の保存構造になっており、定期的に発生する数値データ、任意に発生するテキストデータもすべて保存できます。時間データには自動的にインデックスが作成され、データ保存時に分散保存が可能で、データ要求時に時間インデックスの使用と並列処理で高速なパフォーマンスを提供します。
データベースを書く最大の理由は、データに対するさまざまな形式の要求を処理するためのSQL言語を提供することです。MxDBはMXQLという独自のクエリ言語を使用して、ユーザーが柔軟にデータを処理して表示できるようにします。MXQLはSQLと同様の文法であり、既存のデータベースユーザーが大きな困難なしに使用して独自のダッシュボードを作成し、通知基準を作成することができます。
ロールアップ機能は、時間ごとに入力されるデータを分、時単位の別々に保持される統計データを自動的に生成する機能です。MxDBのタグカウントパックは、1分、5分、1時間の統計データを自動的に生成し、長期間チャート照会時に自動的にロールアップされた統計データを選択して照会するため、長時間のデータもすぐに確認できます。また、照会する時間範囲を狭くすると、自動的に詳細ソースデータにアクセスしてドリルダウン(Drill Down)方式のデータ分析を行うことができます。
ほとんどの時系列データベースと同様に、MxDBはトランザクションとデータ更新操作をサポートしません。これは戦略的にコードの複雑さを減らし、処理性能を高め、データの変調性を防止するための理由もあります。
MxDBはプロジェクト、日付、時間ごとにデータを分類して保存するため、次の利点があります。
MxDBは、複数のサーバーに分散構成しても、収集されたデータを1つのサーバーに転送します。このサーバーをプロキシサーバーといいます。 ユーザーまたは機器から単一のプロキシサーバーにデータを転送すると、プロキシサーバーの設定に応じて、後段のデータサーバーにデータが分散転送されます。トランスポートだけでなくデータサーバーを管理するためのコマンドもプロキシサーバーで実行でき、これらの構造はリアルタイムサービスに影響を与えることなくデータを冗長化したり、バックアップまたは回復コマンドを実行したりできます。
1つのデータサーバー(ヤード)を多数のデータサーバーに再分散(シャーディング)できます。データ分散はround robin方式で保存されます。データサーバーを分散すると、分散サーバー間の並列化が可能になり、検索速度がさらに向上します。
MxDBには、リレーショナルデータベースのスキーマ、テーブル、列などのデータストレージ構造もあります。収集する指標の種類に合ったストレージ構造がさまざまに設計されており、迅速なパフォーマンスを提供します。
MxDBに保存されたデータを照会および加工して見ることができる言語でワタップで開発しました。SQLと同様の文法を使用し、上から下にシリアルに処理される構造で学習が簡単です。MXQL コマンドは、LOAD の前後から区別して作成します。LOAD 前のコマンドは LOAD 条件として指定し、LOAD 以降はデータを処理するコマンドを実行します。
MxDBは、WhaTabのモニタリングデータを保存するために2016年から開発されており、今でも機能を追加しています。当初は数値データ中心の保存および処理機能を提供していましたが、現在は多数のアプリケーションで発生するデータ転送ログ処理だけでなく、数万台のサーバーで発生するデータやログを収集できます。今後も迅速な処理構造とアーキテクチャの柔軟性、顧客のニーズに対応し、スマートデバイスがあふれる時代の商用時系列データベースとの競争を期待しています。