Basis Data

Basis data dan beban kerja time-series

Jalur praktis memodelkan, mengingesti, melakukan downsampling, dan mempertahankan data time-series pada TimescaleDB dan InfluxDB 3.x, ditutup dengan stack pemantauan ujung ke ujung.

Jalur ini menulis beban kerja time-series terlebih dahulu, baru kemudian mesinnya. Modul pembuka memaparkan sifat data yang terurut waktu, tumbuh tanpa batas, dan didominasi penambahan termutakhir, lalu menerjemahkan sifat itu menjadi pola penulisan, pola pembacaan, siklus hidup, dan downsampling sebelum SQL ditulis. TimescaleDB dipraktikkan langsung sebagai ekstensi Postgres dengan hypertables, continuous aggregates, kompresi kolumnar, dan kebijakan retensi, sedangkan InfluxDB 3.x diposisikan secara jujur sebagai desain ulang kolumnar SQL-first. Seri diakhiri dengan satu stack pemantauan ujung ke ujung yang mengingesti, merekap, memberi alert, dan menghitung kapasitas dari telemetri yang sama. Cetak biru postgresql menjadi prasyarat untuk modul TimescaleDB, dan sandbox untuk contoh praktis menggunakan Python 3.12 dengan pandas serta Node.js 24.

Mengenal time-series 3 pelajaran

Sifat khas data time-series, ranah pemakaiannya, dan penyiapan lab TimescaleDB serta InfluxDB 3.x untuk seluruh jalur.

  1. Apa yang membuat time-series berbedaSifat didominasi penambahan, terurut waktu, dan tumbuh tanpa batas, serta alasan sifat itu membebani row store.
  2. Di mana beban kerja ini dijumpaiPemantauan, IoT, keuangan, data event, beserta pihak yang mengelola masing-masing saat ini.
  3. Penyiapan labTimescaleDB dan InfluxDB 3.x di dalam container, disertai pemuatan pertama telemetri contoh.

Pola penulisan, pola pembacaan, siklus hidup data, dan konsep downsampling sebagai keputusan skema kelas satu.

  1. Pola penulisanIngestion yang berat di sisi termutakhir, kedatangan terlambat, dan kenyataan data tak berurutan.
  2. Pola pembacaanPemindaian rentang, last-known-value, dan agregasi atas jendela waktu.
  3. Masalah siklus hidupData yang nilainya meluruh: panas, hangat, dingin, lalu hilang.
  4. DownsamplingPrakomputasi jawaban kasar sebelum pertanyaannya datang.

Schema sempit vs lebar, tags vs fields, disiplin timestamp, dan anggaran kardinalitas sebelum SQL ditulis.

  1. Schema sempit vs lebarSatu pengukuran per baris vs banyak kolom, dengan tradeoff yang disampaikan jujur.
  2. Tags vs fieldsKolom identitas vs nilai terukur, beserta tradisi measurement/tag/field.
  3. Disiplin timestampPresisi, zona waktu, dan pengurutan sebagai risiko korupsi yang senyap.
  4. Anggaran kardinalitasAlasan ID unik sebagai tags menenggelamkan basis data, dan pentingnya menghitung sebelum merancang.
Fondasi TimescaleDB 5 pelajaran

Posisi TimescaleDB sebagai ekstensi Postgres, hypertables, chunking, pola ingestion, dan query rentang dengan time_bucket.

  1. Postgres plus sebuah extensionPosisi TimescaleDB: SQL lengkap dengan mesin time-series di atasnya.
  2. HypertablesCara membuatnya, chunking waktu otomatis, dan bagian yang tetap Postgres biasa.
  3. Chunking dan partisiPartisi waktu dan ruang, serta alasan query rentang menjadi lebih cepat tanpa usaha tambahan.
  4. Pola ingestionCOPY, insert terbatch, dan upsert untuk data yang datang terlambat.
  5. Query rentangtime_bucket, window functions, dan predikat waktu terindeks.

Continuous aggregates, kompresi kolumnar, kebijakan retensi, dan postur operasional backup serta restore.

  1. Continuous aggregatesRollup termaterialisasi yang menyegarkan dirinya sendiri, beserta kebijakan refresh.
  2. KompresiKompresi kolumnar untuk chunk lama, serta transisi dari baris ke kolumnar.
  3. Kebijakan retensiPenghapusan chunk berdasarkan usia, terkait rencana siklus hidup dari modul beban kerja.
  4. Kesadaran operasionalPemantauan basis data itu sendiri serta postur backup dan restore.
Posisi InfluxDB 3.x 4 pelajaran

Garis keturunan InfluxDB, bentuk penyimpanan kolumnar 3.x, jalur penulisan line protocol, dan query SQL.

  1. Garis keturunan InfluxDBEra 1.x/2.x dalam satu pelajaran, serta alasan 3.x merupakan desain ulang dari nol.
  2. Bentuk InfluxDB 3.xPenyimpanan kolumnar dan query SQL-first pada tingkat kesadaran.
  3. Penulisan dataLine protocol dan jalur penulisan, disertai disiplin batching.
  4. Query dengan SQLInsting SELECT yang sama pada mesin yang dibangun khusus.

Windowing, strategi downsampling, prakomputasi vs agregasi ad-hoc, dan kesadaran aproksimasi seperti LTTB.

  1. Windowing dan bucketingPola time_bucket, pengisian celah, dan kejujuran interpolasi.
  2. Strategi downsamplingApa yang disimpan (min, max, avg, count) dan tradeoff retensi data mentah.
  3. Prakomputasi vs saat queryContinuous aggregates berhadapan dengan agregasi ad-hoc, disertai perhitungan biaya.
  4. Kesadaran aproksimasiDownsampling untuk skala rendering (LTTB dan sejenisnya).

Kasus penggunaan pemantauan, posisi Prometheus, dan perencanaan kapasitas serta retensi sebagai pengerjaan proyek penutup.

  1. Kasus penggunaan pemantauanMengumpulkan, mengingesti, merekap, memberi alert, serta titik ketika observability mengambil alih deteksi.
  2. Posisi PrometheusKapan stack metrik berbasis pull merupakan jawabannya, dan kapan basis data time-series tetap cocok.
  3. Perencanaan kapasitas dan retensiPenetapan ukuran dari laju ingest, serta biaya kardinalitas dan data mentah.