TimeScaleDB er en open-source database bygget på PostgreSQL, som er optimeret til time-series data og big data applikationer. Den udvider PostgreSQL med funktioner, der er specifikt designet til at håndtere tidsseriedata i stor skala.
HyperTables er kernefunktionaliteten i TimeScaleDB. De partitionerer automatisk tidsseriedata i chunks baseret på tidsintervaller: https://docs.timescale.com/use-timescale/latest/hypertables/about-hypertables/
HyperTables giver et transparent abstraktionslag, der gør håndtering af tidsseriedata mere effektiv:
Grundlæggende syntax for at oprette en hypertable:
-- Først oprettes en almindelig tabelCREATE TABLE conditions (
time TIMESTAMPTZ NOT NULL,
sensor_id INTEGER NOT NULL,
value DOUBLE PRECISION NULL
);
-- Konverter den til en hypertableSELECT create_hypertable(
'conditions',
by_range('time', INTERVAL '7 days')
);
time_bucket()
er en kraftfuld funktion til tidsbaseret aggregering:
SELECT
time_bucket('7 days', time) as bucket,
count(*) as number_of_rows,
avg(value) as average_value
FROM conditions
GROUP BY bucket;
TimeScaleDB understøtter automatisk materialiserede views, der løbende opdateres:
CREATE MATERIALIZED VIEW daily_summary
WITH (timescaledb.continuous) AS
SELECT time_bucket('1 day', time) as bucket,
avg(value) as avg_value,
count(*) as num_readings
FROM conditions
GROUP BY bucket;
TimeScaleDB viser betydelige ydelsesforbedringer sammenlignet med almindelige PostgreSQL tabeller, især for:
For eksempel kan forespørgsler, der beregner glidende gennemsnit eller grupperer data efter tidsintervaller, være op til 10-20 gange hurtigere på hypertables sammenlignet med almindelige tabeller.
TimeScaleDB er ideel til: