Time-Series Database
Published: 2024-01-03 10:17:50

Mungkin kalian yang membaca sekarang sangat akrab dengan apa yang dinamakan “ database “. tempat dimana data yang kita olah disimpan. mungkin pada zaman dulu jenis database tidak sebanyak sekarang. tentunya dampak tersebut terjadi karena sebuah kebutuhan dan inovasi terhadap teknologi database itu sendiri.

Dari pengalaman saya, database memiliki beberapa jenis seperti :
1. LocalStorage/indexedDB(localForage)
2. WebSql(watermelonDB,pouchdb,alaSql)
3. NoSql(redis,flux,couch,mongo)
4. Sql(mysql,mariadb,postgres)
5. LocalDB(sqlite,room,realm)
6. Object Storage (MinIO)

namun pada tiap jenis database memiliki ekosistemnya sendiri dan fungsi penggunaan berbeda tergantung kebutuhan kita juga. contoh ekosistem web ada namanya indexedDB, WebSQL dan LocalStorage yang dapat kita manfaatkan untuk menyimpan data di browser atau NoSql sebagai database Transcational dan Sql sebagai database Master.

pada waktu dekat ini kebetulan saya belajar mengelola data bertipe deret waktu dan cukup kesusahan dalam mengelola data tersebut. rencana memakai SQL tentu pilihan itu tidak tepat. lalu pilihan saya tertuju pada database NoSql. menurut pengalaman saya sepertinya sangat cocok karna sudah terbiasa digunakan untuk pencatatan/log system/ dan tidak memiliki stuktur tabel seperti SQL. namun dalam pencarian platform yang cocok, saya menemukan hal baru yaitu TSDB (Time-Series Database). whatttt .…??


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ra6ir48lz3jthzevp8dr.png)


TSDB (Time-Series Database) merupakan sebuah sistem database yang dapat mengoptimasi penyimpanan dan penyediaan data bertipe Time-Series (deret waktu) berdasarkan rangkaian waktu dan nilai terkait.

biasanya Time-Series dikaitkan dengan grafik,stastistik,log,history atau trend. Beberapa database Time-Series awalnya hanya digunakan pada aplikasi untuk optimasi secara efisien menyimpan nilai yang diukur dari peralatan sensorik (juga disebut sebagai history data), tetapi sekarang digunakan untuk mendukung berbagai aplikasi yang jauh lebih luas.

Dalam banyak kasus data Time-series akan menggunakan algoritma kompresi untuk mengelola data secara efisien. Meskipun dimungkinkan untuk menyimpan data Time-Series dalam berbagai jenis basis data.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/agtwwqb5u59g27sifa0d.png)



Performa SQL vs TSDB INSERT 10,000-row batches ( Time-Series Database )

Perbedaan mencolok, database Time-Series menggunakan waktu sebagai indeksnya (pipeline times chunk). berarti proses yang dilakukan secara paraller dan realtime. tiap waktu memiliki data. bukan data memiliki waktu. dampaknya konsumsi memory akan lebih optimal tentunya.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/goyoh92dm1pjeie8a1r1.png)

Perbedaan RDMS vs TSDB


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jz98z2eogvyqlz2c47wr.png)
dengan TSDB kita bisa dengan mudah memanipulasi data dengan interval waktu yang tertata rapi

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/znx7n360mj4ti15m6fwl.png)

mendiagnosa data dengan berdasarkan urutan waktu jadi semakin mudah tidak perluh library pendukung lagi

database Time-Series biasanya memisahkan set karakteristik tetap, diskrit dari dinamis, nilai kontinu menjadi set poin atau ‘tag.’ Contohnya adalah penyimpanan Utilisasi CPU untuk pemantauan kinerja: karakteristik tetap akan mencakup nama ‘Utilisasi CPU’, satuan ukuran ‘%’ dan kisaran ‘0 hingga 1’; dan nilai dinamis akan menyimpan persentase pemanfaatan dan gap waktu. Pemisahan ini dimaksudkan untuk secara efisien menyimpan dan mengindeks data untuk keperluan aplikasi yang dapat mencari melalui set poin berbeda dari nilai-nilai yang diindeks waktu.

Basis data sangat bervariasi dalam fitur-fiturnya, tetapi sebagian besar akan memungkinkan fitur untuk membuat, membaca, memperbarui, dan menghapus. namun pada database time-series dapat memanipulasi pasangan nilai waktu serta poin yang terkait dengannya. Ada juga fitur tambahan seperti perhitungan, interpolasi, pemfilteran, dan analisis.


Ada beberapa pilihan lagi sebelum menggunakan jenis database ini.

yups.., memilih software yang akan menghandle.

Berikut daftar database Time-Series yang bisa kamu coba :
1. Cube
2. DalmatinerDB
3. Druid
4. eXtremeDB
5. InfluxDB
6. Informix TimeSeries
7. KairosDB
8. OpenTSDB
9. TimescaleDB

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qrpol510gdnezhfkf5z1.png)


akhirnya saya memilih InfluxDB, alasan saya memilih InfluxDB karena pertama populer dan sudah ada komunitasnya. serta memiliki beberapa tools dan fitur yang lengkap seperti
- layanan cloud
- telegraf ( data kolektor )
- flux query ( perintah querynya )
- chronograf ( data visual kayak nyediain chart gitu lah )
- kapacitor ( data prosessing )
- dan influxDB client ❤.

Selain itu InfluxDB merupakan project open source jadi bisa anda coba di sistem local komputermu.