Hypertable TimescaleDB
Konversikan tabel Postgres menjadi hypertable TimescaleDB, dengan partisi waktu otomatis berdasarkan interval potongan
Hypertable TimescaleDB adalah pelajaran SQL Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar SQL Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus SQL Academy mencakup 4 pelajaran total.
Apa Itu TimescaleDB?
Ekstensi PostgreSQL yang dibuat untuk data deret waktu. Menambahkan pemartisian waktu otomatis, kompresi, retensi, dan agregat berkelanjutan. Dapat digunakan secara mandiri atau bersama Postgres biasa.
Hypertabel
Satu tabel secara logis yang secara fisik dibagi menjadi "potongan" berdasarkan waktu:
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.Interval Waktu Potongan
Potongan bawaan = 7 hari. Sesuaikan dengan laju data Anda (potongan yang lebih kecil untuk data dengan laju tinggi):
SELECT create_hypertable('metrics', 'ts', chunk_time_interval => INTERVAL '1 day');
-- One chunk per day, smaller and faster to drop.Menyisipkan Data
Cukup gunakan INSERT biasa — TimescaleDB mengarahkan baris ke potongan yang tepat:
INSERT INTO metrics (ts, device_id, value)
VALUES (NOW(), 1, 42.5);Membuat Kueri pada Hypertabel
Tampil seperti tabel biasa. Perencana memangkas potongan untuk kueri yang dibatasi waktu:
SELECT * FROM metrics
WHERE ts >= NOW() - INTERVAL '7 days'
ORDER BY ts DESC LIMIT 100;
-- Only the relevant chunks are read.time_bucket: date_trunc yang Lebih Cerdas
Pembantu pengelompokan TimescaleDB:
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;Pemartisian Multi-Kolom
Untuk beban kerja dengan banyak penyewa, lakukan pemartisian juga berdasarkan device_id:
SELECT create_hypertable('metrics', 'ts', 'device_id', 4);
-- Hash-partitions device_id into 4 space partitions per time chunk.Membuat Kueri dengan Kedua Filter
Kinerja terbaik tercapai saat kedua dimensi pemartisian difilter:
SELECT * FROM metrics
WHERE device_id = 42
AND ts >= NOW() - INTERVAL '7 days';
-- Prunes by both time and space.Indeks pada Hypertabel
Indeks diterapkan ke setiap potongan:
CREATE INDEX metrics_device_idx ON metrics (device_id, ts DESC);
-- Composite index ideal for 'recent data for one device' queries.Memperbarui Hypertabel
UPDATE dan DELETE dapat digunakan, tetapi sebaiknya jarang dilakukan pada deret waktu. Data lama biasanya hanya ditambahkan dan tidak dapat diubah.
Memigrasikan dari Tabel Biasa
Tabel yang sudah ada dapat diubah menjadi hypertabel:
SELECT create_hypertable('metrics', 'ts', migrate_data => true);Ringkasan
Hypertabel = pemartisian waktu otomatis untuk Postgres.
- Satu tabel logis, banyak potongan fisik
- create_hypertable + chunk_time_interval
- time_bucket untuk agregasi berbasis keranjang
- Indeks diterapkan ke semua potongan
Pemeriksaan Singkat
Anda menerima metrik perangkat IoT dengan laju 100 ribu baris/detik. Mengapa tabel tersebut perlu diubah menjadi hypertabel TimescaleDB?
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Hypertable TimescaleDB” gratis?
Ya — teks lengkap “Hypertable TimescaleDB” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus SQL Academy, upgrade ke CoddyKit PRO. Kursus SQL Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Hypertable TimescaleDB”?
Konversikan tabel Postgres menjadi hypertable TimescaleDB, dengan partisi waktu otomatis berdasarkan interval potongan Kamu berlatih SQL Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai SQL Academy?
Tidak diperlukan pengalaman sebelumnya. SQL Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Hypertable TimescaleDB” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran SQL Academy ini?
Ya. Setiap pelajaran SQL Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Hypertable TimescaleDB
- Agregat Kontinu
- Kebijakan Kompresi dan Retensi
- Pilihan Indeks Deret Waktu