-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
refactor: set default values back to the original resource
- Loading branch information
Showing
6 changed files
with
91 additions
and
114 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -35,4 +35,3 @@ spec: | |
rpcPort: 4001 | ||
mysqlPort: 4002 | ||
postgreSQLPort: 4003 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,100 +1,62 @@ | ||
CREATE TABLE numbers_input_basic ( | ||
number INT, | ||
ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP, | ||
PRIMARY KEY(number), | ||
TIME INDEX(ts) | ||
-- FIXME(zyy17): The test case will be replaced by the real sqlness test case. | ||
|
||
CREATE TABLE `ngx_access_log` ( | ||
`client` STRING NULL, | ||
`ua_platform` STRING NULL, | ||
`referer` STRING NULL, | ||
`method` STRING NULL, | ||
`endpoint` STRING NULL, | ||
`trace_id` STRING NULL FULLTEXT, | ||
`protocol` STRING NULL, | ||
`status` SMALLINT UNSIGNED NULL, | ||
`size` DOUBLE NULL, | ||
`agent` STRING NULL, | ||
`access_time` TIMESTAMP(3) NOT NULL, | ||
TIME INDEX (`access_time`) | ||
) | ||
WITH( | ||
append_mode = 'true' | ||
); | ||
|
||
CREATE FLOW test_numbers_basic | ||
SINK TO out_num_cnt_basic | ||
AS | ||
SELECT sum(number) FROM numbers_input_basic GROUP BY tumble(ts, '1 second', '2021-07-01 00:00:00'); | ||
|
||
-- TODO(discord9): confirm if it's necessary to flush flow here? | ||
-- because flush_flow result is at most 1 | ||
select flush_flow('test_numbers_basic')<=1; | ||
|
||
-- SQLNESS ARG restart=true | ||
INSERT INTO numbers_input_basic | ||
CREATE TABLE `ngx_statistics` ( | ||
`status` SMALLINT UNSIGNED NULL, | ||
`total_logs` BIGINT NULL, | ||
`min_size` DOUBLE NULL, | ||
`max_size` DOUBLE NULL, | ||
`avg_size` DOUBLE NULL, | ||
`high_size_count` DOUBLE NULL, | ||
`time_window` TIMESTAMP time index, | ||
`update_at` TIMESTAMP NULL, | ||
PRIMARY KEY (`status`)); | ||
|
||
CREATE FLOW ngx_aggregation | ||
SINK TO ngx_statistics | ||
AS | ||
SELECT | ||
status, | ||
count(client) AS total_logs, | ||
min(size) as min_size, | ||
max(size) as max_size, | ||
avg(size) as avg_size, | ||
sum(case when `size` > 550::double then 1::double else 0::double end) as high_size_count, | ||
date_bin(INTERVAL '1 minutes', access_time) as time_window, | ||
FROM ngx_access_log | ||
GROUP BY | ||
status, | ||
time_window; | ||
|
||
INSERT INTO ngx_access_log | ||
VALUES | ||
(20, "2021-07-01 00:00:00.200"), | ||
(22, "2021-07-01 00:00:00.600"); | ||
|
||
select flush_flow('test_numbers_basic')<=1; | ||
("android", "Android", "referer", "GET", "/api/v1", "trace_id", "HTTP", 200, 1000, "agent", "2021-07-01 00:00:01.000"), | ||
("ios", "iOS", "referer", "GET", "/api/v1", "trace_id", "HTTP", 200, 500, "agent", "2021-07-01 00:00:30.500"), | ||
("android", "Android", "referer", "GET", "/api/v1", "trace_id", "HTTP", 200, 600, "agent", "2021-07-01 00:01:01.000"), | ||
("ios", "iOS", "referer", "GET", "/api/v1", "trace_id", "HTTP", 404, 700, "agent", "2021-07-01 00:01:01.500"); | ||
|
||
SELECT col_0, window_start, window_end FROM out_num_cnt_basic; | ||
SELECT * FROM ngx_statistics; | ||
|
||
select flush_flow('test_numbers_basic')<=1; | ||
|
||
INSERT INTO numbers_input_basic | ||
INSERT INTO ngx_access_log | ||
VALUES | ||
(23,"2021-07-01 00:00:01.000"), | ||
(24,"2021-07-01 00:00:01.500"); | ||
|
||
select flush_flow('test_numbers_basic')<=1; | ||
|
||
SELECT col_0, window_start, window_end FROM out_num_cnt_basic; | ||
|
||
DROP FLOW test_numbers_basic; | ||
DROP TABLE numbers_input_basic; | ||
DROP TABLE out_num_cnt_basic; | ||
|
||
-- test interprete interval | ||
|
||
CREATE TABLE numbers_input_basic ( | ||
number INT, | ||
ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP, | ||
PRIMARY KEY(number), | ||
TIME INDEX(ts) | ||
); | ||
create table out_num_cnt_basic ( | ||
number INT, | ||
ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP TIME INDEX); | ||
|
||
CREATE FLOW filter_numbers_basic SINK TO out_num_cnt_basic AS SELECT INTERVAL '1 day 1 second', INTERVAL '1 month 1 day 1 second', INTERVAL '1 year 1 month' FROM numbers_input_basic where number > 10; | ||
|
||
SHOW CREATE FLOW filter_numbers_basic; | ||
|
||
drop flow filter_numbers_basic; | ||
|
||
drop table out_num_cnt_basic; | ||
|
||
drop table numbers_input_basic; | ||
|
||
CREATE TABLE bytes_log ( | ||
byte INT, | ||
ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- event time | ||
TIME INDEX(ts) | ||
); | ||
|
||
CREATE TABLE approx_rate ( | ||
rate FLOAT, | ||
time_window TIMESTAMP, | ||
update_at TIMESTAMP, | ||
TIME INDEX(time_window) | ||
); | ||
|
||
CREATE FLOW find_approx_rate | ||
SINK TO approx_rate | ||
AS | ||
SELECT CAST((max(byte) - min(byte)) AS FLOAT)/30.0, date_bin(INTERVAL '30 second', ts) as time_window from bytes_log GROUP BY time_window; | ||
|
||
INSERT INTO bytes_log VALUES | ||
(101, '2025-01-01 00:00:01'), | ||
(300, '2025-01-01 00:00:29'); | ||
|
||
SELECT flush_flow('find_approx_rate')<=1; | ||
|
||
SELECT rate, time_window FROM approx_rate; | ||
|
||
INSERT INTO bytes_log VALUES | ||
(450, '2025-01-01 00:00:32'), | ||
(500, '2025-01-01 00:00:37'); | ||
|
||
SELECT flush_flow('find_approx_rate')<=1; | ||
|
||
SELECT rate, time_window FROM approx_rate; | ||
("android", "Android", "referer", "GET", "/api/v1", "trace_id", "HTTP", 200, 500, "agent", "2021-07-01 00:01:01.000"), | ||
("ios", "iOS", "referer", "GET", "/api/v1", "trace_id", "HTTP", 404, 800, "agent", "2021-07-01 00:01:01.500"); | ||
|
||
DROP TABLE bytes_log; | ||
DROP FLOW find_approx_rate; | ||
DROP TABLE approx_rate; | ||
SELECT * FROM ngx_statistics; |