Following are the queries in timescaledb which i need to convert into clickhouse as clickhouse supports timeseries data as well
Following are the timescaledb queries:
CREATE MATERIALIZED VIEW
metadata5mins(
ts,tws, counter_agg, measuringpointid, min, max, startingvalue, endingvalue
)
WITH (timescaledb.continuous) AS
select
time_bucket('5 m', timestamp),
time_weight('LOCF', timestamp, value),
counter_agg(timestamp, value),
measuringpointid,
min(value), max(value), first(value, timestamp),
last(value, timestamp)
FROM ds_measuringpointvalues
GROUP BY time_bucket('5m', timestamp), measuringpointid
and
select ts ,measuringpointid,
interpolated_average(tws, ts, '5 m',
LAG(tws) OVER (PARTITION BY measuringpointid ORDER by ts),
LEAD(tws) OVER (PARTITION BY measuringpointid ORDER by ts)
),
min, max,
interpolated_integral(tws, ts, '5 m',
LAG(tws) OVER (PARTITION BY measuringpointid ORDER by ts),
LEAD(tws) OVER (PARTITION BY measuringpointid ORDER by ts)
),startingvalue
, endingvalue, num_changes(counter_agg)
FROM metadata5mins;
Currently what i have achieved (min,max,first and last value for specified 5 mins interval):
SELECT
toStartOfInterval(timestamp, INTERVAL 5 minute) AS bucket_start,
measuringpointid,
assemblylineid,
min(value) AS min_value,
max(value) AS max_value,
argMin(value, timestamp) AS first_value, -- Similar to first(value, timestamp)
argMax(value, timestamp) AS last_value
FROM
ds_measuringpointvalues
GROUP BY
toStartOfInterval(timestamp, INTERVAL 5 minute), measuringpointid, assemblylineid;
Note: i want to calculate interpolated average,interpolated_integral for the specified interval.Please someone who has worked on timeseries data and has solved similar problem in Clickhouse help me in this.thanks
Currently what i have achieved (min,max,first and last value for specified 5 mins interval):
SELECT
toStartOfInterval(timestamp, INTERVAL 5 minute) AS bucket_start,
measuringpointid,
assemblylineid,
min(value) AS min_value,
max(value) AS max_value,
argMin(value, timestamp) AS first_value, -- Similar to first(value, timestamp)
argMax(value, timestamp) AS last_value
FROM
ds_measuringpointvalues
GROUP BY
toStartOfInterval(timestamp, INTERVAL 5 minute), measuringpointid, assemblylineid;