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_valCatatan 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 Di mana:
|
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, Jendela perhitungan adalah interval waktu yang inklusif terhadap waktu mulai dan eksklusif terhadap waktu akhir. Formatnya adalah Karakter dalam format tersebut menunjukkan unit waktu yang berbeda:
|
offset | STRING | Tidak | Menentukan offset jendela. Secara default, jendela waktu disejajarkan dengan Formatnya adalah Di mana:
|
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
SELECTharus 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;