TimescaleDB:n hypertaulet
Muunna Postgres-taulu TimescaleDB:n hypertauuluksi, jossa aika osioidaan automaattisesti lohkovälin mukaan.
TimescaleDB:n hypertaulet on ilmainen SQL Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu SQL Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. SQL Academy-kurssilla on yhteensä 4 oppituntia.
Mikä on TimescaleDB?
Aikasarjadataa varten rakennettu PostgreSQL-laajennus. Se lisää automaattisen aikaperusteisen osioinnin, pakkauksen, tietojen säilytyksen ja jatkuvat aggregaatit. Sitä käytetään itsenäisesti tai tavallisen Postgresin rinnalla.
Hypertable
Loogisesti yksi taulu, joka on fyysisesti jaettu ajan perusteella "chunkien" osiin:
CREATE EXTENSION IF NOT EXISTS timescaledb;
CREATE TABLE metrics (
ts TIMESTAMPTZ NOT NULL,
device_id BIGINT NOT NULL,
value DOUBLE PRECISION
);
SELECT create_hypertable('metrics', 'ts');
-- metrics is now a hypertable, chunks created automatically.Chunk-aikaväli
Oletus-chunk on 7 päivää. Säätäkää arvo datan tulonopeuden mukaan (käyttäkää pienempiä chunkeja nopeasti saapuvalle datalle):
SELECT create_hypertable('metrics', 'ts', chunk_time_interval => INTERVAL '1 day');
-- One chunk per day, smaller and faster to drop.Datan lisääminen
Käyttäkää tavallista INSERT-lauseetta — TimescaleDB ohjaa rivit oikeaan chunkiin:
INSERT INTO metrics (ts, device_id, value)
VALUES (NOW(), 1, 42.5);Hypertable-taulujen kyselyt
Ne näyttävät tavallisilta tauluilta. Kyselysuunnittelija karsii chunkit aikarajatuissa kyselyissä:
SELECT * FROM metrics
WHERE ts >= NOW() - INTERVAL '7 days'
ORDER BY ts DESC LIMIT 100;
-- Only the relevant chunks are read.time_bucket: älykkäämpi date_trunc
TimescaleDB:n ryhmittelyapu:
SELECT time_bucket('1 hour', ts) AS hour,
AVG(value) AS avg_value
FROM metrics
WHERE device_id = 42
AND ts >= NOW() - INTERVAL '24 hours'
GROUP BY hour
ORDER BY hour;Monisarakkeinen osiointi
Usean vuokraajan työkuormissa osioikaa myös device_id:n mukaan:
SELECT create_hypertable('metrics', 'ts', 'device_id', 4);
-- Hash-partitions device_id into 4 space partitions per time chunk.Kyselyt molemmilla suodattimilla
Suorituskyky on parhaimmillaan, kun molemmilla osiointidimensioilla suodatetaan:
SELECT * FROM metrics
WHERE device_id = 42
AND ts >= NOW() - INTERVAL '7 days';
-- Prunes by both time and space.Hypertable-taulujen indeksit
Indeksit luodaan jokaiseen chunkiin:
CREATE INDEX metrics_device_idx ON metrics (device_id, ts DESC);
-- Composite index ideal for 'recent data for one device' queries.Hypertable-taulujen päivittäminen
UPDATE- ja DELETE-operaatiot toimivat, mutta niiden tulisi olla aikasarjoissa harvinaisia. Vanha data on yleensä vain lisäävää ja muuttumatonta.
Siirtyminen tavallisista tauluista
Olemassa olevat taulut voidaan muuntaa hypertableiksi:
SELECT create_hypertable('metrics', 'ts', migrate_data => true);Kertaus
Hypertablet = Postgresin automaattinen aikaperusteinen osiointi.
- Yksi looginen taulu, monta fyysistä chunkia
- create_hypertable + chunk_time_interval
- time_bucket ryhmiteltyihin aggregaatteihin
- Indeksit luodaan kaikkiin chunkeihin
Pikatarkistus
Vastaanotatte IoT-mittareita 100 000 riviä sekunnissa. Miksi taulu kannattaa muuntaa TimescaleDB-hypertableksi?
Opi SQL tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 46
- Oppitunnit
- 183
Usein kysytyt kysymykset
Onko oppitunti ”TimescaleDB:n hypertaulet” ilmainen?
Kyllä – oppitunnin ”TimescaleDB:n hypertaulet” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko SQL Academy-kurssin, päivitä CoddyKit PROhon. SQL Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”TimescaleDB:n hypertaulet”?
Muunna Postgres-taulu TimescaleDB:n hypertauuluksi, jossa aika osioidaan automaattisesti lohkovälin mukaan. Harjoittelet SQL Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni SQL Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin SQL Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.
Kuinka kauan ”TimescaleDB:n hypertaulet”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä SQL Academy-oppitunnilla?
Kyllä. Jokainen SQL Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- TimescaleDB:n hypertaulet
- Jatkuvat koostetut näkymät
- Pakkaus- ja säilytyskäytännöt
- Aikasarjojen indeksivalinnat