Ссылка на актуальные слайды: Google Презентация
Ссылка на PDF версию
CREATE TABLE telemetries (
imei TEXT NOT NULL,
time TIMESTAMPTZ NOT NULL,
latitude DOUBLE PRECISION NOT NULL,
longitude DOUBLE PRECISION NOT NULL,
speed SMALLINT NOT NULL,
course SMALLINT NOT NULL,
CONSTRAINT telemetries_pkey PRIMARY KEY (imei, time)
);
SELECT * FROM create_hypertable (
'telemetries', 'time',
chunk_time_interval => INTERVAL '7 days'
);
INSERT INTO telemetries VALUES ...;
SELECT
time_bucket('30 days', time) AS bucket,
imei,
avg(speed) AS avg,
max(speed) AS max
FROM telemetries
WHERE speed > 0
GROUP BY imei, bucket
ORDER BY imei, bucket;
CREATE TABLE telemetries (
imei TEXT NOT NULL,
time TIMESTAMPTZ NOT NULL,
latitude DOUBLE PRECISION NOT NULL,
longitude DOUBLE PRECISION NOT NULL,
speed SMALLINT NOT NULL,
course SMALLINT NOT NULL,
CONSTRAINT telemetries_pkey PRIMARY KEY (imei, time)
);
SELECT * FROM add_data_node('data_node_1', host => 'pg_data_node_1');
SELECT * FROM add_data_node('data_node_2', host => 'pg_data_node_2');
SELECT * FROM add_data_node('data_node_3', host => 'pg_data_node_3');
SELECT * FROM create_distributed_hypertable(
'telemetries', 'time', 'imei',
chunk_time_interval => INTERVAL '7 days'
);
INSERT INTO telemetries VALUES ...;
SELECT
time_bucket('30 days', time) AS bucket,
imei,
avg(speed) AS avg, max(speed) AS max
FROM telemetries
WHERE speed > 0
GROUP BY imei, bucket
ORDER BY imei, bucket;