このトピックでは、LindormTSDB のデータモデルと、データモデルに関連する用語について説明します。
用語
IoT シナリオ、アプリケーション監視シナリオ、産業用インターネットシナリオなど、時系列データが使用される典型的なシナリオでは、データソースは特定のサイクルに基づいて時系列データを一定の速度で生成します。時系列データの行は、タグ、タイムスタンプ、フィールドなどの要素を使用して記述されます。同じ特性を持つデータは同じテーブルに格納されます。次の図は、これらの要素を示しています。
要素 | 説明 |
テーブル | 時系列テーブルには、同じタイプのデータが格納されます。たとえば、大気質センサーによって生成された監視データを格納するための時系列テーブルを作成できます。 |
タグ | タグは、データソースを記述するために使用されます。ほとんどの場合、タグ値は時間の経過とともに変化しません。たとえば、センサーの ID やセンサーがデプロイされている地域などの情報に基づいて、センサーのタグを作成できます。 LindormTSDB のデータベースはタグを自動的にインデックス化し、多次元的にタグに基づいてデータをクエリできます。タグは、タグキーとタグ値で構成されます。タグキーとタグ値は STRING データ型である必要があります。 時系列テーブルを定義する際には、テーブルの主キーとしてタグ列を指定することにより、複数のノードでデータシャーディングが実行されるルールを明示的に指定できます。このようにして、ビジネスのパフォーマンスを向上させることができます。 |
タイムスタンプ | タイムスタンプは、データ行が生成された時点を示します。 LindormTSDB にデータを書き込むときに、データのタイムスタンプを指定できます。システムは、テーブルに書き込まれたデータのタイムスタンプを自動的に生成することもできます。 |
フィールド | フィールドは、データソースのメトリックを記述します。ほとんどの場合、フィールド値は時間の経過とともに変化します。たとえば、温度や湿度などの情報に基づいて、センサーのフィールドを作成できます。対応する時系列テーブルが作成される前に、フィールド列の固定スキーマを作成する必要はありません。ビジネスの実行中にフィールド列を追加または削除できます。フィールドは、フィールドキーとフィールド値で構成されます。フィールドキーは STRING データ型である必要があります。フィールド値でサポートされているデータ型の詳細については、データ型をご参照ください。 |
データポイント | データポイントは、特定の時点でデータソースによって生成されるフィールド値です。データベースでデータをクエリしたり、データベースにデータを書き込んだりする際に、データポイントの数が統計メトリックとして使用されます。 |
時系列 | 時系列は、データソースに指定したメトリックに基づいて生成されます。メトリックの値は時間の経過とともに変化します。時系列はタグによって決定されます。時系列データは、ダウンサンプリング、集計、補間などの操作に基づいて計算できます。時系列データは、合計集計関数、カウント集計関数、最大集計関数、最小集計関数など、複数の関数を使用して集計できます。操作は、時系列のデータに基づいて実行されます。データベースはデータを格納する際に、同じ時系列のデータを同じテーブルに格納します。これは、時系列データへのアクセス効率を高め、時系列データ圧縮における LindormTSDB をサポートするのに役立ちます。 時系列テーブルでは、時系列は同じタグ値を持つデータ行で構成されます。 |
LindormTSDB データベースは、TTL ベースの管理メカニズムを提供し、集計、ダウンサンプリング、補間など、さまざまなデータ操作をサポートします。
操作 | 説明 |
集計 | 集計とは、1 つ以上の時系列のデータポイントをグループ化、カウント、合計などの操作を指します。 |
ダウンサンプリング | クエリの時間範囲が広く、生データのサンプリングレートが高い場合は、ダウンサンプリングを実行してクエリの表示精度を下げることができます。たとえば、生データが秒単位でサンプリングされている場合、クエリでダウンサンプリングを実行して、データを時間単位でサンプリングできます。このようにして、結果セットのデータポイントの数を減らすことができます。 |
補間 | 時系列の特定の時間枠でデータポイントが収集されない場合は、補間を実行して値を入力できます。 |
TTL | 有効期間 (TTL) は、データが保持される有効期間です。データの有効期限が切れると、データは削除されます。デフォルトでは、データは永続的に保持されます。 |
サンプルシナリオ
風力発電所には複数のインテリジェント風力タービンがあります。 Wind-generators という名前のテーブルが作成され、風力タービンに関する情報が格納されます。タグは風力タービンを記述するために使用されます。タグには、ID、モデル、メーカー が含まれます。各風力タービンは、電力 や 風速 の値などのフィールド値を報告します。フィールド値は、LindormTSDB のクラウドデータベースにリアルタイムで書き込まれます。
次の図は、前のシナリオで使用された風力タービンに対応するデータを示しています。
LindormTSDB データベースは、高並列書き込みスループットをサポートし、高い圧縮率を提供し、以下のタイプのクエリの要件を満たすことができます。
指定された時系列の指定された時間範囲内の指定されたメトリックのデータポイントをクエリできます。
たとえば、
7AD45ECという ID の風力タービンの風速の値を、2020-10-24T00:00:00Z から 2020-10-24T00:30:00Zまでの 30 分の時間範囲内でクエリできます。指定された時系列の指定された時間範囲内の複数のメトリックのデータポイントをクエリできます。
たとえば、ID が
7AD45ECの風力タービンの電力と風速の値を2020-10-24T00:00:00Z から 2020-10-25T00:00:00Zまでクエリし、5 分の粒度で値をダウンサンプリングできます。指定された時系列の指定された時間範囲内の指定されたメトリックのデータポイントを集計できます。
たとえば、ID が
7AD45ECの風力タービンの電力の平均値を2020-10-24T00:00:00Z から 2020-10-24T00:30:00Zまでクエリするために集計を実行できます。指定された時系列の複数のメトリックの最新値をクエリできます。
たとえば、ID が
7AD45ECの風力タービンの電力と風速の最新値をクエリできます。タグに基づいて複数の時系列のデータポイントを集計クエリできます。
たとえば、
KingWindに基づいて2020-10-24T00:00:00Zにおける風速の平均値をクエリするために集計クエリを実行できます。