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

Sepuluh Cara untuk Memperluas Fungsi PostgreSQL

Seperti yang Anda ketahui, Anda dapat memperluas fungsionalitas PostgreSQL dengan menggunakan ekstensi PostgreSQL. Anda dapat menggunakan ekstensi yang berbeda untuk membuat PostgreSQL seperti versi perusahaan dan memenuhi kebutuhan khusus. Di blog ini, kita akan melihat beberapa ekstensi open source paling populer di PostgreSQL dan bagaimana ekstensi tersebut dapat digunakan untuk memperluas kemampuannya.

PostgreSQL adalah database open source paling canggih. Setiap tahun, komunitas PostgreSQL merilis versi baru dengan beberapa fitur baru, tetapi ada banyak fitur yang dikembangkan menggunakan ekstensi yang dapat digunakan untuk kasus penggunaan tertentu.

Beberapa ekstensi ini sangat kuat dan populer untuk membangun lingkungan PostgreSQL tingkat perusahaan.

Pg_stat_statements

Modul pg_stat_statements menyediakan sarana untuk melacak statistik eksekusi semua pernyataan SQL yang dieksekusi oleh server PostgreSQL. Ketika modul pg_stat_statements dimuat, ia melacak statistik di semua database server. Statistik yang dikumpulkan oleh modul pg_stat_statements tersedia melalui tampilan bernama pg_stat_statements. Anda dapat memeriksa detail lebih lanjut tentang fungsi pg_stat_statements dan parameter konfigurasi di sini.

PostGIS

PostGIS adalah ekstensi ke sistem database PostgreSQL yang memungkinkan objek GIS (Sistem Informasi Geografis) disimpan dalam database. Ini mencakup dukungan untuk indeks spasial R-Tree berbasis GiST, dan fungsi untuk analisis dan pemrosesan objek GIS.

PostGIS digunakan untuk objek Spasial dan Geografis untuk PostgreSQL. PostGIS menambahkan tipe (geometri, geografi, raster, dll.) ke database PostgreSQL. PostGIS juga menambahkan fungsi, operator, dan peningkatan indeks yang berlaku untuk tipe spasial ini. Anda dapat memeriksa metode instalasi di sini.

Postgres_fdw

Modul postgres_fdw menyediakan pembungkus data asing postgres_fdw, yang dapat digunakan untuk mengakses data yang disimpan di server database PostgreSQL eksternal. Ketika ada dua database PostgreSQL, postgres_fdw merujuk ke tabel database lain dari satu database. Setelah Anda mendefinisikan FOREIGN TABLE, Anda dapat melakukan SELECT, INSERT, UPDATE, DELETE seperti database lokal.

Fungsionalitas yang disediakan oleh modul postgres_fdw tumpang tindih secara substansial dengan fungsionalitas modul dblink yang lebih lama. Tetapi modul postgres_fdw menyediakan sintaks yang lebih transparan dan sesuai standar untuk mengakses tabel jarak jauh, dan dapat memberikan kinerja yang lebih baik dalam banyak kasus.

Kasus penggunaan utama dari tabel asing adalah untuk membuat data tersedia untuk sistem tanpa mereplikasi atau menduplikasinya. Bahkan ada implementasi sharding yang sederhana menggunakan PLRT Asing, karena data di shard lain dapat tersedia untuk kueri melalui PLRT Asing.

Di Oracle, Anda bisa mendapatkan data dari tabel database jarak jauh menggunakan DBLinks tetapi perbedaan utama antara DBLinks dan FDW adalah bahwa FDW dapat mempertahankan meta data atau definisi tabel tentang tabel asing secara lokal.

Mysql_fdw

Mysql_fdw adalah ekstensi PostgreSQL yang mengimplementasikan Foreign Data Wrapper (FDW) untuk MySQL. Modul Mysql_fdw memfasilitasi penggunaan server PostgreSQL sebagai klien untuk Server MySQL, yang berarti dapat mengambil data dari database MySQL sebagai klien. Saat ini, EnterpriseDB memelihara modul ini di github.

Versi mysql_fdw sebelumnya hanya didukung hanya-baca, tetapi versi terbaru menyediakan kemampuan tulis. Pengguna sekarang dapat mengeluarkan pernyataan insert, update dan delete untuk tabel asing menggunakan mysql_fdw. Ini menggunakan mekanisme casting tipe PostgreSQL untuk menyediakan typecasting yang berlawanan antara tipe data MySQL dan PostgreSQL.

Hstore

Modul hstore mengimplementasikan tipe data hstore untuk menyimpan pasangan nilai kunci dalam satu nilai di PostgreSQL. Tipe data hstore sangat berguna dalam banyak kasus penggunaan, seperti data semi terstruktur atau baris dengan banyak atribut yang jarang ditanyakan. Perhatikan bahwa kunci dan nilai hanyalah string teks saja.

Sebelum bekerja dengan tipe data hstore, Anda perlu membuat ekstensi hstore yang memuat modul contrib ke instance PostgreSQL Anda.

Pgaudit

pgAudit adalah Ekstensi Audit PostgreSQL yang menyediakan sesi mendetail dan/atau logging audit objek melalui fasilitas logging PostgreSQL standar.

Tujuan utama modul pgAudit adalah untuk memberikan pengguna PostgreSQL kemampuan untuk menghasilkan log audit yang sering kali diperlukan untuk mematuhi sertifikasi pemerintah, keuangan, atau ISO.

Umumnya, audit adalah inspeksi resmi atas akun individu atau organisasi, biasanya oleh badan independen. Informasi yang dikumpulkan oleh modul pgAudit disebut dengan benar sebagai jejak audit atau log audit.

Modul pgAudit dikembangkan untuk mendukung PostgreSQL 9.5 dan versi di atasnya.

Logging audit sesi dari modul pgAudit menyediakan log mendetail dari semua pernyataan yang dijalankan oleh pengguna di backend. Anda dapat memeriksa detail lebih lanjut, konfigurasi dan cara menginstal dan menggunakannya di PostgreSQL di sini.

Orafce

Orafce adalah modul yang mengimplementasikan fungsi, tipe data, dan paket yang kompatibel dengan Oracle. Ini adalah alat open source dengan lisensi BSD sehingga siapa pun dapat menggunakan alat ini. Modul ini sangat berguna dalam tugas migrasi Oracle ke PostgreSQL, modul ini memiliki banyak fungsi Oracle yang diimplementasikan di PostgreSQL.

Aplikasi biasanya menggunakan fungsi tersebut dengan beberapa kejadian. Anda dapat mengurangi biaya modifikasi SQL dengan menggunakan alat ini. Anda dapat memeriksa cara bermigrasi dari Oracle ke blog PostgreSQL.

Semua fungsi dan paket diimplementasikan dengan benar dan telah diuji dengan baik.

Beberapa fungsinya adalah:

  • Dbms_output
  • Dbms_random
  • utl_file – fungsi terkait sistem file
  • Dbms_pipe dan dbms_alert
  • Tanggal PLV, PLVstr, PLVchr
  • Tipe data dan fungsi DATE yang kompatibel dengan Oracle seperti ADD_MONTHS, LAST_DAY,NEXT_DAY, dan seterusnya.
  • Fungsi NVL
  • Fungsi SUBSTR dan SUBSTRB
  • dukungan VARCHAR2 dan NVARCHAR2
  • TO_DATE()
Unduh Whitepaper Hari Ini Pengelolaan &Otomatisasi PostgreSQL dengan ClusterControlPelajari tentang apa yang perlu Anda ketahui untuk menerapkan, memantau, mengelola, dan menskalakan PostgreSQLUnduh Whitepaper

Pg_bulkload

Modul Pg_bulkload menyediakan kemampuan memuat data berkecepatan tinggi untuk pengguna PostgreSQL. modul pg_bulkload dirancang untuk memuat sejumlah besar data ke database. Anda dapat memuat data ke tabel dengan melewati buffer bersama PostgreSQL. modul pg_bulkload juga memiliki beberapa fitur ETL seperti validasi data input dan transformasi data dengan fungsi filter.

Tujuan awal modul pg_bulkload adalah alternatif perintah COPY yang lebih cepat di PostgreSQL.

Modul Pg_bulkload dikembangkan dan dikelola oleh NTT OSS Center.

CATATAN PENTING:Di bawah lingkungan replikasi streaming di PostgreSQL, modul pg_bulkload tidak berfungsi dengan benar. Lihat di sini untuk detail lebih lanjut.

Pgstattuple

Modul pgstattuple menyediakan berbagai fungsi untuk mendapatkan statistik tingkat tuple di PostgresQL. Fungsi dalam modul pgstattuple mengembalikan panjang fisik relasi, persentase tupel "mati", dan info lainnya. Ini mungkin berguna bagi pengguna untuk menentukan apakah vakum diperlukan atau tidak. Argumen ke fungsi adalah nama relasi target (secara opsional memenuhi syarat skema) atau OID.

Hal_trgm

pg_trgm adalah ekstensi PostgreSQL yang menyediakan pencocokan string fuzzy sederhana di PostgreSQL. Overhead operasional dan konseptualnya jauh lebih rendah daripada pencarian teks lengkap PostgreSQL atau mesin pencari terpisah.

Sebuah trigram atau trigraph adalah sekelompok tiga karakter berturut-turut yang diambil dari string. Anda dapat mengukur kesamaan dua string dengan menghitung jumlah trigram yang mereka bagikan. Ide sederhana tentang trigram ini ternyata sangat efektif untuk mengukur kesamaan kata dalam banyak bahasa alami.

Secara umum, modul pg_trgm dapat membantu ketika:

  • Anda memerlukan pencocokan string fuzzy case-insensitive di PostgreSQL.
  • Anda ingin mempercepat LIKE, ILIKE, ~ atau ~* di PostgreSQL.
  • Anda ingin menelusuri pola yang tidak berlabuh ke kiri (mis. %john%). Pola seperti itu tidak didukung oleh indeks B-tree di PostgreSQL.

Daftar modul/ekstensi di atas sangat berguna untuk memperluas kemampuan PostgreSQL. Ada beberapa ekstensi lagi yang tidak disertakan dalam blog tetapi sangat berguna untuk memperluas fungsionalitas PostgreSQL. Ini adalah sebagai berikut.

  • Ekstensi Bahasa:PL/Python, PL/Perl, PL/R, PL/v8, PL/sh dll.
  • Cstore_fdw
  • Mongo_fdw
  • HypoPG
  • Tds_fdw
  • Plprofiler

Kesimpulan

Ada banyak ekstensi dalam ekstensi yang didukung komunitas PostgreSQL dan beberapa ekstensi pihak ketiga, semuanya digunakan untuk kasus penggunaan tertentu. Anda dapat memperluas kemampuan atau fungsionalitas PostgreSQL dengan menggunakan modul-modul tersebut.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres Cloud9

  2. memperbarui baris tabel di postgres menggunakan subquery

  3. PostgreSQL:Mengapa psql tidak dapat terhubung ke server?

  4. Array elemen PostgreSQL yang masing-masing merupakan kunci asing

  5. Tentukan nama tabel dan kolom sebagai argumen dalam fungsi plpgsql?