すべてのプロダクト
Search
ドキュメントセンター

Tair (Redis® OSS-Compatible):TS

最終更新日:Sep 12, 2024

TairTSは、Redisモジュールの上に展開される時系列データ構造です。 このデータ構造は、低レイテンシで同時並行性の高いメモリ内読み取りおよび書き込みアクセスを提供し、高速フィルタリングおよび集約クエリをサポートし、ストレージ機能とコンピューティング機能の両方を備えています。 TairTSは時系列データの処理を簡素化し、パフォーマンスを大幅に向上させます。

概要

RedisTimeSeriesと比較して、TairTSはより豊富な機能セットを提供します。

  • Pkeyレベルの集計。 TairTSは、追加のハッシュレイヤーとしてpkey構造を導入して、複数のタイムラインにわたる集計クエリを容易にします。

    たとえば、foo pkeyのメトリック名とデバイスIDにちなんで名前が付けられた複数のskeyを作成できます。 例: 温度: 1、圧力: 1、および距離: 1。 次に、TairTSが提供する EXTS.S.MRANGEコマンドを実行して、デバイスIDが1のskeysなどのカスタムモニタリングデータを取得できます。 RedisTimeSeriesを使用して同様の機能を実装する場合は、ビジネスロジックコードに多数の集計クエリを挿入する必要があります。

    図 1. TairTSとRedisTimeSeriesTairTS数据结构图の比較

    次のセクションでは、TairTSデータの構造について説明します。

    • Pkey: タイムラインのセットを表すTairTSデータの一部。 pkeyは複数のskeyで構成できます。

    • Skey: タイムライン。 skeyは、固定容量を持つ複数のチャンクで構成できます。 各skeyに1つ以上の異なるラベルを付けることができます。 次に、skeyをラベルでフィルタリングできます。

    • チャンク: データチャンク。 チャンクは複数のデータポイントを格納できます。

      • チャンクは、最大256データポイントのカスタム容量を持つことができます。

      • チャンクは、データ削除の最小単位として機能します。 チャンク内のすべてのデータポイントの有効期限が切れた後、チャンクは削除されます。

    • DataPoint: タイムスタンプとDOUBLE型の値を含む時系列データ。

  • ダウンサンプリング、属性フィルタリング、バッチクエリ、複数の数値関数の使用などのシナリオでクエリを集約します。 この機能は、バッチクエリと集約を単一のコマンドに統合して、ネットワークの相互作用を減らし、ミリ秒以内に応答を提供します。

  • 履歴時系列データの更新または蓄積。

  • skeyのtime-to-live (TTL) の設定。 TTLは各skeyに設定でき、データを自動的に消去し、事前定義されたタイムウィンドウに基づいてタイムラインを進めることができます。

  • ゴリラアルゴリズムによる効率的な圧縮。 TairTSは、Gorilla圧縮アルゴリズムと特定のストレージ技術を使用して、ストレージコストを大幅に削減します。

典型的なシナリオ

  • モニタリングデータの保存とコンピューティング

  • アプリケーションパフォーマンス管理 (APM) の1秒あたりのモニタリング

  • IoTのためのデータ分析と処理

  • スロットリングシナリオでのリスク管理

  • ホットニュースのキャッシング

  • タイムウィンドウ関数の使用

ベストプラクティス

TairTSを使用したきめ細かいモニタリングの実装

前提条件

管理するインスタンスは、Tair DRAMベースのインスタンスです。

インスタンスがRedis 5.0と互換性のあるDRAMベースのインスタンスである場合、インスタンスのマイナーバージョンは1.7.20以降である必要があります。

説明

最新のマイナーバージョンは、より多くの機能とより高い安定性を提供します。 インスタンスを最新のマイナーバージョンに更新することを推奨します。 詳細については、「インスタンスのマイナーバージョンの更新」をご参照ください。 お使いのインスタンスがクラスターインスタンスまたは読み書き分離インスタンスの場合、すべてのコマンドを期待どおりに実行できるように、インスタンスのプロキシノードを最新のマイナーバージョンに更新することを推奨します。

注意事項

  • 管理するTairTSデータは、Tairインスタンスに保存されます。

  • TairTSは、リアルタイムの同時実行性の高い書き込みとクエリをサポートしますが、ストレージ容量は限られています。 期限切れのデータがタイムリーに削除されるように、TairTSデータにTTLを指定することを推奨します。

  • ストレージコストを削減するには、次の方法でCHUNK_SIZEパラメーターを指定することを推奨します。

    • skeyに平均して5,000を超えるデータポイントが含まれている場合は、CHUNK_SIZEを256に設定します。 デフォルト値です。

    • skeyに含まれるデータポイントが平均で5,000未満の場合、CHUNK_SIZEを次の式を使用して計算される値に設定します。CHUNK SIZE=skeyの平均データポイント数 /20。 skeyに平均1,000個のデータポイントが含まれている場合は、CHUNK_SIZEを50に設定します。

重要

変更を破る:

2024年7月22日、Redis 6.0と互換性のある24.7.0.0バージョンのTair DRAMベースのインスタンスがリリースされました。 このバージョンでは、ts-auto-del-empty-skey-enableという新しいパラメーターが導入されます。これはデフォルトでyesに設定されています。 これは、skeyのすべてのデータポイントが期限切れになると、skeyが自動的に削除されることを示します。 ただし、Redis 6.0と互換性のあるTair DRAMベースのインスタンスの24.7.0.0より前のバージョンでは、データポイントが期限切れになるskeyはデフォルトで削除されません。

Redis 6.0と互換性のあるTair DRAMベースのインスタンスでTairTSを使用する前に、インスタンスをバージョン24.7.0.0以降にアップグレードし、ts-auto-del-empty-skey-enableパラメーター設定を確認して手動で調整することを推奨します。 これにより、デフォルトの動作の変更によるビジネスへの潜在的な影響を防ぐことができます。

サポートされるコマンド

表 1. TairTSコマンド

データ型

コマンド

構文

説明

基本的な書き込み操作

EXTS.P.CREATE

EXTS.P.CREATE Pkey

TairTS pkeyを作成します。 同じ名前のpkeyがすでに存在する場合、pkeyは作成できません。

EXTS.S.CREATE

EXTS.S.CREATE Pkey Skey [DATA_ET時間] [CHUNK_SIZEサイズ] [圧縮なし] [LABELS label1 val1 label2 val2 ...]

指定されたpkeyにskeyを作成します。 pkeyが存在しない場合は、自動的に作成されます。 同じ名前のskeyが既に存在する場合、skeyは作成できません。

説明

有効期限や圧縮を有効にするかどうかなど、skeyのパラメーターを指定できます。

EXTS.S.ALTER

EXTS.S.ALTER Pkey Skey [DATA_ET時間]

指定したskeyのメタデータを変更します。 DATA_ET時間値のみを変更できます。

EXTS.S.ADD

EXTS.S.ADD Pkey Skey ts value [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...]

データポイントをskeyに挿入します。 pkeyまたはskeyが存在しない場合、pkeyまたはskeyは自動的に作成されます。 skeyのパラメーター (有効期限や圧縮を有効にするかどうかなど) は、skeyが自動的に作成された場合にのみ有効になります。

EXTS.S.MADD

EXTS.S.MADD Pkey keynumber Skey ts value [Skey ts value ...] [DATA_ET時間] [CHUNK_SIZEサイズ] [圧縮なし] [LABELS label1 val1 ...]

データポイントをpkeyの複数のskeyに挿入します。 pkeyまたはskeyが存在しない場合、pkeyまたはskeyは自動的に作成されます。 有効期限や圧縮を有効にするかどうかなどのskeyのパラメーターは、skeyが自動的に作成された場合にのみ有効になります。

EXTS.S.INCRBY

EXTS.S.INCRBY Pkey Skey ts value [DATA_ET time] [CHUNK_SIZEサイズ] [圧縮されていない] [LABELS label1 val1 ...]

データポイントをskeyに挿入します。 挿入するデータポイントの値が正の場合、skeyに存在する最後のデータポイントの値に挿入された値が加算されます。 データ点が負の値を有する場合、挿入された値は、skeyに存在する最後のデータ点の値から減算される。 pkeyまたはskeyが存在しない場合、pkeyまたはskeyは自動的に作成されます。 デフォルトの初期値は0です。 skeyのパラメーター (有効期限や圧縮を有効にするかどうかなど) は、skeyが自動的に作成された場合にのみ有効になります。

EXTS.S.MINCRBY

EXTS.S.MINCRBY Pkey keynumber Skey ts value [Skey ts value ...] [DATA_ET時間] [CHUNK_SIZEサイズ] [圧縮なし] [LABELS label1 val1 ...]

データポイントをpkeyの複数のskeyに挿入します。 挿入するデータポイントの値が正の場合、挿入された値は各skeyに存在する最後のデータポイントの値に加算されます。 データ点が負の値を有する場合、挿入された値は、各skeyに存在する最後のデータ点の値から減算される。 pkeyまたはskeyが存在しない場合、pkeyまたはskeyは自動的に作成されます。 デフォルトの初期値は0です。 有効期限や圧縮を有効にするかどうかなどのskeyのパラメーターは、skeyが自動的に作成された場合にのみ有効になります。

EXTS.S.DEL

EXTS.S.DEL Pkey Skey

skeyとskey内のすべてのデータポイントをpkeyから削除します。

基本的な読み取り操作

EXTS.S.GET

EXTS.S.GET Pkey Skey

指定したskeyの最後のデータポイントの値を照会します。

EXTS.S.INFO

EXTS.S.INFO Pkey Skey

指定したskeyのメタデータを照会します。 メタデータは、データポイントの数、最後のデータポイントのタイムスタンプおよび値、およびskeyのラベル情報を含む。

EXTS.S.QUERYINDEX

EXTS.S.QUERYINDEX Pkey filter1 [filter2 ...]

pkeyで指定されたフィルター条件を満たすskeysを照会します。

集計操作

EXTS.S.RANGE

EXTS.S.RANGE Pkey Skey fromTs toTs [MAXCOUNT count] [AGGREGATION aggregationType timeBucket]

指定された時間範囲内にskeyに存在するデータポイントの数を照会します。 時間範囲は、閉じた間隔である。

EXTS.S.MRANGE

EXTS.S.MRANGE Pkey fromTs toTs [MAXCOUNT count] [AGGREGATION aggregationType timeBucket] [WITHLABELS] FILTER filter1 [filter2 ...]

指定された時間範囲内に複数のskeyで指定されたフィルター条件を満たすデータポイントの数を照会します。 時間範囲は、閉じた間隔である。

EXTS.P.RANGE

EXTS.P.RANGE Pkey fromTs toTs pkeyAggregationType pkeyTimeBucket [MAXCOUNTカウント] [AGGREGATION aggregationType timeBucket] [WITHLABELS] FILTER filter1 [filter2 ...]

指定されたフィルター条件を満たすpkeyのデータポイントを集計します。 集約に1つ以上のskeyを指定した場合、EXTS.S.MRANGEコマンドを使用した場合と同じ方法でskeyが最初に集約されます。 次に、skey集計結果に基づいてpkeysが集計されます。

同時書き込み操作

EXTS.S.RAW_MODIFY

EXTS.S.RAW_MODIFY Pkey Skey ts value [DATA_ET time] [CHUNK_SIZEサイズ] [圧縮されていない] [LABELS label1 val1 ...]

指定したskeyのデータポイントの値を変更します。 pkeyまたはskeyが存在しない場合、pkeyまたはskeyは自動的に作成されます。 skeyのパラメーター (有効期限や圧縮を有効にするかどうかなど) は、skeyが自動的に作成された場合にのみ有効になります。

EXTS.S.RAW_MMODIFY

EXTS.S.RAW_MMODIFY Pkeyキー番号Skey ts value [Skey ts value ...] [DATA_ET時間] [CHUNK_SIZEサイズ] [圧縮なし] [LABELS label1 val1 ...]

複数のskeysのデータポイントの値を一度に変更します。 pkeyまたはskeyが存在しない場合、pkeyまたはskeyは自動的に作成されます。 有効期限や圧縮を有効にするかどうかなどのskeyのパラメーターは、skeyが自動的に作成された場合にのみ有効になります。

EXTS.S.RAW_INCRBY

EXTS.S.RAW_INCRBY Pkey Skey ts value [DATA_ET time] [CHUNK_SIZEサイズ] [圧縮されていない] [LABELS label1 val1 ...]

指定したskeyのデータポイントの値を変更します。 値を変更するためのインクリメントまたはデクリメントを指定できます。 pkeyまたはskeyが存在しない場合、pkeyまたはskeyは自動的に作成されます。 デフォルトの初期値は0です。 skeyのパラメーター (有効期限や圧縮を有効にするかどうかなど) は、skeyが自動的に作成された場合にのみ有効になります。

EXTS.S.RAW_MINCRBY

EXTS.S.RAW_MINCRBY Pkeyキー番号Skey ts value [Skey ts value ...] [DATA_ET時間] [CHUNK_SIZEサイズ] [圧縮なし] [LABELS label1 val1 ...]

複数のskeysのデータポイントの値を一度に変更します。 値を変更するためのインクリメントまたはデクリメントを指定できます。 pkeyまたはskeyが存在しない場合、pkeyまたはskeyは自動的に作成されます。 有効期限や圧縮を有効にするかどうかなどのskeyのパラメーターは、skeyが自動的に作成された場合にのみ有効になります。

汎用操作

DEL

DELキー [キー...]

1つ以上のTairTSキーを削除します。

説明

このトピックで使用されるコマンド構文の規則を次に示します。

  • Uppercase keyword: commandキーワードを示します。

  • イタリックテキスト: 変数を示します。

  • [options]: 囲まれたパラメータがオプションであることを示します。 括弧で囲まれていないパラメータを指定する必要があります。

  • A | B: 縦棒 (|) で区切られたパラメータが相互に排他的であることを示します。 指定できるパラメーターは1つだけです。

  • ...: このシンボルの前にあるパラメーターを繰り返し指定できることを示します。

EXTS.P.CREATE

項目

説明

構文

EXTS.P.CREATE Pkey

時間の複雑さ

O(1)

コマンド説明

TairTS pkeyを作成します。 同じ名前のpkeyがすでに存在する場合、pkeyは作成できません。

パラメーター

  • Pkey: このコマンドを実行して管理するpkeyの名前。

Output

  • 操作が成功した場合、OKが返されます。

  • それ以外の場合、エラーメッセージが返されます。

例:

サンプルコマンド:

EXTS.P.CREATE foo

サンプル出力:

OK

EXTS.S.CREATE

項目

説明

構文

EXTS.S.CREATE Pkey Skey [DATA_ET時間] [CHUNK_SIZEサイズ] [圧縮なし] [LABELS label1 val1 label2 val2 ...]

時間の複雑さ

O(1)

コマンド説明

指定されたpkeyにskeyを作成します。 pkeyが存在しない場合は、自動的に作成されます。 同じ名前のskeyが既に存在する場合、skeyは作成できません。

説明

有効期限や圧縮を有効にするかどうかなど、skeyのパラメーターを指定できます。

パラメーター

  • Pkey: このコマンドを実行して管理するpkeyの名前。

  • Skey: skeyの名前。

  • DATA_ET time: データポイントの相対的な有効期限。 単位:ミリ秒。 このパラメーターはデフォルトでは空のままです。これは、データポイントが期限切れにならないことを示します。

  • CHUNK_SIZE: チャンクに格納できるデータポイントの数。 デフォルト値: 256 有効な値: 1 ~ 256

  • UNCOMPRESSED: skeyの圧縮を無効にすることを指定します。 このパラメーターはデフォルトでは空のままです。これは、skeyの圧縮が有効になっていることを示します。

  • ラベル: skeyのラベル。 1つ以上のラベルと値のペアを指定できます。 例: LABELS sensor_id 1

Output

  • 操作が成功した場合、OKが返されます。

  • それ以外の場合、エラーメッセージが返されます。

例:

サンプルコマンド:

EXTS.S.CREATE foo temperature DATA_ET 10000000 LABELS sensor_id 1

サンプル出力:

OK

EXTS.S.ALTER

項目

説明

構文

EXTS.S.ALTER Pkey Skey [DATA_ET時間]

時間の複雑さ

O(1)

コマンド説明

指定したskeyのメタデータを変更します。 DATA_ET時間値のみを変更できます。

パラメーター

  • Pkey: このコマンドを実行して管理するpkeyの名前。

  • Skey: skeyの名前。

  • DATA_ET time: データポイントの相対的な有効期限。 単位:ミリ秒。 このパラメーターはデフォルトでは空のままです。これは、データポイントが期限切れにならないことを示します。

Output

  • 操作が成功した場合、OKが返されます。

  • それ以外の場合、エラーメッセージが返されます。

例:

サンプルコマンド:

EXTS.S.ALTER foo temperature DATA_ET 100000

サンプル出力:

OK

EXTS.S.ADD

項目

説明

構文

EXTS.S.ADD Pkey Skey ts value [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...]

時間の複雑さ

O(1)

コマンド説明

データポイントをskeyに挿入します。 pkeyまたはskeyが存在しない場合、pkeyまたはskeyは自動的に作成されます。 skeyのパラメーター (有効期限や圧縮を有効にするかどうかなど) は、skeyが自動的に作成された場合にのみ有効になります。

パラメーター

  • Pkey: このコマンドを実行して管理するpkeyの名前。

  • Skey: skeyの名前。

  • ts: データポイントのUNIXタイムスタンプ。 単位:ミリ秒。 * の値を使用して、現在の時刻のタイムスタンプを指定できます。

  • value: データポイントの値。 値は倍精度浮動小数点数でなければなりません。

  • DATA_ET time: データポイントの相対的な有効期限。 単位:ミリ秒。 このパラメーターはデフォルトでは空のままです。これは、データポイントが期限切れにならないことを示します。

  • CHUNK_SIZE: チャンクに格納できるデータポイントの数。 デフォルト値: 256 有効な値: 1 ~ 256

  • UNCOMPRESSED: skeyの圧縮を無効にすることを指定します。 このパラメーターはデフォルトでは空のままです。これは、skeyの圧縮が有効になっていることを示します。

  • ラベル: skeyのラベル。 1つ以上のラベルと値のペアを指定できます。 例: LABELS sensor_id 1

Output

  • 操作が成功した場合、OKが返されます。

  • それ以外の場合、エラーメッセージが返されます。

例:

サンプルコマンド:

EXTS.S.ADD foo temperature * 30.5 DATA_ET 1000000 LABELS sensor_id 1

サンプル出力:

OK

EXTS.S. マッド

項目

説明

構文

EXTS.S.MADD Pkey keynumber Skey ts value [Skey ts value ...] [DATA_ET時間] [CHUNK_SIZEサイズ] [圧縮なし] [LABELS label1 val1 ...]

時間の複雑さ

ここで、nはskeyの数を示す。

コマンド説明

データポイントをpkeyの複数のskeyに挿入します。 pkeyまたはskeyが存在しない場合、pkeyまたはskeyは自動的に作成されます。 有効期限や圧縮を有効にするかどうかなどのskeyのパラメーターは、skeyが自動的に作成された場合にのみ有効になります。

パラメーター

  • Pkey: このコマンドを実行して管理するpkeyの名前。

  • keynumber: skeyの数。

  • Skey: skeyの名前。

  • ts: データポイントのUNIXタイムスタンプ。 単位:ミリ秒。 * の値を使用して、現在の時刻のタイムスタンプを指定できます。

  • value: データポイントの値。 値は倍精度浮動小数点数でなければなりません。

  • DATA_ET time: データポイントの相対的な有効期限。 単位:ミリ秒。 このパラメーターはデフォルトでは空のままです。これは、データポイントが期限切れにならないことを示します。

  • CHUNK_SIZE: チャンクに格納できるデータポイントの数。 デフォルト値: 256 有効な値: 1 ~ 256

  • UNCOMPRESSED: skeyの圧縮を無効にすることを指定します。 このパラメーターはデフォルトでは空のままです。これは、skeyの圧縮が有効になっていることを示します。

  • ラベル: skeyのラベル。 1つ以上のラベルと値のペアを指定できます。 例: LABELS sensor_id 1

Output

  • 操作が成功した場合、OKが返されます。

  • それ以外の場合、エラーメッセージが返されます。

例:

サンプルコマンド:

EXTS.S.MADD foo 3 temperature * 30.2 pressure * 2.05 distance * 0.5

サンプル出力:

1) OK
2) OK
3) OK 

EXTS.S.INCRBY

項目

説明

構文

EXTS.S.INCRBY Pkey Skey ts value [DATA_ET time] [CHUNK_SIZEサイズ] [圧縮されていない] [LABELS label1 val1 ...]

時間の複雑さ

O(1)

コマンド説明

データポイントをskeyに挿入します。 挿入するデータポイントの値が正の場合、skeyに存在する最後のデータポイントの値に挿入された値が加算されます。 データ点が負の値を有する場合、挿入された値は、skeyに存在する最後のデータ点の値から減算される。 pkeyまたはskeyが存在しない場合、pkeyまたはskeyは自動的に作成されます。 デフォルトの初期値は0です。 skeyのパラメーター (有効期限や圧縮を有効にするかどうかなど) は、skeyが自動的に作成された場合にのみ有効になります。

パラメーター

  • Pkey: このコマンドを実行して管理するpkeyの名前。

  • Skey: skeyの名前。

  • ts: データポイントのUNIXタイムスタンプ。 単位:ミリ秒。 * の値を使用して、現在の時刻のタイムスタンプを指定できます。

  • value: データポイントの値に追加する値です。 値は負にすることができます。 この場合、値はデータポイント値から減算される。 値は倍精度浮動小数点数でなければなりません。

  • DATA_ET time: データポイントの相対的な有効期限。 単位:ミリ秒。 このパラメーターはデフォルトでは空のままです。これは、データポイントが期限切れにならないことを示します。

  • CHUNK_SIZE: チャンクに格納できるデータポイントの数。 デフォルト値: 256 有効な値: 1 ~ 256

  • UNCOMPRESSED: skeyの圧縮を無効にすることを指定します。 このパラメーターはデフォルトでは空のままです。これは、skeyの圧縮が有効になっていることを示します。

  • ラベル: skeyのラベル。 1つ以上のラベルと値のペアを指定できます。 例: LABELS sensor_id 1

Output

  • 操作が成功した場合、OKが返されます。

  • それ以外の場合、エラーメッセージが返されます。

例:

事前にEXTS.S.ADD foo temperature 1644310456023 30.0コマンドを実行します。

サンプルコマンド:

EXTS.S.INCRBY foo temperature 1644372093031 2

サンプル出力:

OK

この時点でEXTS.S.GET foo temperatureコマンドを実行すると、次の出力が返されます。

1) (integer) 1644372093031
2) "32"

EXTS.S.MINCRBY

項目

説明

構文

EXTS.S.MINCRBY Pkey keynumber Skey ts value [Skey ts value ...] [DATA_ET時間] [CHUNK_SIZEサイズ] [圧縮なし] [LABELS label1 val1 ...]

時間の複雑さ

ここで、nはskeyの数を示す。

コマンド説明

データポイントをpkeyの複数のskeyに挿入します。 挿入するデータポイントの値が正の場合、挿入された値は各skeyに存在する最後のデータポイントの値に加算されます。 データ点が負の値を有する場合、挿入された値は、各skeyに存在する最後のデータ点の値から減算される。 pkeyまたはskeyが存在しない場合、pkeyまたはskeyは自動的に作成されます。 デフォルトの初期値は0です。 有効期限や圧縮を有効にするかどうかなどのskeyのパラメーターは、skeyが自動的に作成された場合にのみ有効になります。

パラメーター

  • Pkey: このコマンドを実行して管理するpkeyの名前。

  • keynumber: skeyの数。

  • Skey: skeyの名前。

  • ts: データポイントのUNIXタイムスタンプ。 単位:ミリ秒。 * の値を使用して、現在の時刻のタイムスタンプを指定できます。

  • value: データポイントの値に追加する値です。 値は負にすることができます。 この場合、値はデータポイント値から減算される。 値は倍精度浮動小数点数でなければなりません。

  • DATA_ET time: データポイントの相対的な有効期限。 単位:ミリ秒。 このパラメーターはデフォルトでは空のままです。これは、データポイントが期限切れにならないことを示します。

  • CHUNK_SIZE: チャンクに格納できるデータポイントの数。 デフォルト値: 256 有効な値: 1 ~ 256

  • UNCOMPRESSED: skeyの圧縮を無効にすることを指定します。 このパラメーターはデフォルトでは空のままです。これは、skeyの圧縮が有効になっていることを示します。

  • ラベル: skeyのラベル。 1つ以上のラベルと値のペアを指定できます。 例: LABELS sensor_id 1

Output

  • 操作が成功した場合、OKが返されます。

  • それ以外の場合、エラーメッセージが返されます。

例:

サンプルコマンド:

EXTS.S.MINCRBY foo 3 temperature * 0.2 pressure * -0.1 distance * 0.0

サンプル出力:

1) OK
2) OK
3) OK 

EXTS.S.DEL

項目

説明

構文

EXTS.S.DEL Pkey Skey

時間の複雑さ

O(1)

コマンド説明

skeyとskey内のすべてのデータポイントをpkeyから削除します。

項目

  • Pkey: このコマンドを実行して管理するpkeyの名前。

  • Skey: skeyの名前。

Output

  • 操作が成功した場合、OKが返されます。

  • それ以外の場合、エラーメッセージが返されます。

例:

サンプルコマンド:

EXTS.S.DEL foo temperature

サンプル出力:

OK

EXTS.S.GET

項目

説明

構文

EXTS.S.GET Pkey Skey

時間の複雑さ

O(1)

コマンド説明

指定したskeyの最後のデータポイントの値を照会します。

パラメーター

  • Pkey: このコマンドを実行して管理するpkeyの名前。

  • Skey: skeyの名前。

Output

  • 操作が成功した場合、データポイントの値が返されます。

  • pkeyまたはskeyが存在しない場合は、nilが返されます。

  • それ以外の場合、エラーメッセージが返されます。

例:

サンプルコマンド:

EXTS.S.GET foo temperature

サンプル出力:

1) (integer) 1644372730150
2) "32.2"

EXTS.S.INFO

項目

説明

構文

EXTS.S.INFO Pkey Skey

時間の複雑さ

O(1)

コマンド説明

指定したskeyのメタデータを照会します。 メタデータは、データポイントの数、最後のデータポイントのタイムスタンプおよび値、およびskeyのラベル情報を含む。

パラメーター

  • Pkey: このコマンドを実行して管理するpkeyの名前。

  • Skey: skeyの名前。

Output

  • 操作が成功した場合、skeyのメタデータが返されます。

  • pkeyまたはskeyが存在しない場合は、nilが返されます。

  • それ以外の場合、エラーメッセージが返されます。

例:

サンプルコマンド:

EXTS.S.INFO foo temperature

サンプル出力:

1) totalDataPoints            // The number of data points. 
 2) (integer) 1
 3) maxDataPoints              // The maximum number of data points that can be stored in the skey. The default value is 0, which indicates that no upper limit is imposed. 
 4) (integer) 0
 5) maxDataPointsPerChunk      // The number of data points that can be stored in a chunk. 
 6) (integer) 32
 7) dataPointsExpireTime       // The relative expiration time of the skey. Unit: milliseconds. A value of 0 indicates that the skey does not expire. 
 8) (integer) 0
 9) lastTimestamp              // The timestamp of the last data point. 
10) (integer) 1644389400996
11) chunkCount                 // The number of chunks in the skey. 
12) (integer) 1
13) lastValue                  // The value of the last data point. 
14) (integer) 28
15) labels                     // The label information of the skey. 
16) 1) 1) "sensor_id"
       2) "1"

EXTS.S.QUERYINDEX

項目

説明

構文

EXTS.S.QUERYINDEX Pkey filter1 [filter2 ...]

時間の複雑さ

ここで、nは、フィルタ条件に含まれるセットの最大数を示す。

コマンド説明

pkeyで指定されたフィルター条件を満たすskeysを照会します。

パラメーター

  • Pkey: このコマンドを実行して管理するpkeyの名前。

  • filter: フィルター条件。 skeysはラベルでフィルタリングできます。 詳細については、このトピックの「インデックスフィルタリング構文」を参照してください。

    説明

    フィルター条件を指定するときは、EQ、CONTAINS、LIST_MATCHのいずれかのロジックを使用する必要があります。 それ以外の場合、フィルタークエリは実行できません。

Output

  • 操作が成功すると、指定されたフィルター条件を満たすskeyが返されます。

  • pkeyまたはskeyが存在しない場合は、nilが返されます。

  • それ以外の場合、エラーメッセージが返されます。

例:

サンプルコマンド:

EXTS.S.QUERYINDEX foo sensor_id=1

サンプル出力:

1) "temperature"

EXTS.S. レンジ

項目

説明

構文

EXTS.S.RANGE Pkey Skey fromTs toTs [MAXCOUNT count] [AGGREGATION aggregationType timeBucket]

時間の複雑さ

ここで、nは、データポイントが属するチャンクの数を示す。

コマンド説明

指定された時間範囲内にskeyに存在するデータポイントの数を照会します。 時間範囲は、閉じた間隔である。

パラメーター

  • Pkey: このコマンドを実行して管理するpkeyの名前。

  • Skey: skeyの名前。

  • fromTs: クエリする時間範囲の開始。 この値はUNIXタイムスタンプである必要があります。 単位:ミリ秒。

  • toTs: クエリする時間範囲の終わり。 この値はUNIXタイムスタンプである必要があります。 単位:ミリ秒。 * の値を使用して、現在の時刻のタイムスタンプを指定できます。 この値がfromTs値と等しい場合、ある時点がクエリに使用されます。

  • MAXCOUNT: 返すデータポイントの数。 このパラメーターはデフォルトでは何も指定されていません。 Tairインスタンスの上限は1,000,000です。

  • AGGREGATION:

    • aggregationType: MAXAVGSUMなどのアグリゲーションタイプ。詳細については、このトピックの「Aggregation syntax」を参照してください。

    • timeBucket: データの集計に使用されるタイムバケット。 単位:ミリ秒。 下限は1,000である。

      Tairは、複数のタイムバケットに存在するデータを集約し、単一の結果を返します。 返される時点は、各時間バケットの先頭です。

    たとえば、AGGREGATION AVG 5000は、指定された時間範囲内で5,000ミリ秒持続する各タイムバケットに存在するデータポイントの平均数を返します。

Output

  • 操作が成功した場合、指定された時間範囲内にskeyに存在するデータポイントの数が返されます。 コマンドでAGGREGATIONパラメーターが指定されている場合、集計結果が返されます。

    説明

    追加のトークン値が返されます。 値0は、指定されたフィルター条件を満たすすべてのデータポイントが表示されることを示します。 値1は、指定されたフィルター条件を満たす特定のデータポイントが表示されないことを示します。 トークン値に基づいて、結果から最後のデータポイントを取得できます。 バッチ集計を実装するには、最後のデータポイントのタイムスタンプを次の時間範囲の先頭として使用してクエリを実行します。

  • pkeyまたはskeyが存在しない場合は、nilが返されます。

  • それ以外の場合、エラーメッセージが返されます。

例:

サンプルコマンド:

EXTS.S.RANGE foo test 1644459031662 * AGGREGATION AVG 10000 MAXCOUNT 2
// The command retrieves the average number of data points that exist in each time bucket that lasts for 10,000 milliseconds within the specified time range and returns two data entries.

サンプル出力:

1) 1) 1) (integer) 1644459730000
      2) "20.6"
   2) 1) (integer) 1644459790000
      2) "21.2"
2) (integer) 1                    // A value of 0 indicates that all data points that meet specified filter conditions are displayed. A value of 1 indicates that specific data points that meet specified filtered conditions are not displayed.

EXTS.S.MRANGE

項目

説明

構文

EXTS.S.MRANGE Pkey fromTs toTs [MAXCOUNT count] [AGGREGATION aggregationType timeBucket] [WITHLABELS] FILTER filter1 [filter2 ...]

時間の複雑さ

ここで、nは、データポイントが属するチャンクの数を示す。

コマンド説明

指定された時間範囲内に複数のskeyで指定されたフィルター条件を満たすデータポイントの数を照会します。 時間範囲は、閉じた間隔である。

パラメーター

  • Pkey: このコマンドを実行して管理するpkeyの名前。

  • fromTs: クエリする時間範囲の開始。 この値はUNIXタイムスタンプである必要があります。 単位:ミリ秒。

  • toTs: クエリする時間範囲の終わり。 この値はUNIXタイムスタンプである必要があります。 単位:ミリ秒。 * の値を使用して、現在の時刻のタイムスタンプを指定できます。 この値がfromTs値と等しい場合、ある時点がクエリに使用されます。

  • MAXCOUNT: skeyで返すデータポイントの数。 このパラメーターはデフォルトでは何も指定されていません。 Tairインスタンスの上限は1,000,000です。

  • AGGREGATION:

    • aggregationType: MAXAVGSUMなどのアグリゲーションタイプ。詳細については、このトピックの「Aggregation syntax」を参照してください。

    • timeBucket: データの集計に使用されるタイムバケット。 単位:ミリ秒。 下限は1,000である。

      Tairは、複数のタイムバケットに存在するデータを集約し、単一の結果を返します。 返される時点は、各時間バケットの先頭です。

  • WITHLABELS: 出力にラベル情報を含めるかどうかを指定します。 このパラメーターはデフォルトでは空のままです。これは、ラベル情報が表示されないことを示します。

  • filter: フィルター条件。 skeysはラベルでフィルタリングできます。 詳細については、このトピックの「インデックスフィルタリング構文」を参照してください。

    説明

    フィルター条件を指定するときは、EQ、CONTAINS、LIST_MATCHのいずれかのロジックを使用する必要があります。 それ以外の場合、フィルタークエリは実行できません。

Output

  • 操作が成功すると、指定されたフィルター条件を満たすskeyが返されます。

  • pkeyまたはskeyが存在しない場合は、nilが返されます。

  • それ以外の場合、エラーメッセージが返されます。

例:

サンプルコマンド:

EXTS.S.MRANGE foo 1644451031662 * AGGREGATION MAX 10000 WITHLABELS FILTER sensor_id=1

サンプル出力:

1) 1) "temperature"
   2) 1) 1) "sensor_id"
         2) "1"
   3) 1) 1) (integer) 1644481000000
         2) "30"
   4) (integer) 0
2) 1) "test"
   2) 1) 1) "sensor_id"
         2) "1"
   3) 1) 1) (integer) 1644459730000
         2) "20"
      2) 1) (integer) 1644459790000
         2) "20"
      3) 1) (integer) 1644460620000
         2) "29"
   4) (integer) 0

EXTS.P. レンジ

項目

説明

構文

EXTS.P.RANGE Pkey fromTs toTs pkeyAggregationType pkeyTimeBucket [MAXCOUNTカウント] [AGGREGATION aggregationType timeBucket] [WITHLABELS] FILTER filter1 [filter2 ...]

時間の複雑さ

ここで、nは、データポイントが属するチャンクの数を示す。

コマンド説明

指定されたフィルター条件を満たすpkeyのデータポイントを集計します。 集約に1つ以上のskeyを指定した場合、EXTS.S.MRANGEコマンドを使用した場合と同じ方法でskeyが最初に集約されます。 次に、skey集計結果に基づいてpkeysが集計されます。

パラメーター

  • Pkey: このコマンドを実行して管理するpkeyの名前。

  • fromTs: クエリする時間範囲の開始。 この値はUNIXタイムスタンプである必要があります。 単位:ミリ秒。

  • toTs: クエリする時間範囲の終わり。 この値はUNIXタイムスタンプである必要があります。 単位:ミリ秒。 * の値を使用して、現在の時刻のタイムスタンプを指定できます。 この値がfromTs値と等しい場合、ある時点がクエリに使用されます。

  • pkeyAggregationType: pkeyの集計タイプ。 詳細については、このトピックの「Aggregation syntax」を参照してください。

  • pkeyTimeBucket: pkeyのデータを集約するために使用されるタイムバケット。 単位:ミリ秒。 下限は1,000である。

    Tairは、複数のタイムバケットに存在するデータを集約し、単一の結果を返します。 返される時点は、各時間バケットの先頭です。

  • MAXCOUNT: skeyで返すデータポイントの数。 このパラメーターはデフォルトでは何も指定されていません。 Tairインスタンスの上限は1,000,000です。

  • AGGREGATION:

    • aggregationType: skeyの集計タイプ。 詳細については、このトピックの「Aggregation syntax」を参照してください。

    • timeBucket: skeyのデータを集約するために使用されるタイムバケット。 単位:ミリ秒。 下限は1,000である。

      Tairは、複数のタイムバケットに存在するデータを集約し、単一の結果を返します。 返される時点は、各時間バケットの先頭です。

  • WITHLABELS: 出力にラベル情報を含めるかどうかを指定します。 このパラメーターはデフォルトでは空のままです。これは、ラベル情報が表示されないことを示します。

  • filter: フィルター条件。 skeysはラベルでフィルタリングできます。 詳細については、このトピックの「インデックスフィルタリング構文」を参照してください。

    説明

    フィルター条件を指定するときは、EQ、CONTAINS、LIST_MATCHのいずれかのロジックを使用する必要があります。 それ以外の場合、フィルタークエリは実行できません。

Output

  • 操作が成功した場合、集計結果が返されます。

  • pkeyまたはskeyが存在しない場合は、nilが返されます。

  • それ以外の場合、エラーメッセージが返されます。

例:

サンプルコマンド:

EXTS.P.RANGE foo 1644451031662 * SUM 500000 AGGREGATION SUM 10000 FILTER sensor_id=1

サンプル出力:

1) 1) 1) (integer) 1644459500000
      2) "40"
   2) 1) (integer) 1644460500000
      2) "29"
   3) 1) (integer) 1644481000000
      2) "30"
2) (integer) 0

EXTS.S.RAW_MODIFY

項目

説明

構文

EXTS.S.RAW_MODIFY Pkey Skey ts value [DATA_ET time] [CHUNK_SIZEサイズ] [圧縮されていない] [LABELS label1 val1 ...]

時間の複雑さ

O(1)

コマンド説明

指定したskeyのデータポイントの値を変更します。 pkeyまたはskeyが存在しない場合、pkeyまたはskeyは自動的に作成されます。 skeyのパラメーター (有効期限や圧縮を有効にするかどうかなど) は、skeyが自動的に作成された場合にのみ有効になります。

パラメーター

  • Pkey: このコマンドを実行して管理するpkeyの名前。

  • Skey: skeyの名前。

  • ts: 値を更新するデータポイントのUNIXタイムスタンプ。 単位:ミリ秒。

  • value: 更新するデータポイントの値です。 値は倍精度浮動小数点数でなければなりません。

  • DATA_ET time: データポイントの相対的な有効期限。 単位:ミリ秒。 このパラメーターはデフォルトでは空のままです。これは、データポイントが期限切れにならないことを示します。

  • CHUNK_SIZE: チャンクに格納できるデータポイントの数。 デフォルト値: 256 有効な値: 1 ~ 256

  • UNCOMPRESSED: skeyの圧縮を無効にすることを指定します。 このパラメーターはデフォルトでは空のままです。これは、skeyの圧縮が有効になっていることを示します。

  • ラベル: skeyのラベル。 1つ以上のラベルと値のペアを指定できます。 例: LABELS sensor_id 1

Output

  • 操作が成功した場合、OKが返されます。

  • それ以外の場合、エラーメッセージが返されます。

例:

サンプルコマンド:

EXTS.S.RAW_MODIFY foo temperature 1644310456023 31.5

サンプル出力:

OK

EXTS.S.RAW_MMODIFY

項目

説明

構文

EXTS.S.RAW_MMODIFY Pkeyキー番号Skey ts value [Skey ts value ...] [DATA_ET時間] [CHUNK_SIZEサイズ] [圧縮なし] [LABELS label1 val1 ...]

時間の複雑さ

ここで、nはskeyの数を示す。

コマンド説明

複数のskeysのデータポイントの値を一度に変更します。 pkeyまたはskeyが存在しない場合、pkeyまたはskeyは自動的に作成されます。 有効期限や圧縮を有効にするかどうかなどのskeyのパラメーターは、skeyが自動的に作成された場合にのみ有効になります。

パラメーター

  • Pkey: このコマンドを実行して管理するpkeyの名前。

  • keynumber: skeyの数。

  • Skey: skeyの名前。

  • ts: 値を更新するデータポイントのUNIXタイムスタンプ。 単位:ミリ秒。

  • value: 更新するデータポイントの値です。 値は倍精度浮動小数点数でなければなりません。

  • DATA_ET time: データポイントの相対的な有効期限。 単位:ミリ秒。 このパラメーターはデフォルトでは空のままです。これは、データポイントが期限切れにならないことを示します。

  • CHUNK_SIZE: チャンクに格納できるデータポイントの数。 デフォルト値: 256 有効な値: 1 ~ 256

  • UNCOMPRESSED: skeyの圧縮を無効にすることを指定します。 このパラメーターはデフォルトでは空のままです。これは、skeyの圧縮が有効になっていることを示します。

  • ラベル: skeyのラベル。 1つ以上のラベルと値のペアを指定できます。 例: LABELS sensor_id 1

Output

  • 操作が成功した場合、OKが返されます。

  • それ以外の場合、エラーメッセージが返されます。

例:

サンプルコマンド:

EXTS.S.RAW_MMODIFY foo 3 temperature 1644565954814 30.2 pressure 1644565954814 2.05 distance 1644565954814 0.5

サンプル出力:

1) OK
2) OK
3) OK 

EXTS.S.RAW_INCRBY

項目

説明

構文

EXTS.S.RAW_INCRBY Pkey Skey ts value [DATA_ET time] [CHUNK_SIZEサイズ] [圧縮されていない] [LABELS label1 val1 ...]

時間の複雑さ

O(1)

コマンド説明

指定したskeyのデータポイントの値を変更します。 値を変更するためのインクリメントまたはデクリメントを指定できます。 pkeyまたはskeyが存在しない場合、pkeyまたはskeyは自動的に作成されます。 デフォルトの初期値は0です。 skeyのパラメーター (有効期限や圧縮を有効にするかどうかなど) は、skeyが自動的に作成された場合にのみ有効になります。

パラメーター

  • Pkey: このコマンドを実行して管理するpkeyの名前。

  • Skey: skeyの名前。

  • ts: 値を更新するデータポイントのUNIXタイムスタンプ。 単位:ミリ秒。

  • value: データポイントの値に追加する値です。 値は負にすることができます。 この場合、値はデータポイント値から減算される。 値は倍精度浮動小数点数でなければなりません。

  • DATA_ET time: データポイントの相対的な有効期限。 単位:ミリ秒。 このパラメーターはデフォルトでは空のままです。これは、データポイントが期限切れにならないことを示します。

  • CHUNK_SIZE: チャンクに格納できるデータポイントの数。 デフォルト値: 256 有効な値: 1 ~ 256

  • UNCOMPRESSED: skeyの圧縮を無効にすることを指定します。 このパラメーターはデフォルトでは空のままです。これは、skeyの圧縮が有効になっていることを示します。

  • ラベル: skeyのラベル。 1つ以上のラベルと値のペアを指定できます。 例: LABELS sensor_id 1

Output

  • 操作が成功した場合、OKが返されます。

  • それ以外の場合、エラーメッセージが返されます。

例:

事前にEXTS.S.ADD foo temperature 1644310456 30.0コマンドを実行します。

サンプルコマンド:

サンプル出力:

OK

この時点でEXTS.S.GET foo temperatureコマンドを実行すると、次の出力が返されます。

1) (integer) 1644310456
2) "33.3"

EXTS.S.RAW_MINCRBY

項目

説明

構文

EXTS.S.RAW_MINCRBY Pkeyキー番号Skey ts value [Skey ts value ...] [DATA_ET時間] [CHUNK_SIZEサイズ] [圧縮なし] [LABELS label1 val1 ...]

時間の複雑さ

ここで、nはskeyの数を示す。

コマンド説明

複数のskeysのデータポイントの値を一度に変更します。 値を変更するためのインクリメントまたはデクリメントを指定できます。 pkeyまたはskeyが存在しない場合、pkeyまたはskeyは自動的に作成されます。 有効期限や圧縮を有効にするかどうかなどのskeyのパラメーターは、skeyが自動的に作成された場合にのみ有効になります。

パラメーター

  • Pkey: このコマンドを実行して管理するpkeyの名前。

  • keynumber: skeyの数。

  • Skey: skeyの名前。

  • ts: 値を更新するデータポイントのUNIXタイムスタンプ。 単位:ミリ秒。

  • value: データポイントの値に追加する値です。 値は負にすることができます。 この場合、値はデータポイント値から減算される。 値は倍精度浮動小数点数でなければなりません。

  • DATA_ET time: データポイントの相対的な有効期限。 単位:ミリ秒。 このパラメーターはデフォルトでは空のままです。これは、データポイントが期限切れにならないことを示します。

  • CHUNK_SIZE: チャンクに格納できるデータポイントの数。 デフォルト値: 256 有効な値: 1 ~ 256

  • UNCOMPRESSED: skeyの圧縮を無効にすることを指定します。 このパラメーターはデフォルトでは空のままです。これは、skeyの圧縮が有効になっていることを示します。

  • ラベル: skeyのラベル。 1つ以上のラベルと値のペアを指定できます。 例: LABELS sensor_id 1

Output

  • 操作が成功した場合、OKが返されます。

  • それ以外の場合、エラーメッセージが返されます。

例:

サンプルコマンド:

EXTS.S.RAW_MMODIFY foo 3 temperature 1644565954814 30.2 pressure 1644565954814 2.05 distance 1644565954814 0.5

サンプル出力:

1) OK
2) OK
3) OK 

インデックスフィルター構文

Skeysはラベルでフィルタリングできます。 次の構文は、フィルター条件に使用されます。

説明

フィルター条件を指定するときは、次のコマンドを1つ以上使用できます。また、EQ、CONTAINS、LIST_MATCHのいずれかのロジックを使用する必要があります。

Filterコマンド

説明

ロジック

L = V

ラベルLの値はVに等しい。

EQ (等しい)

L! =

ラベルLの値はNULLではなく、skeyにラベルLが含まれていることを示します。

含有量

L = (v1,v2,...)

ラベルLの値は、v1またはv2など、リスト内の値の1つと一致します。

LIST_TMATCH

L! =V

ラベルLの値はVに等しくない。

NOEQ (等しい)

L =

ラベルLの値はNULLです。これは、skeyにラベルLが含まれていないことを示します。

NOCONTAINS

L! = (v1,v2,...)

ラベルLの値は、v1やv2など、リスト内のどの値とも一致しません。

LIST_NOTMATCH

集計構文

集計操作では、複数のタイムバケットに存在するデータが集計されます。 次の集計タイプがサポートされています。

  • MAX: 最大値を返します。

  • MIN: 最小値を返します。

  • AVG: 平均値を返します。

  • SUM: すべての値の合計を返します。

  • FIRST: 最初の値を返します。

  • LAST: 最後の値を返します。

  • RANGE: 最小値から最大値までの範囲を返します。

  • COUNT: 値の数を返します。

  • STD.P: 母集団の分散を返します。

  • STD.S: サンプル分散を返します。

  • VAR.P: 母集団の標準偏差を返します。

  • VAR.S: サンプルの標準偏差を返します。