管理 Flows
每一个 flow 是 GreptimeDB 中的一个连续聚合查询。
它根据传入的数据持续更新并聚合数据。
本文档描述了如何创建、更新和删除一个 flow。
一个 flow 有以下属性:
name: flow 的名称。在目录级别中是唯一的标识符。source tables: 为 flow 提供数据的表。每个 flow 可以有多个 source 表。sink table: 存储聚合数据的结果表。
comment: flow 的描述。SQL: 定义 flow 的连续聚合查询。有关可用表达式,请参阅 表达式。
创建或更新 flow
创建 flow 的语法是:
CREATE FLOW [ IF NOT EXISTS ] <name>
OUTPUT TO <sink-table-name>
[ EXPIRE AFTER <expr> ]
[ COMMENT = "<string>" ]
AS
<SQL>;
sink-table-name 是存储聚合数据的表名。
它可以是一个现有表或一个新表,flow 会在目标表不存在时创建它。
但如果表已经存在,表的 schema 必须与查询结果的模式匹配。
SQL 部分定义了连续聚合查询。
有关详细信息,请参阅 编写查询 部分。
一般来说,SQL 部分就像一个普通的 SELECT 子句,只是有一些不同。
一个创建 flow 的简单示例:
CREATE FLOW IF NOT EXISTS my_flow
OUTPUT TO my_sink_table
COMMENT = "My first flow in GreptimeDB"
AS
SELECT count(item) from my_source_table GROUP BY tumble(time_index, INTERVAL '5 minutes', '2024-05-20 00:00:00');