全部产品
Search
文档中心

Lindorm:CREATE CONTINUOUS QUERY

更新时间:Nov 10, 2025

Kueri kontinu (CQs) dijalankan secara otomatis pada data seri waktu di LindormTSDB dalam interval tertentu untuk menyimpan data secara efisien dalam jangka panjang. Anda dapat menggunakan sintaks CREATE CONTINUOUS QUERY untuk membuat kueri kontinu dengan mengonfigurasi aturan penulisan data.

Mesin dan versi yang berlaku

Sintaks CREATE CONTINUOUS QUERY hanya berlaku untuk semua versi LindormTSDB.

Sintaks

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

Catatan penggunaan

Nama database (database_identifier)

Nama database untuk kueri berkelanjutan. Jika tidak ditentukan, kueri akan menggunakan database saat ini. Nama database harus diapit tanda backtick (`). Contohnya: `db_sensor`.

Nama kueri kontinu (cq_identifier)

Nama kueri berkelanjutan. Nama ini harus diapit tanda backtick (`). Contohnya: `my_cq`.

Konfigurasi kueri kontinu (cq_attribute_statement)

Parameter cq_attribute_statement menentukan atribut dari kueri kontinu yang ingin dibuat. Tabel berikut menjelaskan atribut yang dapat dikonfigurasikan untuk kueri kontinu.

Atribut

Tipe

Wajib

Deskripsi

interval

STRING

Ya

Interval di mana tugas perhitungan dalam kueri kontinu dilakukan. Nilai interval dapat akurat hingga detik

Formatnya adalah %d%h%m%s. Misalnya, 1h30s berarti 1 jam 30 detik. 1d berarti satu hari.

Di mana:

  • d: hari

  • h: jam

  • m: menit

  • s: detik

window

STRING

Tidak

Menentukan jendela waktu untuk perhitungan. Ini adalah rentang waktu data yang dicakup oleh setiap perhitungan. Jika tidak ditentukan, jendela waktu sama dengan interval. Misalnya, `interval`='10m', `window`='20m' berarti tugas dijalankan setiap 10 menit dan setiap perhitungan didasarkan pada data dari 20 menit terakhir.

Jendela perhitungan adalah interval waktu yang inklusif terhadap waktu mulai dan eksklusif terhadap waktu akhir.

Formatnya adalah %d%h%m%s. Misalnya, 1h30s berarti 1 jam 30 detik. 1d berarti satu hari.

Karakter dalam format tersebut menunjukkan unit waktu yang berbeda:

  • d: hari

  • h: jam

  • m: menit

  • s: detik

offset

STRING

Tidak

Menentukan offset jendela. Secara default, jendela waktu disejajarkan dengan 1970-01-01 00:00:00 UTC. Gunakan parameter offset untuk mengubah penyelarasan ini. Misalnya, `interval`='1d', `offset`='16h' berarti tugas harian dijalankan pukul 00:00 waktu Beijing (UTC+8).

Formatnya adalah %d%h%m%s. Misalnya, 1h30s berarti 1 jam 30 detik. 1d berarti satu hari.

Di mana:

  • d: hari

  • h: jam

  • m: menit

  • s: detik

Pernyataan yang digunakan untuk menulis data (insert_select_statement)

  • Untuk informasi lebih lanjut tentang sintaks insert_select_statement, lihat Menulis data.

  • Saat menentukan insert_select_statement, Anda tidak perlu menentukan rentang waktu untuk kueri. Dalam hal ini, LindormTSDB melakukan tugas perhitungan selama interval waktu ketika kueri dijalankan.

  • Jumlah kolom dalam klausa SELECT harus sesuai dengan struktur tabel tujuan, termasuk bidang dan tag.

Contoh

Contoh berikut membuat kueri berkelanjutan yang dijalankan setiap jam untuk menghitung rata-rata suhu dan kelembapan per jam dari dua jam terakhir pada tabel sumber sensor. Hasilnya ditulis ke tabel sensor di database default.

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;