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

Lindorm:CREATE CONTINUOUS QUERY

最終更新日:Nov 09, 2025

継続クエリ (CQ) は、LindormTSDB の時系列データに対して指定された間隔で自動的に実行され、データを長期間効率的に保存します。CREATE CONTINUOUS QUERY 構文を使用して、データ書き込みルールを構成することで継続クエリを作成できます。

適用エンジンとバージョン

CREATE CONTINUOUS QUERY 構文は、LindormTSDB のすべてのバージョンにのみ適用されます。

構文

create_cq_statement ::= CREATE CONTINUOUS QUERY [database_identifier.] cq_identifier WITH ( cq_attribute_statement ) AS insert_select_statement

cq_attribute_statement ::= attribute_definition (',' attribute_definition)*
attribute_definition   ::= attr_identifier '=' attr_val

使用上の注意

データベース名 (database_identifier)

継続クエリのデータベース名。データベースを指定しない場合、現在のデータベースが使用されます。データベース名はバックティック (`) で囲みます。たとえば、`db_sensor` です。

継続クエリ名 (cq_identifier)

継続クエリの名前。継続クエリ名はバックティック (`) で囲みます。たとえば、`my_cq` です。

継続クエリの構成 (cq_attribute_statement)

cq_attribute_statement パラメーターは、作成する継続クエリの属性を指定します。次の表に、継続クエリに構成できる属性を示します。

属性

タイプ

必須

説明

interval

STRING

はい

継続クエリの計算タスクが実行される間隔。間隔の値は秒単位で正確に指定できます

フォーマットは %d%h%m%s です。たとえば、1h30s は 1 時間 30 秒を示します。1d は 1 日を示します。

各パラメーターの説明:

  • d: 日

  • h: 時間

  • m: 分

  • s: 秒

window

STRING

いいえ

計算のタイムウィンドウを指定します。これは、各計算でカバーされるデータの時間範囲です。指定しない場合、タイムウィンドウは interval と同じになります。たとえば、`interval`='10m', `window`='20m' は、タスクが 10 分ごとに実行され、各計算が過去 20 分間のデータに基づいていることを意味します。

計算ウィンドウは、開始時刻を含み、終了時刻を含まない時間間隔です。

フォーマットは %d%h%m%s です。たとえば、1h30s は 1 時間 30 秒を示します。1d は 1 日を示します。

フォーマットの文字は、異なる時間単位を示します:

  • d: 日

  • h: 時間

  • m: 分

  • s: 秒

offset

STRING

いいえ

ウィンドウのオフセットを指定します。デフォルトでは、タイムウィンドウは 1970-01-01 00:00:00 UTC に配置されます。この配置を変更するには、offset パラメーターを使用します。たとえば、`interval`='1d', `offset`='16h' は、毎日のタスクが北京時間 (UTC+8) の 00:00 に実行されることを意味します。

フォーマットは %d%h%m%s です。たとえば、1h30s は 1 時間 30 秒を示します。1d は 1 日を示します。

各パラメーターの説明:

  • d: 日

  • h: 時間

  • m: 分

  • s: 秒

データ書き込みに使用される文 (insert_select_statement)

  • insert_select_statement の構文の詳細については、「データを書き込む」をご参照ください。

  • insert_select_statement を指定する場合、クエリの時間範囲を指定する必要はありません。この場合、LindormTSDB はクエリを実行する時間間隔中に計算タスクを実行します。

  • SELECT 句の列数は、フィールドとタグの両方を含め、宛先テーブルと一致する必要があります。

次の例では、継続的なクエリを作成します。このクエリは 1 時間ごとに実行され、ソーステーブル sensor から過去 2 時間の 1 時間ごとの平均温度と湿度を計算します。結果は default データベースの sensor テーブルに書き込まれます。

CREATE CONTINUOUS QUERY `default`.`my_cq` WITH (`INTERVAL`='1h', `WINDOW`='2h') AS 
INSERT INTO `default`.`sensor` 
SELECT AVG(`temperature`) AS `temperature`, 
       AVG(`humidity`) AS `humidity`, `device_id`, `region` 
FROM  `default`.`sensor`
SAMPLE BY 1h;