Насколько я знаю, и из документов видно, что невозможно применять новые теги в непрерывных запросах.
Если я правильно понял требования, это один из способов, которым вы могли бы подойти к нему.
CREATE CONTINUOUS QUERY "strain_seconds" ON "database"
RESAMPLE EVERY 5s FOR 1m
BEGIN
SELECT MEAN("strain_top") AS "STRAIN_TOP_MEAN" INTO "database"."raw"."strain" FROM "database"."strain_seconds_retention_policy"."strain" GROUP BY time(1s),*
END
Это позволит сохранить данные в том же измерении, но с другой политикой хранения - strain_seconds_retention_policy
. Когда вы делаете select
, вы указываете соответствующую политику хранения для выбора.
Обратите внимание, что невозможно выполнить select
из нескольких политик хранения одновременно. Если вы не укажете один, будет использоваться один по умолчанию (и не все). Если это то, что вам нужно, тогда можно использовать другой подход.
Я не совсем понимаю, почему вам нужно определить непрерывный запрос для каждого устройства и для каждого датчика. Вам нужно только определить пять (1 за секунды, минуты, часы, дни, недели) и выполнить group by *
(все), что вы уже делаете. До тех пор, пока у исходного источника данных есть тег с идентификатором для соответствующего устройства и датчика, у переэмплированного объекта данных также будет его. Любые вновь добавленные устройства (данные) будут автоматически обрабатываться этими 5 запросами и сохраняться в соответствующих политиках хранения.
Если вы хотите применить дополнительные теги, вы можете обработать данные вне базы данных в пользовательском сценарий и напишите его с любыми дополнительными тегами, вместо того, чтобы использовать непрерывные запросы