mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-06-01 21:00:38 +00:00
fix(flow): harden incremental read correctness (#8196)
* fix(flow): harden incremental read correctness Signed-off-by: discord9 <discord9@163.com> * fix(flow): propagate dirty window options Signed-off-by: discord9 <discord9@163.com> * test: more Signed-off-by: discord9 <discord9@163.com> * chore: test config api Signed-off-by: discord9 <discord9@163.com> * refactor: split gen Signed-off-by: discord9 <discord9@163.com> * chore: per review Signed-off-by: discord9 <discord9@163.com> * fix: allowlist key Signed-off-by: discord9 <discord9@163.com> --------- Signed-off-by: discord9 <discord9@163.com>
This commit is contained in:
@@ -1,3 +1,31 @@
|
||||
-- Incremental aggregate reads only support append-only source tables because
|
||||
-- update/upsert sources need old-value compensation.
|
||||
CREATE TABLE incremental_non_append_input (
|
||||
host_id INT,
|
||||
n INT,
|
||||
ts TIMESTAMP TIME INDEX,
|
||||
PRIMARY KEY(host_id)
|
||||
);
|
||||
|
||||
Affected Rows: 0
|
||||
|
||||
CREATE FLOW incremental_non_append_flow SINK TO incremental_non_append_sink
|
||||
WITH (experimental_enable_incremental_read = 'true')
|
||||
AS
|
||||
SELECT
|
||||
sum(n) AS total,
|
||||
date_bin(INTERVAL '1 minute', ts, '2024-01-01 00:00:00') AS time_window
|
||||
FROM
|
||||
incremental_non_append_input
|
||||
GROUP BY
|
||||
time_window;
|
||||
|
||||
Error: 3001(EngineExecuteQuery), Unsupported: Flow incremental read requires append-only source table, but source table `greptime.public.incremental_non_append_input` is not append-only. Consider setting append_mode='true' on the source table or disabling experimental_enable_incremental_read
|
||||
|
||||
DROP TABLE incremental_non_append_input;
|
||||
|
||||
Affected Rows: 0
|
||||
|
||||
CREATE TABLE incremental_aggr_input (
|
||||
host_id INT,
|
||||
n INT,
|
||||
@@ -9,7 +37,9 @@ CREATE TABLE incremental_aggr_input (
|
||||
|
||||
Affected Rows: 0
|
||||
|
||||
CREATE FLOW incremental_aggr_flow SINK TO incremental_aggr_sink AS
|
||||
CREATE FLOW incremental_aggr_flow SINK TO incremental_aggr_sink
|
||||
WITH (experimental_enable_incremental_read = 'true')
|
||||
AS
|
||||
SELECT
|
||||
sum(n) AS total,
|
||||
min(n) AS min_n,
|
||||
|
||||
@@ -1,3 +1,25 @@
|
||||
-- Incremental aggregate reads only support append-only source tables because
|
||||
-- update/upsert sources need old-value compensation.
|
||||
CREATE TABLE incremental_non_append_input (
|
||||
host_id INT,
|
||||
n INT,
|
||||
ts TIMESTAMP TIME INDEX,
|
||||
PRIMARY KEY(host_id)
|
||||
);
|
||||
|
||||
CREATE FLOW incremental_non_append_flow SINK TO incremental_non_append_sink
|
||||
WITH (experimental_enable_incremental_read = 'true')
|
||||
AS
|
||||
SELECT
|
||||
sum(n) AS total,
|
||||
date_bin(INTERVAL '1 minute', ts, '2024-01-01 00:00:00') AS time_window
|
||||
FROM
|
||||
incremental_non_append_input
|
||||
GROUP BY
|
||||
time_window;
|
||||
|
||||
DROP TABLE incremental_non_append_input;
|
||||
|
||||
CREATE TABLE incremental_aggr_input (
|
||||
host_id INT,
|
||||
n INT,
|
||||
@@ -7,7 +29,9 @@ CREATE TABLE incremental_aggr_input (
|
||||
append_mode = 'true'
|
||||
);
|
||||
|
||||
CREATE FLOW incremental_aggr_flow SINK TO incremental_aggr_sink AS
|
||||
CREATE FLOW incremental_aggr_flow SINK TO incremental_aggr_sink
|
||||
WITH (experimental_enable_incremental_read = 'true')
|
||||
AS
|
||||
SELECT
|
||||
sum(n) AS total,
|
||||
min(n) AS min_n,
|
||||
|
||||
@@ -12,7 +12,9 @@ CREATE TABLE flow_incr_memtable_input (
|
||||
|
||||
Affected Rows: 0
|
||||
|
||||
CREATE FLOW flow_incr_memtable SINK TO flow_incr_memtable_sink AS
|
||||
CREATE FLOW flow_incr_memtable SINK TO flow_incr_memtable_sink
|
||||
WITH (experimental_enable_incremental_read = 'true')
|
||||
AS
|
||||
SELECT
|
||||
sum(n) AS total,
|
||||
min(n) AS min_n,
|
||||
|
||||
@@ -10,7 +10,9 @@ CREATE TABLE flow_incr_memtable_input (
|
||||
append_mode = 'true'
|
||||
);
|
||||
|
||||
CREATE FLOW flow_incr_memtable SINK TO flow_incr_memtable_sink AS
|
||||
CREATE FLOW flow_incr_memtable SINK TO flow_incr_memtable_sink
|
||||
WITH (experimental_enable_incremental_read = 'true')
|
||||
AS
|
||||
SELECT
|
||||
sum(n) AS total,
|
||||
min(n) AS min_n,
|
||||
|
||||
@@ -17,7 +17,9 @@ WITH (
|
||||
|
||||
Affected Rows: 0
|
||||
|
||||
CREATE FLOW flow_incr_part SINK TO flow_incr_part_sink AS
|
||||
CREATE FLOW flow_incr_part SINK TO flow_incr_part_sink
|
||||
WITH (experimental_enable_incremental_read = 'true')
|
||||
AS
|
||||
SELECT
|
||||
sum(n) AS total,
|
||||
min(n) AS min_n,
|
||||
|
||||
@@ -15,7 +15,9 @@ WITH (
|
||||
append_mode = 'true'
|
||||
);
|
||||
|
||||
CREATE FLOW flow_incr_part SINK TO flow_incr_part_sink AS
|
||||
CREATE FLOW flow_incr_part SINK TO flow_incr_part_sink
|
||||
WITH (experimental_enable_incremental_read = 'true')
|
||||
AS
|
||||
SELECT
|
||||
sum(n) AS total,
|
||||
min(n) AS min_n,
|
||||
|
||||
@@ -476,7 +476,7 @@ SINK TO out_num_cnt_show
|
||||
WITH (access_key_id = [true])
|
||||
AS SELECT number AS n1 FROM numbers_input_show where number > 10;
|
||||
|
||||
Error: 1004(InvalidArguments), Invalid SQL, error: unknown flow option 'access_key_id', supported options: defer_on_missing_source
|
||||
Error: 1004(InvalidArguments), Invalid SQL, error: unknown flow option 'access_key_id', supported options: defer_on_missing_source, experimental_enable_incremental_read
|
||||
|
||||
DROP FLOW filter_numbers_show;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user