连续查询 CQ

最近更新时间:2024-01-12 15:55:52

我的收藏
InfluxQL Continuous queries (CQ)具体使用语法、示例等详情,请参见 InfluxQL Continuous Queries
命令
兼容性
语义
CREATE CONTINUOUS
基本语法
CREATE CONTINUOUS QUERY <cq_name> ON <dest_db_name> BEGIN   <cq_query> END
执行示例:
curl -G http://${ip}:8086/query \\
--user "time_series_test_account":"test_password" \\
--data-urlencode 'db=time_series_test_db' \\
--data-urlencode 'q=create continuous query cq_query on time_series_test_db2 begin select mean(speed) as speed, mean(temp) as temp into min_car from car group by time(1m), * end'

该cq表示对于time_series_test_db的car周期性(1m)执行cq_query(检索时间范围为now()-1m到now()),然后将执行结果写入到time_series_test_db2的min_car。
进阶语法
CREATE CONTINUOUS QUERY <cq_name> ON <database_name> RESAMPLE EVERY <duration_lit> FOR <duraion_lit> DELAY <duration_lit> BEGIN   <cq_query> END
执行示例:
curl -G http://${ip}:8086/query \\ --user "time_series_test_account":"test_password" \\ --data-urlencode 'db=time_series_test_db' \\ --data-urlencode 'q=create continuous query cq_query on time_series_test_db2 resample every 1h for 2h delay 10m begin select mean(speed) as speed, mean(temp) as temp into hour_car from car group by time(1h), * end'

该cq表示对于time_series_test_db的car周期性(1h)执行cq_query(检索时间范围为now()-2h到now()),然后将执行结果写入到time_series_test_db2的hour_car。其中delay表示cq每次延迟10m执行(delay不影响检索时间范围,now()以规划时间为准,与执行时间无关),应对数据延迟到来的场景。
SHOW CONTINUOUS
SHOW CONTINUOUS QUERIES
DROP CONTINUOUS
DROP CONTINUOUS QUERY <cq_name> ON <database_name>