blob: a000e60bf96bccd0373772d6981897f4464494cf [file] [log] [blame]
(window.webpackJsonp=window.webpackJsonp||[]).push([[516],{914:function(s,t,a){"use strict";a.r(t);var e=a(29),n=Object(e.a)({},(function(){var s=this,t=s._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[t("h1",{attrs:{id:"连续查询-continuous-query-cq"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#连续查询-continuous-query-cq"}},[s._v("#")]),s._v(" 连续查询(Continuous Query, CQ)")]),s._v(" "),t("p",[s._v("我们可以通过 SQL 语句注册、或卸载一个 CQ 实例,以及查询到所有已经注册的 CQ 配置信息。")]),s._v(" "),t("p",[s._v("注意,目前连续查询尚未对分布式场景进行适配。敬请期待分布式版本。")]),s._v(" "),t("h2",{attrs:{id:"sql-语句"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sql-语句"}},[s._v("#")]),s._v(" SQL 语句")]),s._v(" "),t("h3",{attrs:{id:"创建-cq"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#创建-cq"}},[s._v("#")]),s._v(" 创建 CQ")]),s._v(" "),t("h4",{attrs:{id:"语法"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#语法"}},[s._v("#")]),s._v(" 语法")]),s._v(" "),t("div",{staticClass:"language-sql line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-sql"}},[t("code",[t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("CREATE")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("CONTINUOUS QUERY "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" CQ"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("cq_id"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" \n"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("RESAMPLE EVERY "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("every_interval"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("FOR")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("for_interval"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" BOUNDARY "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("execution_boundary_time"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" \n"),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("BEGIN")]),s._v(" \n"),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("SELECT")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("function")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("path_suffix"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("INTO")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("full_path"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("node_name"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("FROM")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("path_prefix"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("GROUP")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("BY")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("time")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("group_by_interval"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("level")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("level")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" \n"),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("END")]),s._v("\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br"),t("span",{staticClass:"line-number"},[s._v("3")]),t("br"),t("span",{staticClass:"line-number"},[s._v("4")]),t("br"),t("span",{staticClass:"line-number"},[s._v("5")]),t("br"),t("span",{staticClass:"line-number"},[s._v("6")]),t("br"),t("span",{staticClass:"line-number"},[s._v("7")]),t("br")])]),t("p",[s._v("其中:")]),s._v(" "),t("ul",[t("li",[t("p",[t("code",[s._v("<cq_id>")]),s._v(" 指定 CQ 全局唯一的 id。")])]),s._v(" "),t("li",[t("p",[t("code",[s._v("<every_interval>")]),s._v(" 指定查询执行时间间隔,支持 ns、us、ms、s、m、h、d、w 等单位,其值不应小于用户所配置的 "),t("code",[s._v("continuous_query_min_every_interval")]),s._v(" 值。可选择指定。")])]),s._v(" "),t("li",[t("p",[t("code",[s._v("<for_interval>")]),s._v(" 指定每次查询的窗口大小,即查询时间范围为"),t("code",[s._v("[now() - <for_interval>, now())")]),s._v(",其中 "),t("code",[s._v("now()")]),s._v(" 指查询时的时间戳。支持 ns、us、ms、s、m、h、d、w 等单位。可选择指定。")])]),s._v(" "),t("li",[t("p",[t("code",[s._v("<execution_boundary_time>")]),s._v(" 是一个日期参数,表示"),t("strong",[s._v("第一个窗口的起始时间")]),s._v("。")]),s._v(" "),t("ul",[t("li",[t("code",[s._v("<execution_boundary_time>")]),s._v(" 可早于、等于、晚于"),t("strong",[s._v("当前时间")]),s._v("。")]),s._v(" "),t("li",[s._v("该参数可选择指定,不指定的情况下等价于输入 "),t("code",[s._v("BOUNDARY now()")]),s._v("。")]),s._v(" "),t("li",[t("strong",[s._v("第一个窗口的结束时间")]),s._v("为 "),t("code",[s._v("<execution_boundary_time> + <for_interval>")]),s._v("。")]),s._v(" "),t("li",[s._v("第 "),t("code",[s._v("i (1 <= i)")]),s._v(" 个窗口的"),t("strong",[s._v("开始时间")]),s._v(" "),t("code",[s._v("<execution_boundary_time> + (i - 1) * <every_interval>")]),s._v("。")]),s._v(" "),t("li",[s._v("第 "),t("code",[s._v("i (1 <= i)")]),s._v(" 个窗口的"),t("strong",[s._v("结束时间")]),s._v(" "),t("code",[s._v("<execution_boundary_time> + <for_interval> + (i - 1) * <every_interval>")]),s._v("。")]),s._v(" "),t("li",[s._v("如果"),t("strong",[s._v("当前时间")]),s._v("小于等于"),t("strong",[s._v("第一个窗口的结束时间")]),s._v(" ,那么连续查询的第一个执行时刻为"),t("strong",[s._v("第一个窗口的结束时间")]),s._v("。")]),s._v(" "),t("li",[s._v("如果"),t("strong",[s._v("当前时间")]),s._v("大于"),t("strong",[s._v("第一个窗口的结束时间")]),s._v(",那么连续查询的第一个执行时刻为"),t("strong",[s._v("第一个")]),s._v("大于等于"),t("strong",[s._v("当前时间")]),s._v("的"),t("strong",[s._v("窗口结束时间")]),s._v("。")]),s._v(" "),t("li",[s._v("每一个执行时刻执行的"),t("strong",[s._v("查询时间范围")]),s._v("为"),t("code",[s._v("[now() - <for_interval>, now())")]),s._v("。")])])]),s._v(" "),t("li",[t("p",[t("code",[s._v("<function>")]),s._v(" 指定聚合函数,目前支持 "),t("code",[s._v("count")]),s._v(", "),t("code",[s._v("sum")]),s._v(", "),t("code",[s._v("avg")]),s._v(", "),t("code",[s._v("last_value")]),s._v(", "),t("code",[s._v("first_value")]),s._v(", "),t("code",[s._v("min_time")]),s._v(", "),t("code",[s._v("max_time")]),s._v(", "),t("code",[s._v("min_value")]),s._v(", "),t("code",[s._v("max_value")]),s._v(" 等。")])]),s._v(" "),t("li",[t("p",[t("code",[s._v("<path_prefix>")]),s._v(" 与 "),t("code",[s._v("<path_suffix>")]),s._v(" 拼接成完整的查询原时间序列。")])]),s._v(" "),t("li",[t("p",[t("code",[s._v("<full_path>")]),s._v(" 或 "),t("code",[s._v("<node_name>")]),s._v(" 指定将查询出的数据写入的结果序列路径。")])]),s._v(" "),t("li",[t("p",[t("code",[s._v("<group_by_interval>")]),s._v(" 指定时间分组长度,支持 ns、us、ms、s、m、h、d、w、mo、y 等单位。")])]),s._v(" "),t("li",[t("p",[t("code",[s._v("<level>")]),s._v("指按照序列第 "),t("code",[s._v("<level>")]),s._v(" 层分组,将第 "),t("code",[s._v("<level>")]),s._v(" 层同名的所有序列聚合。Group By Level 语句的具体语义及 "),t("code",[s._v("<level>")]),s._v(" 的定义见 "),t("RouterLink",{attrs:{to:"/zh/UserGuide/Master/Operate-Metadata/DML-Data-Manipulation-Language.html"}},[s._v("路径层级分组聚合")]),s._v("。")],1)])]),s._v(" "),t("p",[s._v("注:")]),s._v(" "),t("ul",[t("li",[t("code",[s._v("<for_interval>")]),s._v(", "),t("code",[s._v("<every_interval>")]),s._v(" 可选择指定。如果用户没有指定其中的某一项,则未指定项的值按照"),t("code",[s._v("<group_by_interval>")]),s._v(" 处理。\n"),t("ul",[t("li",[t("code",[s._v("<every_interval>")]),s._v(","),t("code",[s._v("<for_interval>")]),s._v(","),t("code",[s._v("<group_by_interval>")]),s._v(" 的值均应大于 0。")]),s._v(" "),t("li",[t("code",[s._v("<group_by_interval>")]),s._v(" 的值应小于"),t("code",[s._v("<for_interval>")]),s._v("的值,否则系统会按照等于"),t("code",[s._v("<for_interval>")]),s._v("的值处理。")]),s._v(" "),t("li",[s._v("用户应当结合实际需求指定合适的 "),t("code",[s._v("<for_interval>")]),s._v(" 与 "),t("code",[s._v("<every_interval>")]),s._v("。\n"),t("ul",[t("li",[s._v("若 "),t("code",[s._v("<for_interval>")]),s._v(" 大于 "),t("code",[s._v("<every_interval>")]),s._v(",每次的查询窗口会有部分数据重叠,从查询性能角度这种配置不被建议。")]),s._v(" "),t("li",[s._v("若 "),t("code",[s._v("<for_interval>")]),s._v(" 小于 "),t("code",[s._v("<every_interval>")]),s._v(",每次的查询窗口之间可能会有未覆盖到的数据。")])])])])]),s._v(" "),t("li",[s._v("对于结果序列路径\n"),t("ul",[t("li",[s._v("用户可以选择指定"),t("code",[s._v("<full_path>")]),s._v(",即以 "),t("code",[s._v("root")]),s._v(" 开头的完整的时间序列路径,用户可以在路径中使用 "),t("code",[s._v("${x}")]),s._v(" 变量来表示原始时间序列中 "),t("code",[s._v("level = x")]),s._v(" 的节点名称,"),t("code",[s._v("x")]),s._v("应当大于等于 1 且小于等于 "),t("code",[s._v("<level>")]),s._v(" 值\n(若未指定 "),t("code",[s._v("level")]),s._v(",则应小于等于 "),t("code",[s._v("<path_prefix>")]),s._v(" 长度)。")]),s._v(" "),t("li",[s._v("用户也可以仅指定"),t("code",[s._v("<node_name>")]),s._v(",即生成时间序列路径的最后一个结点名。\n"),t("ul",[t("li",[s._v("若用户指定 "),t("code",[s._v("<level> = l")]),s._v(",则系统生成的结果时间序列路径为 "),t("code",[s._v("root.${1}. ... .${l}.<node_name>")])]),s._v(" "),t("li",[s._v("若用户未指定 "),t("code",[s._v("<level>")]),s._v(",令原始时间序列最大层数为 "),t("code",[s._v("L")]),s._v(",\n则系统生成的结果时间序列路径为 "),t("code",[s._v("root.${1}. ... .${L - 1}.<node_name>")]),s._v("。")])])])])])]),s._v(" "),t("h4",{attrs:{id:"示例"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#示例"}},[s._v("#")]),s._v(" 示例")]),s._v(" "),t("h5",{attrs:{id:"原始时间序列"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#原始时间序列"}},[s._v("#")]),s._v(" 原始时间序列")]),s._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[s._v("+-----------------------------+-----+-------------+--------+--------+-----------+----+----------+\n| timeseries|alias|storage group|dataType|encoding|compression|tags|attributes|\n+-----------------------------+-----+-------------+--------+--------+-----------+----+----------+\n|root.ln.wf02.wt02.temperature| null| root.ln| FLOAT| GORILLA| SNAPPY|null| null|\n|root.ln.wf02.wt01.temperature| null| root.ln| FLOAT| GORILLA| SNAPPY|null| null|\n|root.ln.wf01.wt02.temperature| null| root.ln| FLOAT| GORILLA| SNAPPY|null| null|\n|root.ln.wf01.wt01.temperature| null| root.ln| FLOAT| GORILLA| SNAPPY|null| null|\n+-----------------------------+-----+-------------+--------+--------+-----------+----+----------+\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br"),t("span",{staticClass:"line-number"},[s._v("3")]),t("br"),t("span",{staticClass:"line-number"},[s._v("4")]),t("br"),t("span",{staticClass:"line-number"},[s._v("5")]),t("br"),t("span",{staticClass:"line-number"},[s._v("6")]),t("br"),t("span",{staticClass:"line-number"},[s._v("7")]),t("br"),t("span",{staticClass:"line-number"},[s._v("8")]),t("br")])]),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[s._v("+-----------------------------+-----------------------------+-----------------------------+-----------------------------+-----------------------------+\n| Time|root.ln.wf02.wt02.temperature|root.ln.wf02.wt01.temperature|root.ln.wf01.wt02.temperature|root.ln.wf01.wt01.temperature|\n+-----------------------------+-----------------------------+-----------------------------+-----------------------------+-----------------------------+\n|2021-05-11T22:18:14.598+08:00| 121.0| 72.0| 183.0| 115.0|\n|2021-05-11T22:18:19.941+08:00| 0.0| 68.0| 68.0| 103.0|\n|2021-05-11T22:18:24.949+08:00| 122.0| 45.0| 11.0| 14.0|\n|2021-05-11T22:18:29.967+08:00| 47.0| 14.0| 59.0| 181.0|\n|2021-05-11T22:18:34.979+08:00| 182.0| 113.0| 29.0| 180.0|\n|2021-05-11T22:18:39.990+08:00| 42.0| 11.0| 52.0| 19.0|\n|2021-05-11T22:18:44.995+08:00| 78.0| 38.0| 123.0| 52.0|\n|2021-05-11T22:18:49.999+08:00| 137.0| 172.0| 135.0| 193.0|\n|2021-05-11T22:18:55.003+08:00| 16.0| 124.0| 183.0| 18.0|\n+-----------------------------+-----------------------------+-----------------------------+-----------------------------+-----------------------------+\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br"),t("span",{staticClass:"line-number"},[s._v("3")]),t("br"),t("span",{staticClass:"line-number"},[s._v("4")]),t("br"),t("span",{staticClass:"line-number"},[s._v("5")]),t("br"),t("span",{staticClass:"line-number"},[s._v("6")]),t("br"),t("span",{staticClass:"line-number"},[s._v("7")]),t("br"),t("span",{staticClass:"line-number"},[s._v("8")]),t("br"),t("span",{staticClass:"line-number"},[s._v("9")]),t("br"),t("span",{staticClass:"line-number"},[s._v("10")]),t("br"),t("span",{staticClass:"line-number"},[s._v("11")]),t("br"),t("span",{staticClass:"line-number"},[s._v("12")]),t("br"),t("span",{staticClass:"line-number"},[s._v("13")]),t("br")])]),t("h5",{attrs:{id:"结果序列配置举例说明"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#结果序列配置举例说明"}},[s._v("#")]),s._v(" 结果序列配置举例说明")]),s._v(" "),t("p",[s._v("对于以上原始时间序列,若用户指定查询聚合层级为 "),t("code",[s._v("2")]),s._v(",聚合函数为 "),t("code",[s._v("avg")]),s._v(",\n用户可以在 "),t("code",[s._v("INTO")]),s._v(" 语句中仅指定生成序列的最后一个结点名,若用户将其指定为 "),t("code",[s._v("temperature_avg")]),s._v(",则系统生成的完整路径为 "),t("code",[s._v("root.${1}.${2}.temperature_avg")]),s._v("。\n用户也可以在 "),t("code",[s._v("INTO")]),s._v(" 语句中指定完整写入路径,用户可将其指定为 "),t("code",[s._v("root.${1}.${2}.temperature_avg")]),s._v("、"),t("code",[s._v("root.ln_cq.${2}.temperature_avg")]),s._v("、"),t("code",[s._v("root.${1}_cq.${2}.temperature_avg")]),s._v("、"),t("code",[s._v("root.${1}.${2}_cq.temperature_avg")]),s._v("等,\n也可以按需要指定为 "),t("code",[s._v("root.${2}.${1}.temperature_avg")]),s._v(" 等其它形式。\n需要注意的是,"),t("code",[s._v("${x}")]),s._v(" 中的 "),t("code",[s._v("x")]),s._v(" 应当大于等于 "),t("code",[s._v("1")]),s._v(" 且小于等于 "),t("code",[s._v("<level>")]),s._v(" 值\n(若未指定 "),t("code",[s._v("<level>")]),s._v(",则应小于等于 "),t("code",[s._v("<path_prefix>")]),s._v(" 层级)。在上例中,"),t("code",[s._v("x")]),s._v(" 应当小于等于 "),t("code",[s._v("2")]),s._v("。")]),s._v(" "),t("h5",{attrs:{id:"创建-cq1"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#创建-cq1"}},[s._v("#")]),s._v(" 创建 "),t("code",[s._v("cq1")])]),s._v(" "),t("div",{staticClass:"language-sql line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-sql"}},[t("code",[t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("CREATE")]),s._v(" CONTINUOUS QUERY cq1 \n"),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("BEGIN")]),s._v(" \n "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("SELECT")]),s._v(" max_value"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("temperature"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" \n "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("INTO")]),s._v(" temperature_max \n "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("FROM")]),s._v(" root"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("ln"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v(" \n "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("GROUP")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("BY")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("time")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("10")]),s._v("s"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" \n"),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("END")]),s._v("\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br"),t("span",{staticClass:"line-number"},[s._v("3")]),t("br"),t("span",{staticClass:"line-number"},[s._v("4")]),t("br"),t("span",{staticClass:"line-number"},[s._v("5")]),t("br"),t("span",{staticClass:"line-number"},[s._v("6")]),t("br"),t("span",{staticClass:"line-number"},[s._v("7")]),t("br")])]),t("p",[s._v("每隔 10s 查询 "),t("code",[s._v("root.ln.*.*.temperature")]),s._v(" 在前 10s 内的最大值(结果以 10s 为一组),\n将结果写入到 "),t("code",[s._v("root.${1}.${2}.${3}.temperature_max")]),s._v(" 中,\n结果将产生 4 条新序列:")]),s._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[s._v("+---------------------------------+-----+-------------+--------+--------+-----------+----+----------+\n| timeseries|alias|storage group|dataType|encoding|compression|tags|attributes|\n+---------------------------------+-----+-------------+--------+--------+-----------+----+----------+\n|root.ln.wf02.wt02.temperature_max| null| root.ln| FLOAT| GORILLA| SNAPPY|null| null|\n|root.ln.wf02.wt01.temperature_max| null| root.ln| FLOAT| GORILLA| SNAPPY|null| null|\n|root.ln.wf01.wt02.temperature_max| null| root.ln| FLOAT| GORILLA| SNAPPY|null| null|\n|root.ln.wf01.wt01.temperature_max| null| root.ln| FLOAT| GORILLA| SNAPPY|null| null|\n+---------------------------------+-----+-------------+--------+--------+-----------+----+----------+\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br"),t("span",{staticClass:"line-number"},[s._v("3")]),t("br"),t("span",{staticClass:"line-number"},[s._v("4")]),t("br"),t("span",{staticClass:"line-number"},[s._v("5")]),t("br"),t("span",{staticClass:"line-number"},[s._v("6")]),t("br"),t("span",{staticClass:"line-number"},[s._v("7")]),t("br"),t("span",{staticClass:"line-number"},[s._v("8")]),t("br")])]),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[s._v("+-----------------------------+---------------------------------+---------------------------------+---------------------------------+---------------------------------+\n| Time|root.ln.wf02.wt02.temperature_max|root.ln.wf02.wt01.temperature_max|root.ln.wf01.wt02.temperature_max|root.ln.wf01.wt01.temperature_max|\n+-----------------------------+---------------------------------+---------------------------------+---------------------------------+---------------------------------+\n|2021-05-11T22:18:16.964+08:00| 122.0| 68.0| 68.0| 103.0|\n|2021-05-11T22:18:26.964+08:00| 182.0| 113.0| 59.0| 181.0|\n|2021-05-11T22:18:36.964+08:00| 78.0| 38.0| 123.0| 52.0|\n|2021-05-11T22:18:46.964+08:00| 137.0| 172.0| 183.0| 193.0|\n+-----------------------------+---------------------------------+---------------------------------+---------------------------------+---------------------------------+\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br"),t("span",{staticClass:"line-number"},[s._v("3")]),t("br"),t("span",{staticClass:"line-number"},[s._v("4")]),t("br"),t("span",{staticClass:"line-number"},[s._v("5")]),t("br"),t("span",{staticClass:"line-number"},[s._v("6")]),t("br"),t("span",{staticClass:"line-number"},[s._v("7")]),t("br"),t("span",{staticClass:"line-number"},[s._v("8")]),t("br")])]),t("h5",{attrs:{id:"创建-cq2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#创建-cq2"}},[s._v("#")]),s._v(" 创建 "),t("code",[s._v("cq2")])]),s._v(" "),t("div",{staticClass:"language-sql line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-sql"}},[t("code",[t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("CREATE")]),s._v(" CONTINUOUS QUERY cq2 \nRESAMPLE EVERY "),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("20")]),s._v("s "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("FOR")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("20")]),s._v("s \n"),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("BEGIN")]),s._v(" \n "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("SELECT")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("avg")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("temperature"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" \n "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("INTO")]),s._v(" temperature_avg \n "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("FROM")]),s._v(" root"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("ln"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v(" \n "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("GROUP")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("BY")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("time")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("10")]),s._v("s"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("level")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("2")]),s._v(" \n"),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("END")]),s._v("\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br"),t("span",{staticClass:"line-number"},[s._v("3")]),t("br"),t("span",{staticClass:"line-number"},[s._v("4")]),t("br"),t("span",{staticClass:"line-number"},[s._v("5")]),t("br"),t("span",{staticClass:"line-number"},[s._v("6")]),t("br"),t("span",{staticClass:"line-number"},[s._v("7")]),t("br"),t("span",{staticClass:"line-number"},[s._v("8")]),t("br")])]),t("p",[s._v("每隔 20s 查询 "),t("code",[s._v("root.ln.*.*.temperature")]),s._v(" 在前 20s 内的平均值(结果以 10s 为一组,按照第 2 层节点分组),\n将结果写入到 "),t("code",[s._v("root.${1}.${2}.temperature_avg")]),s._v(" 中。\n结果将产生如下两条新序列,\n其中 "),t("code",[s._v("root.ln.wf02.temperature_avg")]),s._v(" 由 "),t("code",[s._v("root.ln.wf02.wt02.temperature")]),s._v(" 和 "),t("code",[s._v("root.ln.wf02.wt01.temperature")]),s._v(" 聚合计算生成,\n"),t("code",[s._v("root.ln.wf01.temperature_avg")]),s._v(" 由 "),t("code",[s._v("root.ln.wf01.wt02.temperature")]),s._v(" 和 "),t("code",[s._v("root.ln.wf01.wt01.temperature")]),s._v(" 聚合计算生成。")]),s._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[s._v("+----------------------------+-----+-------------+--------+--------+-----------+----+----------+\n| timeseries|alias|storage group|dataType|encoding|compression|tags|attributes|\n+----------------------------+-----+-------------+--------+--------+-----------+----+----------+\n|root.ln.wf02.temperature_avg| null| root.ln| DOUBLE| GORILLA| SNAPPY|null| null|\n|root.ln.wf01.temperature_avg| null| root.ln| DOUBLE| GORILLA| SNAPPY|null| null|\n+----------------------------+-----+-------------+--------+--------+-----------+----+----------+\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br"),t("span",{staticClass:"line-number"},[s._v("3")]),t("br"),t("span",{staticClass:"line-number"},[s._v("4")]),t("br"),t("span",{staticClass:"line-number"},[s._v("5")]),t("br"),t("span",{staticClass:"line-number"},[s._v("6")]),t("br")])]),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[s._v("+-----------------------------+----------------------------+----------------------------+\n| Time|root.ln.wf02.temperature_avg|root.ln.wf01.temperature_avg|\n+-----------------------------+----------------------------+----------------------------+\n|2021-05-11T22:18:16.969+08:00| 58.75| 49.0|\n|2021-05-11T22:18:26.969+08:00| 89.0| 112.25|\n|2021-05-11T22:18:36.969+08:00| 42.25| 61.5|\n|2021-05-11T22:18:46.969+08:00| 112.25| 132.25|\n+-----------------------------+----------------------------+----------------------------+\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br"),t("span",{staticClass:"line-number"},[s._v("3")]),t("br"),t("span",{staticClass:"line-number"},[s._v("4")]),t("br"),t("span",{staticClass:"line-number"},[s._v("5")]),t("br"),t("span",{staticClass:"line-number"},[s._v("6")]),t("br"),t("span",{staticClass:"line-number"},[s._v("7")]),t("br"),t("span",{staticClass:"line-number"},[s._v("8")]),t("br")])]),t("h5",{attrs:{id:"创建-cq3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#创建-cq3"}},[s._v("#")]),s._v(" 创建 "),t("code",[s._v("cq3")])]),s._v(" "),t("div",{staticClass:"language-sql line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-sql"}},[t("code",[t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("CREATE")]),s._v(" CONTINUOUS QUERY cq3 \nRESAMPLE EVERY "),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("20")]),s._v("s "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("FOR")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("20")]),s._v("s \n"),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("BEGIN")]),s._v(" \n "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("SELECT")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("avg")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("temperature"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" \n "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("INTO")]),s._v(" root"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("ln_cq"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("${"),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("2")]),s._v("}"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("temperature_avg \n "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("FROM")]),s._v(" root"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("ln"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v(" \n "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("GROUP")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("BY")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("time")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("10")]),s._v("s"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("level")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("2")]),s._v(" \n"),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("END")]),s._v("\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br"),t("span",{staticClass:"line-number"},[s._v("3")]),t("br"),t("span",{staticClass:"line-number"},[s._v("4")]),t("br"),t("span",{staticClass:"line-number"},[s._v("5")]),t("br"),t("span",{staticClass:"line-number"},[s._v("6")]),t("br"),t("span",{staticClass:"line-number"},[s._v("7")]),t("br"),t("span",{staticClass:"line-number"},[s._v("8")]),t("br")])]),t("p",[s._v("查询模式与 cq2 相同,在这个例子中,用户自行指定结果写入到 "),t("code",[s._v("root.ln_cq.${2}.temperature_avg")]),s._v(" 中。\n结果将产生如下两条新序列,\n其中 "),t("code",[s._v("root.ln_cq.wf02.temperature_avg")]),s._v(" 由 "),t("code",[s._v("root.ln.wf02.wt02.temperature")]),s._v(" 和 "),t("code",[s._v("root.ln.wf02.wt01.temperature")]),s._v(" 聚合计算生成,\n"),t("code",[s._v("root.ln_cq.wf01.temperature_avg")]),s._v(" 由 "),t("code",[s._v("root.ln.wf01.wt02.temperature")]),s._v(" 和 "),t("code",[s._v("root.ln.wf01.wt01.temperature")]),s._v(" 聚合计算生成。")]),s._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[s._v("+-------------------------------+-----+-------------+--------+--------+-----------+----+----------+\n| timeseries|alias|storage group|dataType|encoding|compression|tags|attributes|\n+-------------------------------+-----+-------------+--------+--------+-----------+----+----------+\n|root.ln_cq.wf02.temperature_avg| null| root.ln_cq| DOUBLE| GORILLA| SNAPPY|null| null|\n|root.ln_cq.wf01.temperature_avg| null| root.ln_cq| DOUBLE| GORILLA| SNAPPY|null| null|\n+-------------------------------+-----+-------------+--------+--------+-----------+----+----------+\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br"),t("span",{staticClass:"line-number"},[s._v("3")]),t("br"),t("span",{staticClass:"line-number"},[s._v("4")]),t("br"),t("span",{staticClass:"line-number"},[s._v("5")]),t("br"),t("span",{staticClass:"line-number"},[s._v("6")]),t("br")])]),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[s._v("+-----------------------------+-------------------------------+-------------------------------+\n| Time|root.ln_cq.wf02.temperature_avg|root.ln_cq.wf01.temperature_avg|\n+-----------------------------+-------------------------------+-------------------------------+\n|2021-05-11T22:18:16.971+08:00| 58.75| 49.0|\n|2021-05-11T22:18:26.971+08:00| 89.0| 112.25|\n|2021-05-11T22:18:36.971+08:00| 42.25| 61.5|\n|2021-05-11T22:18:46.971+08:00| 112.25| 132.25|\n+-----------------------------+-------------------------------+-------------------------------+\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br"),t("span",{staticClass:"line-number"},[s._v("3")]),t("br"),t("span",{staticClass:"line-number"},[s._v("4")]),t("br"),t("span",{staticClass:"line-number"},[s._v("5")]),t("br"),t("span",{staticClass:"line-number"},[s._v("6")]),t("br"),t("span",{staticClass:"line-number"},[s._v("7")]),t("br"),t("span",{staticClass:"line-number"},[s._v("8")]),t("br")])]),t("h5",{attrs:{id:"创建-cq4"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#创建-cq4"}},[s._v("#")]),s._v(" 创建 "),t("code",[s._v("cq4")])]),s._v(" "),t("div",{staticClass:"language-sql line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-sql"}},[t("code",[t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("CREATE")]),s._v(" CONTINUOUS QUERY cq4 \nRESAMPLE EVERY "),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("20")]),s._v("s "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("FOR")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("20")]),s._v("s BOUNDARY "),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("2022")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("01")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("14")]),s._v("T23:"),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("00")]),s._v(":"),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("00.000")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("+")]),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("08")]),s._v(":"),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("00")]),s._v(" \n"),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("BEGIN")]),s._v(" \n "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("SELECT")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("avg")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("temperature"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" \n "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("INTO")]),s._v(" root"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("ln_cq"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("${"),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("2")]),s._v("}"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("temperature_avg \n "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("FROM")]),s._v(" root"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("ln"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("GROUP")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("BY")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("time")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("10")]),s._v("s"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("level")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("2")]),s._v(" \n"),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("END")]),s._v("\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br"),t("span",{staticClass:"line-number"},[s._v("3")]),t("br"),t("span",{staticClass:"line-number"},[s._v("4")]),t("br"),t("span",{staticClass:"line-number"},[s._v("5")]),t("br"),t("span",{staticClass:"line-number"},[s._v("6")]),t("br"),t("span",{staticClass:"line-number"},[s._v("7")]),t("br")])]),t("p",[s._v("这个例子与创建 cq3 几乎完全相同。不同的是,在这个例子中用户自行指定了 "),t("code",[s._v("BOUNDARY 2022-01-14T23:00:00.000+08:00")]),s._v(" 。")]),s._v(" "),t("p",[s._v("注意这个 CQ 的第一个执行时刻大于例子中的时间,因此 "),t("code",[s._v("2022-01-14T23:00:20.000+08:00")]),s._v(" 为第一个执行时刻。递推地,"),t("code",[s._v("2022-01-14T23:00:40.000+08:00")]),s._v(" 为第二个执行时刻,"),t("code",[s._v("2022-01-14T23:01:00.000+08:00")]),s._v(" 为第三个执行时刻……")]),s._v(" "),t("p",[s._v("第一个执行时刻执行的 SQL 语句为 "),t("code",[s._v("select avg(temperature) from root.ln.*.* group by ([2022-01-14T23:00:00.000+08:00, 2022-01-14T23:00:20.000+08:00), 10s), level = 2")]),s._v("。")]),s._v(" "),t("p",[s._v("第二个执行时刻执行的 SQL 语句为 "),t("code",[s._v("select avg(temperature) from root.ln.*.* group by ([2022-01-14T23:00:20.000+08:00, 2022-01-14T23:00:40.000+08:00), 10s), level = 2")]),s._v("。")]),s._v(" "),t("p",[s._v("第三个执行时刻执行的 SQL 语句为 "),t("code",[s._v("select avg(temperature) from root.ln.*.* group by ([2022-01-14T23:00:40.000+08:00, 2022-01-14T23:01:00.000+08:00), 10s), level = 2")]),s._v("。")]),s._v(" "),t("p",[s._v("……")]),s._v(" "),t("h3",{attrs:{id:"展示-cq-信息"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#展示-cq-信息"}},[s._v("#")]),s._v(" 展示 CQ 信息")]),s._v(" "),t("h4",{attrs:{id:"语法-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#语法-2"}},[s._v("#")]),s._v(" 语法")]),s._v(" "),t("div",{staticClass:"language-sql line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-sql"}},[t("code",[t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("SHOW")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("CONTINUOUS QUERIES "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" CQS"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" \n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br")])]),t("h4",{attrs:{id:"结果示例"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#结果示例"}},[s._v("#")]),s._v(" 结果示例")]),s._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[s._v("+-------+--------------+------------+-------------+----------------------------------------------------------------------------------------+-----------------------------------+\n|cq name|every interval|for interval| boundary| query sql| target path|\n+-------+--------------+------------+-------------+----------------------------------------------------------------------------------------+-----------------------------------+\n| cq1| 10000| 10000|1642166102238| select max_value(temperature) from root.ln.*.* group by ([now() - 10s, now()), 10s)|root.${1}.${2}.${3}.temperature_max|\n| cq3| 20000| 20000|1642166118339|select avg(temperature) from root.ln.*.* group by ([now() - 20s, now()), 10s), level = 2| root.ln_cq.${2}.temperature_avg|\n| cq2| 20000| 20000|1642166111493|select avg(temperature) from root.ln.*.* group by ([now() - 20s, now()), 10s), level = 2| root.${1}.${2}.temperature_avg|\n| cq4| 20000| 20000|1642172400000|select avg(temperature) from root.ln.*.* group by ([now() - 20s, now()), 10s), level = 2| root.ln_cq.${2}.temperature_avg|\n+-------+--------------+------------+-------------+----------------------------------------------------------------------------------------+-----------------------------------+\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br"),t("span",{staticClass:"line-number"},[s._v("3")]),t("br"),t("span",{staticClass:"line-number"},[s._v("4")]),t("br"),t("span",{staticClass:"line-number"},[s._v("5")]),t("br"),t("span",{staticClass:"line-number"},[s._v("6")]),t("br"),t("span",{staticClass:"line-number"},[s._v("7")]),t("br"),t("span",{staticClass:"line-number"},[s._v("8")]),t("br")])]),t("h3",{attrs:{id:"删除-cq"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#删除-cq"}},[s._v("#")]),s._v(" 删除 CQ")]),s._v(" "),t("h4",{attrs:{id:"语法-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#语法-3"}},[s._v("#")]),s._v(" 语法")]),s._v(" "),t("div",{staticClass:"language-sql line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-sql"}},[t("code",[t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("DROP")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("CONTINUOUS QUERY "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" CQ"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("cq_id"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" \n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br")])]),t("h4",{attrs:{id:"示例-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#示例-2"}},[s._v("#")]),s._v(" 示例")]),s._v(" "),t("div",{staticClass:"language-sql line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-sql"}},[t("code",[t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("DROP")]),s._v(" CONTINUOUS QUERY cq3\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br")])]),t("div",{staticClass:"language-sql line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-sql"}},[t("code",[t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("DROP")]),s._v(" CQ cq3\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br")])]),t("h2",{attrs:{id:"系统参数配置"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#系统参数配置"}},[s._v("#")]),s._v(" 系统参数配置")]),s._v(" "),t("table",[t("thead",[t("tr",[t("th",{staticStyle:{"text-align":"left"}},[s._v("参数名")]),s._v(" "),t("th",[s._v("描述")]),s._v(" "),t("th",[s._v("数据类型")]),s._v(" "),t("th",[s._v("默认值")])])]),s._v(" "),t("tbody",[t("tr",[t("td",{staticStyle:{"text-align":"left"}},[t("code",[s._v("continuous_query_execution_thread")])]),s._v(" "),t("td",[s._v("执行连续查询任务的线程池的线程数")]),s._v(" "),t("td",[s._v("int")]),s._v(" "),t("td",[s._v("max(1, CPU 核数 / 2)")])]),s._v(" "),t("tr",[t("td",{staticStyle:{"text-align":"left"}},[t("code",[s._v("max_pending_continuous_query_tasks")])]),s._v(" "),t("td",[s._v("队列中连续查询最大任务堆积数")]),s._v(" "),t("td",[s._v("int")]),s._v(" "),t("td",[s._v("64")])]),s._v(" "),t("tr",[t("td",{staticStyle:{"text-align":"left"}},[t("code",[s._v("continuous_query_min_every_interval")])]),s._v(" "),t("td",[s._v("连续查询执行时间间隔的最小值")]),s._v(" "),t("td",[s._v("duration")]),s._v(" "),t("td",[s._v("1s")])])])])])}),[],!1,null,null,null);t.default=n.exports}}]);