0Pricing
SQL Academy · Pelajaran

Kebijakan Kompresi dan Retensi

Kompres potongan lama dengan kompresi kolumnar TimescaleDB, dan hapus potongan yang kedaluwarsa secara otomatis

Kebijakan Kompresi dan Retensi adalah pelajaran SQL Academy gratis di CoddyKit. Ini adalah pelajaran 3 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.

Mengapa Mengompresi?

Data deret waktu sangat mudah dikompresi. TimescaleDB mengompresi potongan dalam bentuk kolom, dan sering mencapai rasio kompresi 10–20 kali.

Mengompresi Hypertabel

Konfigurasikan kolom mana yang digunakan untuk mengelompokkan dan mengurutkan data terkompresi:

ALTER TABLE metrics SET (
  timescaledb.compress,
  timescaledb.compress_segmentby = 'device_id',
  timescaledb.compress_orderby = 'ts DESC'
);

Kebijakan Kompresi

Otomatiskan kompresi potongan lama:

SELECT add_compression_policy('metrics', INTERVAL '7 days');
-- Chunks older than 7 days get compressed automatically.

Kinerja Kueri pada Data Terkompresi

Pembacaan pada potongan terkompresi tetap cepat — TimescaleDB mendorong filter ke penyimpanan kolom. Penulisan/pembaruan pada potongan terkompresi terbatas (sebagian besar hanya penambahan).

Kebijakan Retensi

Hapus data yang lebih lama dari N interval — cepat (hapus potongan) dibandingkan lambat (DELETE):

SELECT add_retention_policy('metrics', INTERVAL '90 days');
-- Chunks older than 90 days are dropped automatically.

Operasi Potongan Manual

Jelajahi potongan:

SELECT * FROM chunks_detailed_size('metrics');
SELECT show_chunks('metrics', older_than => INTERVAL '90 days');
SELECT drop_chunks('metrics', older_than => INTERVAL '90 days');

Pemeringkatan Penyimpanan

Pindahkan potongan lama ke disk yang lambat dengan mengubah ruang tabel untuk setiap potongan. Jika digabungkan dengan kompresi, Anda dapat menyimpan data selama bertahun-tahun dengan biaya rendah.

Rasio Kompresi dalam Praktik

Rasio umum pada data sensor:

  • Metrik numerik: penghematan ruang 90–95% atau lebih
  • Kategorikal: 70–80%
  • String/JSON: bergantung pada konten

Mendekompresi untuk Pembaruan

Anda dapat mendekompresi potongan untuk memperbarui data lama, lalu mengompresnya kembali:

SELECT decompress_chunk(c) FROM show_chunks('metrics', newer_than => INTERVAL '60 days') c;
-- Update / fix
SELECT compress_chunk(c) FROM show_chunks('metrics', newer_than => INTERVAL '60 days') c;

Padanan Postgres Biasa

Tanpa TimescaleDB, Anda dapat membuatnya sendiri menggunakan partisi:

DROP TABLE events_2022;            -- retention (fast)
-- No native columnar compression in vanilla Postgres for time-series.

Menggabungkan dengan Agregat Berkelanjutan

Pola umum: simpan data mentah selama 30 hari, agregat per jam selama 1 tahun, dan agregat harian selamanya. Setiap tingkat dikompresi atau dipertahankan sesuai kebutuhan.

Pemantauan

Lacak ukuran dan rasio terkompresi:

SELECT * FROM hypertable_compression_stats('metrics');

Ringkasan

Kompresi + retensi mengubah Postgres menjadi penyimpanan deret waktu yang andal.

  • Kompres potongan lama 10–20 kali
  • Retensi menghapus potongan secara langsung
  • Susun data mentah/per jam/per hari dengan retensi yang berbeda
  • Dekompresi untuk mengisi data historis jika diperlukan

Pemeriksaan Singkat

Anda ingin menyimpan metrik mentah selama 7 hari dan menghapus semua data yang lebih lama secara otomatis. Apa cara TimescaleDB untuk melakukannya?

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Kebijakan Kompresi dan Retensi” gratis?

Ya — teks lengkap “Kebijakan Kompresi dan Retensi” 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 “Kebijakan Kompresi dan Retensi”?

Kompres potongan lama dengan kompresi kolumnar TimescaleDB, dan hapus potongan yang kedaluwarsa secara otomatis 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 3 dari 4.

Berapa lama pelajaran “Kebijakan Kompresi dan Retensi” 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

  1. Hypertable TimescaleDB
  2. Agregat Kontinu
  3. Kebijakan Kompresi dan Retensi
  4. Pilihan Indeks Deret Waktu
← Kembali ke SQL Academy