このトピックでは、事前ダウンサンプリングされたデータの生成に使用される事前ダウンサンプリングルールを作成するための構文について説明します。
適用可能なエンジンとバージョン
CREATE PREDOWNSAMPLE 構文は LindormTSDB のみに適用されます。 CREATE PREDOWNSAMPLE 構文は、LindormTSDB のすべてのバージョンでサポートされています。
構文
create_predownsample_statement ::= CREATE PREDOWNSAMPLE time_interval
AGGREGATORS '('function_identifier ( ',' function_identifier) ')'
[ TTL time_interval ] ON table_identifier
time_interval ::= interval units使用上の注意
間隔 | 説明 |
間隔 | 間隔の単位。有効な値:s(秒)、m(分)、h(時間)、d(日)。 |
単位 | 間隔の単位。有効な値:s(秒)、m(分)、h(時間)、および d(日)。 |
アグリゲーター | ダウンサンプリング前にサポートされる集計関数。有効な値:
説明 avg 関数は、ダウンサンプリング前ではサポートされていません。 count 関数と sum 関数の結果を使用して、ダウンサンプリング前のデータの平均値を計算できます。ただし、データが繰り返し追加および上書きされる場合、平均値が不正確になる可能性があります。 |
関数識別子 | 集計関数の名前。 説明 1 つのステートメントで、同じ間隔で 1 つ以上の集計関数を指定できます。また、複数のステートメントで複数の集計関数を指定することもできます。 |
TTL | 事前ダウンサンプリングされたデータの有効期間(TTL)。 説明 複数の事前ダウンサンプリングルールで異なる TTL を指定した場合、最大の TTL がすべての事前ダウンサンプリングルールに適用されます。 |
テーブル識別子 | 事前ダウンサンプリングルールを構成するテーブルの名前。 |
事前ダウンサンプリングされたデータのクエリ
デフォルトでは、事前ダウンサンプリングされたデータをクエリすると、事前ダウンサンプリング前の元のデータがクエリされます。事前ダウンサンプリングされたデータのみをクエリするには、クエリステートメントに /*+ PREDOWNSAMPLE */ ヒントを追加する必要があります。事前ダウンサンプリングの詳細については、「事前ダウンサンプリング」をご参照ください。
例
事前ダウンサンプリングルールを作成し、事前ダウンサンプリングされたデータの TTL を 90 日に設定します。
CREATE PREDOWNSAMPLE `1h` AGGREGATORS (`sum`, `max`) TTL `90d` ON sensor;1 時間ごとに事前ダウンサンプリングされたデータをクエリします。
SELECT /*+ PREDOWNSAMPLE */ SUM(temperature) FROM sensor WHERE time >= 1619076780000 AND time <= 1619076800000 SAMPLE BY 1h;