Penulis memilih Museum Sejarah Komputer untuk menerima sumbangan sebagai bagian dari program Write for DOnations. Perkenalan
Banyak aplikasi, seperti .B sistem pemantauan dan pengumpulan data, mengumpulkan data untuk analisis lebih lanjut. Analisis ini sering memeriksa cara elemen data atau sistem berubah dari waktu ke waktu. Dalam kasus ini, data direpresentasikan sebagai deret waktu, dengan setiap titik data dikusamp. Contohnya akan terlihat seperti ini:01-11-2019 09:00:00server.cpu.10.92019-11-01 09:00:00server.cpu.150.82019-11-01 09:01:00server.cpu.10.92019-11-01 09:01:00server.cpu.150.8...
Relevansi data deret waktu baru-baru ini meningkat berkat penyebaran baru Internet of Things (IoT) dan Internet of Things Industri. Ada semakin banyak perangkat yang mengumpulkan informasi deret waktu yang berbeda: pelacak kebugaran, jam tangan pintar, stasiun cuaca rumah, dan berbagai sensor, untuk beberapa nama. Perangkat ini mengumpulkan banyak informasi dan semua data ini perlu disimpan di suatu tempat.
Database relasional klasik biasanya digunakan untuk menyimpan data, tetapi mereka tidak selalu cocok ketika datang ke sejumlah besar data dari deret waktu. Jika Anda perlu memproses sejumlah besar data deret waktu, database relasional bisa terlalu lambat. Untuk alasan ini, database yang dioptimalkan secara khusus, yang disebut database NoSQL, telah dibuat untuk menghindari masalah database relasional.
TimescaleDB adalah database open source yang dioptimalkan untuk menyimpan data deret waktu. Ini diimplementasikan sebagai perpanjangan dari PostgreSQL dan menggabungkan kemudahan penggunaan database rasional dengan kecepatan database NoSQL. Ini memungkinkan Anda menggunakan PostgreSQL untuk menyimpan data bisnis dan data deret waktu di satu tempat.
Jika Anda mengikuti tutorial ini, Anda akan mengatur, mengonfigurasi, dan mempelajari cara bekerja dengan TimescaleDB di CentOS 7. Kemudian Anda membuat database deret waktu dan melakukan kueri sederhana. Akhirnya, Anda akan melihat bagaimana data yang tidak perlu dihapus. Prasyarat
Untuk mengikuti panduan ini, Anda akan membutuhkan:Server CentOS 7 yang disiapkan dengan CentOS 7 sesuai dengan Panduan kami untuk Pengaturan Server Awal, termasuk pengguna non-root dengan hak istimewa sudo dan firewall yang disiapkan dengan firewall. Untuk mengatur firewall, ikuti bagian "Mengonfigurasi Firewall Dasar" dari tutorial Langkah Yang Direkomendasikan Tambahan untuk Server CentOS 7 Baru.PostgreSQL diinstal di server Anda. Ikuti panduan kami tentang cara menginstal dan menggunakan PostgreSQL di CentOS 7 untuk menginstal dan mengonfigurasinya.Langkah 1 – Instal TimescaleDB
TimescaleDB tidak tersedia di repositori paket CentOS standar. Oleh karena itu, pada langkah ini, Anda menginstalnya dari repositori TimescaleDB pihak ketiga.
Pertama, buat file repositori baru:sudo vi /etc/yum.repos.d/timescaledb.repo
Masukkan mode tempel dengan menekan i dan menempelkan konfigurasi berikut ke dalam file:
/etc/yum.repos.d/timescaledb.repo[timescale_timescaledb]name=timescale_timescaledbbaseurl=https://packagecloud.io/timescale/timescaledb/el/7/$basearchrepo_gpgcheck=1gpgcheck=0enabled=1gpgkey=https://packagecloud.io/timescale/timescaledb/gpgkeysslverify=1sslcacert=/etc/pki/tls/certs/ca-bundle.crtmetadata_expire=300
Setelah selesai, tekan ESC untuk keluar dari mode tempel, lalu :wq dan ENTER untuk menyimpan dan keluar dari file. Untuk mempelajari lebih lanjut tentang editor teks vi dan vim penerusnya, lihat tutorial kami Menginstal dan Menggunakan Editor Teks Vim di Server Cloud.
Anda sekarang dapat melanjutkan dengan instalasi. Tutorial ini menggunakan PostgreSQL versi 11; jika Anda menggunakan versi PostgreSQL yang berbeda (e.B. 9.6 atau 11), ganti dan jalankan nilai dalam perintah berikut:sudo yum install -y timescaledb-postgresql-11
TimescaleDB sekarang diinstal dan siap digunakan. Selanjutnya, Anda mengaktifkannya dan menyesuaikan beberapa pengaturan terkait dalam file konfigurasi PostgreSQL untuk mengoptimalkan database. Langkah 2 – Konfigurasikan TimescaleDB
Modul TimescaleDB bekerja dengan baik dengan pengaturan konfigurasi default, tetapi pengembang timescaleDB menyarankan untuk mengonfigurasi parameter individual untuk meningkatkan kinerja dan memanfaatkan sumber daya prosesor, memori, dan disk dengan lebih baik. Ini dapat dilakukan secara otomatis menggunakan alat timescaledb-tune atau dengan mengedit file postgresql.conf server Anda secara manual.
Dalam tutorial ini, Anda akan menggunakan alat timescaledb-tune. Ini membaca file postgresql.conf dan secara interaktif menyarankan perubahan.
Jalankan perintah berikut untuk memulai Panduan Konfigurasi:sudo timescaledb-tune --pg-config=/usr/pgsql-11/bin/pg_config
Pertama, Anda akan diminta untuk mengonfirmasi jalur ke file konfigurasi PostgreSQL:
OutputUsing postgresql.conf di path ini:/var/lib/pgsql/11/data/postgresql.confApakah ini benar? [(y)es/(n)o]:
Utilitas secara otomatis mendeteksi jalur ke file konfigurasi, jadi konfirmasikan ini dengan mengetik y:
Hasil... Apakah ini benar? [(y)es/(n)o]: yWriting backup to:/tmp/timescaledb_tune.backup201912191633
Selanjutnya, aktifkan modul TimescaleDB dengan mengetik y di command prompt berikutnya dan tekan ENTER:
Outputshared_preload_libraries perlu diperbaruiCurrent:#shared_preload_libraries = ''Direkomendasikan:shared_preload_libraries ='timescaledb'Apakah ini baik-baik saja? [(y)es/(n)o]:ysuccess: shared_preload_libraries akan diperbarui
Berdasarkan karakteristik server Anda dan versi PostgreSQL, Anda kemudian akan ditawari optimalisasi pengaturan Anda. Tekan y untuk memulai proses pengoptimalan:
OutputTune memory/parallelism/WAL dan pengaturan lainnya? [(y)es/(n)o]:yRecommendations berdasarkan 7,64 GB memori yang tersedia dan 4 CPU untuk rekomendasi pengaturan PostgreSQL 11MemoryCurrent:shared_buffers = 128MB#effective_cache_size = 4GB#maintenance_work_mem = 64MB#work_mem = 4MBRecommended:shared_buffers = 1955MBeffective_cache_size = 5865MBmaintenance_work_mem = 1001121kBwork_mem = 5005kBIskah ini oke? [(y)es/(s)kip/(q)uit]:
timescaledb-tune secara otomatis mendeteksi memori server yang tersedia dan menghitung nilai yang disarankan untuk pengaturan shared_buffers, effective_cache_size, maintenance_work_mem, dan work_mem. Jika Anda ingin mempelajari lebih lanjut tentang cara berlari, lihat halaman GitHub untuk timescaledb-tune.
Jika pengaturan ini terlihat bagus, ketik y:
Hasil... Apakah ini baik-baik saja? [(y)es/(s)kip/(q)uit]:ysuccess: pengaturan memori akan diperbarui
Jika server Anda memiliki beberapa CPU, lihat di sini untuk rekomendasi untuk pengaturan konkurensi. Namun, jika Anda hanya memiliki satu CPU, timescaledb-tune akan mengarahkan Anda langsung ke pengaturan WAL.
Untuk beberapa CPU, rekomendasi mirip dengan yang berikut:
Rekomendasi pengaturan OutputParallelismCurrent:missing: timescaledb.max_background_workers#max_worker_processes = 8#max_parallel_workers_per_gather = 2#max_parallel_workers = 8Recommended:timescaledb.max_background_workers = 8max_worker_processes = 15max_parallel_workers_per_gather = 2max_parallel_workers = 4Apa ini? [(y)es/(s)kip/(q)uit]:
Pengaturan ini mengatur jumlah pekerja yang memproses permintaan dan tugas latar belakang. Anda dapat mempelajari lebih lanjut tentang pengaturan ini di dokumentasi TimescaleDB dan PostgreSQL.
Untuk menerima pengaturan ini, ketik y, lalu ketik ENTER:
Hasil... Apakah ini baik-baik saja? [(y)es/(s)kip/(q)uit]: ysuccess: pengaturan paralelisme akan diperbarui
Selanjutnya, temukan rekomendasi untuk Write Ahead Log (WAL):
Rekomendasi pengaturan OutputWALCurrent:#wal_buffers = -1#min_wal_size = 80MB#max_wal_size = 1GBRecommended:wal_buffers = 16MBmin_wal_size = 4GBmax_wal_size = 8 GBIs ini oke? [(y)es/(s)kip/(q)uit]:
WAL mempertahankan integritas data, tetapi pengaturan default dapat menyebabkan I /O yang tidak efisien yang memperlambat kinerja tulis. Ketik y untuk mengoptimalkan pengaturan ini:
Hasil... Apakah ini baik-baik saja? [(y)es/(s)kip/(q)uit]: ysuccess: Pengaturan WAL akan diperbarui
Anda sekarang akan menemukan berbagai rekomendasi: