CREATE TABLE `api_requests` ( `timestamp` TIMESTAMP NOT NULL, `request_id` STRING NOT NULL, `upstream_id` STRING NOT NULL, `application_id` STRING NULL, `url` STRING NOT NULL, `method` STRING NOT NULL, `status_code` INTEGER NOT NULL, `request_headers` JSON NULL, `request_body` STRING NULL, `response_headers` JSON NULL, `response_body` STRING NULL, `latency_ms` INTEGER NOT NULL, `client_ip` STRING NULL, `user_agent` STRING NULL, TIME INDEX (`timestamp`) ) WITH( append_mode = 'true' ); CREATE TABLE api_request_volume_upstream_stats ( `upstream_id` STRING NOT NULL, `time_window` TIMESTAMP NOT NULL, `request_count` BIGINT NOT NULL, TIME INDEX (`time_window`) ); CREATE FLOW api_request_volume_by_upstream SINK TO api_request_volume_upstream_stats AS SELECT upstream_id, date_bin(INTERVAL '1 hour', timestamp, '2024-01-01 00:00:00'::TimestampNanosecond) AS time_window, COUNT(*) AS request_count FROM api_requests GROUP BY upstream_id, time_window; DROP FLOW api_request_volume_by_upstream; DROP TABLE api_request_volume_upstream_stats; DROP TABLE api_requests;