PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Menjalankan Gudang Data di PostgreSQL

Saat Anda perlu menerapkan sistem analitik untuk perusahaan, sering kali muncul pertanyaan tentang di mana data harus disimpan. Tidak selalu ada pilihan yang sempurna untuk semua persyaratan dan itu tergantung pada anggaran, jumlah data, dan kebutuhan perusahaan.

PostgreSQL, sebagai database open source paling canggih, sangat fleksibel sehingga dapat berfungsi sebagai database relasional sederhana, database data deret waktu, dan bahkan sebagai solusi pergudangan data yang efisien dan berbiaya rendah. Anda juga dapat mengintegrasikannya dengan beberapa alat analisis.

Jika Anda mencari gudang data yang kompatibel secara luas, berbiaya rendah, dan berkinerja tinggi, opsi basis data terbaik adalah PostgreSQL, tetapi mengapa? Di blog ini, kita akan melihat apa itu gudang data, mengapa dibutuhkan, dan mengapa PostgreSQL bisa menjadi pilihan terbaik di sini.

Apa itu Gudang Data

Data Warehouse adalah sistem standar, konsisten, dan terintegrasi yang berisi data terkini atau historis dari satu atau lebih sumber yang digunakan untuk pelaporan dan analisis data. Ini dianggap sebagai komponen inti intelijen bisnis, yang merupakan strategi dan teknologi yang digunakan oleh perusahaan untuk pemahaman yang lebih baik tentang konteks komersialnya.

Pertanyaan pertama yang mungkin Anda tanyakan adalah mengapa saya memerlukan gudang data?

  • Integrasi:Mengintegrasikan/memusatkan data dari beberapa sistem/basis data
  • Standarisasi:Standarisasi semua data dalam format yang sama
  • Analytics:Menganalisis data dalam konteks historis

Beberapa manfaat dari gudang data dapat...

  • Mengintegrasikan data dari berbagai sumber ke dalam satu database
  • Hindari penguncian atau pemuatan produksi karena kueri yang berjalan lama
  • Menyimpan Informasi Historis
  • Restrukturisasi data agar sesuai dengan persyaratan analisis

Seperti yang dapat kita lihat pada gambar sebelumnya, kita dapat menggunakan PostgreSQL untuk proposal OLAP dan OLTP. Mari kita lihat perbedaannya.

  • OLTP:Pemrosesan transaksi online. Secara umum, ia memiliki sejumlah besar transaksi on-line pendek (INSERT, UPDATE, DELETE) yang dihasilkan oleh aktivitas pengguna. Sistem ini menekankan pemrosesan kueri yang sangat cepat dan menjaga integritas data di lingkungan multi-akses. Di sini, efektivitas diukur dengan jumlah transaksi per detik. Basis data OLTP berisi data terperinci dan terkini.
  • OLAP:Pemrosesan analitik online. Secara umum, ia memiliki volume transaksi kompleks yang rendah yang dihasilkan oleh laporan besar. Waktu respon adalah ukuran efektivitas. Basis data ini menyimpan data historis teragregasi dalam skema multidimensi. Database OLAP digunakan untuk menganalisis data multidimensi dari berbagai sumber dan perspektif.

Kami memiliki dua cara untuk memuat data ke dalam basis data analitik kami:

  • ETL:Ekstrak, ubah, dan muat. Ini adalah cara untuk menghasilkan gudang data kami. Pertama, ekstrak data dari database produksi, ubah data sesuai dengan kebutuhan kami, lalu muat data ke gudang data kami.
  • ELT:Ekstrak, muat, dan ubah. Pertama, ekstrak data dari database produksi, muat ke database, lalu ubah datanya. Cara ini disebut Data Lake dan merupakan konsep baru untuk mengelola data besar kami.

Dan sekarang, pertanyaan kedua saya, mengapa saya harus menggunakan PostgreSQL untuk gudang data saya?

Manfaat PostgreSQL sebagai Gudang Data

Mari kita lihat beberapa manfaat menggunakan PostgreSQL sebagai gudang data...

  • Biaya:Jika Anda menggunakan lingkungan lokal, biaya untuk produk itu sendiri akan menjadi $0, bahkan jika Anda menggunakan beberapa produk di cloud, mungkin biaya produk berbasis PostgreSQL akan kurang dari produk lainnya.
  • Skala:Anda dapat menskalakan bacaan dengan cara sederhana dengan menambahkan node replika sebanyak yang Anda inginkan.
  • Kinerja:Dengan konfigurasi yang benar, PostgreSQL memiliki kinerja yang sangat baik pada berbagai skenario.
  • Kompatibilitas:Anda dapat mengintegrasikan PostgreSQL dengan alat atau aplikasi eksternal untuk penambangan data, OLAP, dan pelaporan.
  • Ekstensibilitas:PostgreSQL memiliki tipe dan fungsi data yang ditentukan pengguna.

Ada juga beberapa fitur PostgreSQL yang dapat membantu kami mengelola informasi gudang data kami...

  • Tabel sementara:Ini adalah tabel berumur pendek yang ada selama sesi database. PostgreSQL secara otomatis menghapus tabel sementara di akhir sesi atau transaksi.
  • Prosedur tersimpan:Anda dapat menggunakannya untuk membuat prosedur atau fungsi pada beberapa bahasa (PL/pgSQL, PL/Perl, PL/Python, dll).
  • Partisi:Ini sangat berguna untuk pemeliharaan database, kueri menggunakan kunci partisi, dan kinerja INSERT.
  • Tampilan material:Hasil kueri ditampilkan sebagai tabel.
  • Ruang Tabel:Anda dapat mengubah lokasi data ke disk yang berbeda. Dengan cara ini, Anda akan memiliki akses disk paralel.
  • Kompatibel dengan PITR:Anda dapat membuat cadangan yang kompatibel dengan pemulihan Point-in-time, jadi jika terjadi kegagalan, Anda dapat memulihkan status database pada periode waktu tertentu.
  • Komunitas besar:Dan yang tak kalah pentingnya, PostgreSQL memiliki komunitas besar tempat Anda dapat menemukan dukungan untuk berbagai masalah.

Mengonfigurasi PostgreSQL untuk Penggunaan Gudang Data

Tidak ada konfigurasi terbaik untuk digunakan dalam semua kasus dan di semua teknologi database. Itu tergantung pada banyak faktor seperti perangkat keras, penggunaan, dan persyaratan sistem. Berikut adalah beberapa tips untuk mengonfigurasi database PostgreSQL Anda agar berfungsi sebagai gudang data dengan cara yang benar.

Berbasis Memori

  • max_connections:Sebagai database gudang data, Anda tidak memerlukan jumlah koneksi yang tinggi karena ini akan digunakan untuk pekerjaan pelaporan dan analitik, sehingga Anda dapat membatasi jumlah koneksi maksimal menggunakan parameter ini.
  • shared_buffers:Menyetel jumlah memori yang digunakan server database untuk buffer memori bersama. Nilai yang wajar dapat berkisar dari 15% hingga 25% dari memori RAM.
  • efektif_cache_size:Nilai ini digunakan oleh perencana kueri untuk mempertimbangkan rencana akun yang mungkin sesuai atau tidak dalam memori. Ini diperhitungkan dalam perkiraan biaya menggunakan indeks; nilai yang tinggi membuat pemindaian indeks lebih mungkin digunakan dan nilai yang rendah membuat pemindaian berurutan lebih mungkin digunakan. Nilai yang wajar adalah sekitar 75% dari memori RAM.
  • work mem:Menentukan jumlah memori yang akan digunakan oleh operasi internal tabel ORDER BY, DISTINCT, JOIN, dan hash sebelum menulis ke file sementara di disk. Saat mengonfigurasi nilai ini, kita harus memperhitungkan bahwa beberapa sesi menjalankan operasi ini secara bersamaan dan setiap operasi akan diizinkan menggunakan memori sebanyak yang ditentukan oleh nilai ini sebelum mulai menulis data dalam file sementara. Nilai yang wajar bisa sekitar 2% dari Memori RAM.
  • maintenance_work_mem:Menentukan jumlah maksimum memori yang akan digunakan operasi pemeliharaan, seperti VACUUM, CREATE INDEX, dan ALTER TABLE ADD FOREIGN KEY. Nilai yang wajar bisa sekitar 15% dari Memori RAM.

Berbasis CPU

  • Max_worker_processes:Menyetel jumlah maksimum proses latar belakang yang dapat didukung sistem. Nilai yang wajar dapat berupa jumlah CPU.
  • Max_parallel_workers_per_gather:Menyetel jumlah maksimum pekerja yang dapat dimulai oleh satu node Gather atau Gather Merge. Nilai yang wajar bisa 50% dari jumlah CPU.
  • Max_parallel_workers:Menyetel jumlah maksimum pekerja yang dapat didukung sistem untuk kueri paralel. Nilai yang wajar dapat berupa jumlah CPU.

Karena data yang dimuat ke gudang data kami tidak boleh berubah, kami juga dapat menonaktifkan Autovacuum untuk menghindari beban tambahan pada database PostgreSQL Anda. Proses Vakum dan Analisis dapat menjadi bagian dari proses pemuatan batch.

Kesimpulan

Jika Anda mencari gudang data yang kompatibel secara luas, berbiaya rendah, dan berkinerja tinggi, Anda pasti harus mempertimbangkan PostgreSQL sebagai opsi untuk database gudang data Anda. PostgreSQL memiliki banyak manfaat dan fitur yang berguna untuk mengelola gudang data kami seperti partisi, atau prosedur tersimpan, dan lebih banyak lagi.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara membersihkan dan menginstal ulang postgresql secara menyeluruh di ubuntu?

  2. Bagaimana cara menginstal libpq-fe.h?

  3. Apakah prosedur tersimpan berjalan dalam transaksi basis data di Postgres?

  4. Batasan kunci asing yang kompleks di SQLAlchemy

  5. 2 Cara Mengembalikan Baris yang Mengandung Karakter Non-Alfanumerik di PostgreSQL