Bagikan melalui


Ekstensi PostgreSQL di Azure Database for PostgreSQL - Single Server

BERLAKU UNTUK: Azure Database for PostgreSQL - Server Tunggal

Penting

Azure Database for PostgreSQL - Server Tunggal berada di jalur penghentian. Kami sangat menyarankan Agar Anda meningkatkan ke Azure Database for PostgreSQL - Server Fleksibel. Untuk informasi selengkapnya tentang migrasi ke Azure Database for PostgreSQL - Server Fleksibel, lihat Apa yang terjadi pada Server Tunggal Azure Database for PostgreSQL?.

PostgreSQL menyediakan kemampuan untuk memperluas fungsionalitas database Anda menggunakan ekstensi. Ekstensi menggabungkan beberapa objek SQL terkait bersama-sama dalam satu paket yang dapat dimuat atau dihapus dari database Anda dengan satu perintah. Setelah dimuat dalam database, ekstensi dapat berfungsi seperti fitur bawaan.

Cara menggunakan ekstensi PostgreSQL

Ekstensi PostgreSQL harus dipasang dalam database sebelum Anda dapat menggunakannya. Untuk menginstal ekstensi tertentu, jalankan perintah CREATE EXTENSION dari alat psql untuk memuat objek yang dipaket ke dalam database Anda.

Azure Database for PostgreSQL mendukung subkumpulan ekstensi utama seperti yang tercantum di bawah ini. Informasi ini juga tersedia dengan menjalankan SELECT * FROM pg_available_extensions;. Ekstensi di luar yang tercantum tidak didukung. Anda tidak dapat membuat ekstensi Anda sendiri di Azure Database for PostgreSQL.

Ekstensi Postgres 11

Ekstensi berikut tersedia di server Azure Database for PostgreSQL yang memiliki Postgres versi 11.

Ekstensi Versi ekstensi Keterangan
address_standardizer 2.5.1 Digunakan untuk menguraikan alamat ke dalam elemen penyusun.
address_standardizer_data_us 2.5.1 Contoh himpunan data Address Standardizer AS
btree_gin 1.3 dukungan untuk mengindeks jenis data umum di GIN
btree_gist 1.5 dukungan untuk mengindeks jenis data umum di GiST
citext 1.5 tipe data untuk string karakter yang tidak sensitif terhadap kasus
cube 1.4 jenis data untuk kubus multidimensi
dblink 1.2 tersambung ke database PostgreSQL lain dari dalam database
dict_int 1.0 templat kamus pencarian teks untuk bilangan bulat
earthdistance 1.1 hitung jarak lingkaran besar di permukaan Bumi
fuzzystrmatch 1.1 tentukan persamaan dan jarak antar untai (karakter)
hstore 1.5 jenis data untuk menyimpan set pasangan (kunci, nilai)
hypopg 1.1.2 Indeks hipotetis untuk PostgreSQL
intarray 1.2 fungsi, operator, dan dukungan indeks untuk array 1-D bilangan bulat
isn 1.2 jenis data untuk standar penomoran produk internasional
ltree 1.1 jenis data untuk struktur seperti pohon secara hierarkis
orafce 3.7 Fungsi dan operator yang mengemulasi subset fungsi dan paket dari RDBMS komersial
pgaudit 1.3.1 menyediakan fungsi audit
pgcrypto 1.3 fungsi kriptografi
pgrouting 2.6.2 Ekstensi pgRouting
pgrowlocks 1.2 tampilkan informasi penguncian tingkat baris
pgstattuple 1.5 tampilkan statistik tuple-level
pg_buffercache 1.3 memeriksa buffer cache bersama
pg_partman 4.0.0 Ekstensi untuk mengelola tabel yang dipartisi berdasarkan waktu atau ID
pg_prewarm 1.2 data relasi prewarm
pg_stat_statements 1.6 lacak statistik eksekusi dari semua eksekusi pernyataan SQL
pg_trgm 1.4 pengukuran kesamaan teks dan pencarian indeks berdasarkan trigram
plpgsql 1.0 bahasa prosedural PL/pgSQL
plv8 2.3.11 bahasa prosedural tepercaya PL/JavaScript (v8)
PostGIS 2.5.1 Geometri PostGIS, geografi, serta jenis dan fungsi spasial raster
postgis_sfcgal 2.5.1 Fungsi PostGIS SFCGAL
postgis_tiger_geocoder 2.5.1 PostGIS tiger geocoder dan reverse geocoder
postgis_topology 2.5.1 Fungsi dan jenis spasial topologi PostGIS
postgres_fdw 1.0 pembungkus data asing untuk server PostgreSQL jarak jauh
tablefunc 1.0 fungsi yang memanipulasi seluruh tabel, termasuk tab silang
timescaledb 1.7.4 Mengaktifkan penyisipan yang dapat diskalakan dan kueri kompleks untuk data deret waktu
unaccent 1.1 kamus pencarian teks yang menghilangkan aksen
uuid-ossp 1.1 hasilkan pengidentifikasi unik universal (UUID)

Ekstensi Postgres 10

Ekstensi berikut tersedia di server Azure Database for PostgreSQL yang memiliki Postgres versi 10.

Ekstensi Versi ekstensi Keterangan
address_standardizer 2.5.1 Digunakan untuk menguraikan alamat ke dalam elemen penyusun.
address_standardizer_data_us 2.5.1 Contoh himpunan data Address Standardizer AS
btree_gin 1.3 dukungan untuk mengindeks jenis data umum di GIN
btree_gist 1.5 dukungan untuk mengindeks jenis data umum di GiST
chkpass 1.0 jenis data untuk kata sandi terenkripsi otomatis
citext 1.4 tipe data untuk string karakter yang tidak sensitif terhadap kasus
cube 1.2 jenis data untuk kubus multidimensi
dblink 1.2 tersambung ke database PostgreSQL lain dari dalam database
dict_int 1.0 templat kamus pencarian teks untuk bilangan bulat
earthdistance 1.1 hitung jarak lingkaran besar di permukaan Bumi
fuzzystrmatch 1.1 tentukan persamaan dan jarak antar untai (karakter)
hstore 1.4 jenis data untuk menyimpan set pasangan (kunci, nilai)
hypopg 1.1.1 Indeks hipotetis untuk PostgreSQL
intarray 1.2 fungsi, operator, dan dukungan indeks untuk array 1-D bilangan bulat
isn 1.1 jenis data untuk standar penomoran produk internasional
ltree 1.1 jenis data untuk struktur seperti pohon secara hierarkis
orafce 3.7 Fungsi dan operator yang mengemulasi subset fungsi dan paket dari RDBMS komersial
pgaudit 1.2 menyediakan fungsi audit
pgcrypto 1.3 fungsi kriptografi
pgrouting 2.5.2 Ekstensi pgRouting
pgrowlocks 1.2 tampilkan informasi penguncian tingkat baris
pgstattuple 1.5 tampilkan statistik tuple-level
pg_buffercache 1.3 memeriksa buffer cache bersama
pg_partman 2.6.3 Ekstensi untuk mengelola tabel yang dipartisi berdasarkan waktu atau ID
pg_prewarm 1.1 data relasi prewarm
pg_stat_statements 1.6 lacak statistik eksekusi dari semua eksekusi pernyataan SQL
pg_trgm 1.3 pengukuran kesamaan teks dan pencarian indeks berdasarkan trigram
plpgsql 1.0 bahasa prosedural PL/pgSQL
plv8 2.1.0 bahasa prosedural tepercaya PL/JavaScript (v8)
PostGIS 2.4.3 Geometri PostGIS, geografi, serta jenis dan fungsi spasial raster
postgis_sfcgal 2.4.3 Fungsi PostGIS SFCGAL
postgis_tiger_geocoder 2.4.3 PostGIS tiger geocoder dan reverse geocoder
postgis_topology 2.4.3 Fungsi dan jenis spasial topologi PostGIS
postgres_fdw 1.0 pembungkus data asing untuk server PostgreSQL jarak jauh
tablefunc 1.0 fungsi yang memanipulasi seluruh tabel, termasuk tab silang
timescaledb 1.7.4 Mengaktifkan penyisipan yang dapat diskalakan dan kueri kompleks untuk data deret waktu
unaccent 1.1 kamus pencarian teks yang menghilangkan aksen
uuid-ossp 1.1 hasilkan pengidentifikasi unik universal (UUID)

Ekstensi Postgres 9.6

Ekstensi berikut tersedia di server Azure Database for PostgreSQL yang memiliki Postgres versi 9.6.

Ekstensi Versi ekstensi Keterangan
address_standardizer 2.3.2 Digunakan untuk menguraikan alamat ke dalam elemen penyusun.
address_standardizer_data_us 2.3.2 Contoh himpunan data Address Standardizer AS
btree_gin 1.0 dukungan untuk mengindeks jenis data umum di GIN
btree_gist 1.2 dukungan untuk mengindeks jenis data umum di GiST
chkpass 1.0 jenis data untuk kata sandi terenkripsi otomatis
citext 1.3 tipe data untuk string karakter yang tidak sensitif terhadap kasus
cube 1.2 jenis data untuk kubus multidimensi
dblink 1.2 tersambung ke database PostgreSQL lain dari dalam database
dict_int 1.0 templat kamus pencarian teks untuk bilangan bulat
earthdistance 1.1 hitung jarak lingkaran besar di permukaan Bumi
fuzzystrmatch 1.1 tentukan persamaan dan jarak antar untai (karakter)
hstore 1.4 jenis data untuk menyimpan set pasangan (kunci, nilai)
hypopg 1.1.1 Indeks hipotetis untuk PostgreSQL
intarray 1.2 fungsi, operator, dan dukungan indeks untuk array 1-D bilangan bulat
isn 1.1 jenis data untuk standar penomoran produk internasional
ltree 1.1 jenis data untuk struktur seperti pohon secara hierarkis
orafce 3.7 Fungsi dan operator yang mengemulasi subset fungsi dan paket dari RDBMS komersial
pgaudit 1.1.2 menyediakan fungsi audit
pgcrypto 1.3 fungsi kriptografi
pgrouting 2.3.2 Ekstensi pgRouting
pgrowlocks 1.2 tampilkan informasi penguncian tingkat baris
pgstattuple 1.4 tampilkan statistik tuple-level
pg_buffercache 1.2 memeriksa buffer cache bersama
pg_partman 2.6.3 Ekstensi untuk mengelola tabel yang dipartisi berdasarkan waktu atau ID
pg_prewarm 1.1 data relasi prewarm
pg_stat_statements 1.4 lacak statistik eksekusi dari semua eksekusi pernyataan SQL
pg_trgm 1.3 pengukuran kesamaan teks dan pencarian indeks berdasarkan trigram
plpgsql 1.0 bahasa prosedural PL/pgSQL
plv8 2.1.0 bahasa prosedural tepercaya PL/JavaScript (v8)
PostGIS 2.3.2 Geometri PostGIS, geografi, serta jenis dan fungsi spasial raster
postgis_sfcgal 2.3.2 Fungsi PostGIS SFCGAL
postgis_tiger_geocoder 2.3.2 PostGIS tiger geocoder dan reverse geocoder
postgis_topology 2.3.2 Fungsi dan jenis spasial topologi PostGIS
postgres_fdw 1.0 pembungkus data asing untuk server PostgreSQL jarak jauh
tablefunc 1.0 fungsi yang memanipulasi seluruh tabel, termasuk tab silang
timescaledb 1.7.4 Mengaktifkan penyisipan yang dapat diskalakan dan kueri kompleks untuk data deret waktu
unaccent 1.1 kamus pencarian teks yang menghilangkan aksen
uuid-ossp 1.1 hasilkan pengidentifikasi unik universal (UUID)

Ekstensi Postgres 9.5

Catatan

PostgreSQL versi 9.5 telah dihentikan.

Ekstensi berikut tersedia di server Azure Database for PostgreSQL yang memiliki Postgres versi 9.5.

Ekstensi Versi ekstensi Keterangan
address_standardizer 2.3.0 Digunakan untuk menguraikan alamat ke dalam elemen penyusun.
address_standardizer_data_us 2.3.0 Contoh himpunan data Address Standardizer AS
btree_gin 1.0 dukungan untuk mengindeks jenis data umum di GIN
btree_gist 1.1 dukungan untuk mengindeks jenis data umum di GiST
chkpass 1.0 jenis data untuk kata sandi terenkripsi otomatis
citext 1.1 tipe data untuk string karakter yang tidak sensitif terhadap kasus
cube 1.0 jenis data untuk kubus multidimensi
dblink 1.1 tersambung ke database PostgreSQL lain dari dalam database
dict_int 1.0 templat kamus pencarian teks untuk bilangan bulat
earthdistance 1.0 hitung jarak lingkaran besar di permukaan Bumi
fuzzystrmatch 1.0 tentukan persamaan dan jarak antar untai (karakter)
hstore 1.3 jenis data untuk menyimpan set pasangan (kunci, nilai)
hypopg 1.1.1 Indeks hipotetis untuk PostgreSQL
intarray 1.0 fungsi, operator, dan dukungan indeks untuk array 1-D bilangan bulat
isn 1.0 jenis data untuk standar penomoran produk internasional
ltree 1.0 jenis data untuk struktur seperti pohon secara hierarkis
orafce 3.7 Fungsi dan operator yang mengemulasi subset fungsi dan paket dari RDBMS komersial
pgaudit 1.0.7 menyediakan fungsi audit
pgcrypto 1.2 fungsi kriptografi
pgrouting 2.3.0 Ekstensi pgRouting
pgrowlocks 1.1 tampilkan informasi penguncian tingkat baris
pgstattuple 1.3 tampilkan statistik tuple-level
pg_buffercache 1.1 memeriksa buffer cache bersama
pg_partman 2.6.3 Ekstensi untuk mengelola tabel yang dipartisi berdasarkan waktu atau ID
pg_prewarm 1.0 data relasi prewarm
pg_stat_statements 1.3 lacak statistik eksekusi dari semua eksekusi pernyataan SQL
pg_trgm 1.1 pengukuran kesamaan teks dan pencarian indeks berdasarkan trigram
plpgsql 1.0 bahasa prosedural PL/pgSQL
PostGIS 2.3.0 Geometri PostGIS, geografi, serta jenis dan fungsi spasial raster
postgis_sfcgal 2.3.0 Fungsi PostGIS SFCGAL
postgis_tiger_geocoder 2.3.0 PostGIS tiger geocoder dan reverse geocoder
postgis_topology 2.3.0 Fungsi dan jenis spasial topologi PostGIS
postgres_fdw 1.0 pembungkus data asing untuk server PostgreSQL jarak jauh
tablefunc 1.0 fungsi yang memanipulasi seluruh tabel, termasuk tab silang
unaccent 1.0 kamus pencarian teks yang menghilangkan aksen
uuid-ossp 1.0 hasilkan pengidentifikasi unik universal (UUID)

pg_stat_statements

Ekstensi pg_stat_statements dimuat sebelumnya di setiap server Azure Database for PostgreSQL untuk memberi Anda sarana guna melacak statistik eksekusi pernyataan SQL. Pengaturan pg_stat_statements.track, yang mengontrol pernyataan apa yang dihitung oleh ekstensi, default ke top, yang berarti semua pernyataan yang dikeluarkan langsung oleh klien dilacak. Dua tingkat pelacakan lainnya adalah none dan all. Pengaturan ini dapat dikonfigurasi sebagai parameter server melalui portal Microsoft Azure atau Azure CLI.

Ada tradeoff antara penyediaan informasi eksekusi kueri pg_stat_statements dan dampak pada kinerja server saat mencatat setiap pernyataan SQL. Jika Anda tidak secara aktif menggunakan pg_stat_statements, kami sarankan Anda mengatur pg_stat_statements.track ke none. Perhatikan bahwa beberapa layanan pemantauan pihak ketiga mungkin mengandalkan pg_stat_statements untuk memberikan wawasan kinerja kueri, jadi konfirmasi apakah ini terjadi untuk Anda atau tidak.

dblink dan postgres_fdw memungkinkan Anda untuk terhubung dari satu server PostgreSQL ke server lain, atau ke database lain di server yang sama. Server penerima perlu mengizinkan koneksi dari server pengirim melalui firewall-nya. Saat menggunakan ekstensi ini untuk menyambungkan antara server Azure Database for PostgreSQL, ini dapat dilakukan dengan mengatur "Izinkan akses ke layanan Azure" ke AKTIF. Ini juga diperlukan jika Anda ingin menggunakan ekstensi untuk mengulang kembali ke server yang sama. Pengaturan "Izinkan akses ke layanan Azure" dapat ditemukan di halaman portal Microsoft Azure untuk server Postgres, di bawah Keamanan Koneksi. Mengaktifkan "Izinkan akses ke layanan Azure" AKTIF menempatkan semua IP Azure pada daftar yang diizinkan.

Catatan

Saat ini, koneksi keluar dari Azure Database for PostgreSQL melalui ekstensi wrapper data asing seperti postgres_fdw tidak didukung, kecuali untuk koneksi ke server Azure Database for PostgreSQL lainnya di wilayah Azure yang sama.

uuid

Jika Anda berencana untuk menggunakan uuid_generate_v4() dari ekstensi uuid-ossp, pertimbangkan untuk membandingkan dengan gen_random_uuid() dari  ekstensi pgcrypto  untuk keuntungan performa.

pgAudit

Ekstensi pgAudit menyediakan sesi dan log audit objek. Untuk mempelajari cara menggunakan ekstensi ini di Azure Database for PostgreSQL, kunjungi artikel audit konsep.

pg_prewarm

Ekstensi pg_prewarm memuat data relasional ke dalam cache. Dengan memanaskan cache terlebih dahulu, kueri Anda memiliki waktu respons yang lebih baik pada eksekusi pertama setelah dihidupkan ulang. Di Postgres 10 ke bawah, pemanasan awal dilakukan secara manual dengan menggunakan fungsi prapemanasan.

Di Postgres 11 ke atas, Anda dapat mengonfigurasi prapemanasan agar terjadi secara otomatis. Anda harus menyertakan pg_prewarm dalam daftar parameter shared_preload_libraries Anda dan memulai ulang server untuk menerapkan perubahan. Parameter dapat diatur dari portal Microsoft AzureCLI, REST API, atau templat ARM.

TimescaleDB

TimescaleDB adalah database deret waktu yang dikemas sebagai ekstensi untuk PostgreSQL. TimescaleDB menyediakan fungsi analitik berorientasi waktu, pengoptimalan, dan Postgres penskalaan untuk beban kerja deret waktu.

Pelajari lebih lanjut tentang TimescaleDB, merek dagang terdaftar dari Timescale, Inc.. Azure Database for PostgreSQL menyediakan TimescaleDB edisi Apache-2.

Memasang TimescaleDB

Untuk memasang TimescaleDB, Anda perlu memasukkannya ke dalam pustaka bersama server yang dimuat sebelumnya. Perubahan pada parameter shared_preload_libraries Postgres mengharuskan hidupkan ulang server berlaku. Anda dapat mengubah parameter dengan menggunakan portal Microsoft Azure atau Azure CLI.

Menggunakan Portal Azure:

  1. Pilih server Azure Database for PostgreSQL Anda.

  2. Di bar samping, pilih Parameter Server.

  3. Cari parameter shared_preload_libraries.

  4. Pilih TimescaleDB.

  5. Pilih Simpan untuk menyimpan perubahan Anda. Anda mendapatkan pemberitahuan setelah perubahan disimpan.

  6. Setelah pemberitahuan, hidupkan ulang server untuk menerapkan perubahan ini. Untuk mempelajari cara menghidupkan ulang server, lihat Menghidupkan ulang server Azure Database for PostgreSQL.

Anda sekarang dapat mengaktifkan TimescaleDB di database Postgres Anda. Sambungkan ke database dan jalankan perintah berikut:

CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;

Tip

Jika Anda melihat kesalahan, konfirmasikan bahwa Anda memulai ulang server Anda setelah menyimpan shared_preload_libraries.

Anda sekarang dapat membuat hypertable TimescaleDB dari awal atau memigrasikan data deret waktu yang ada di PostgreSQL.

Memulihkan database Skala Waktu menggunakan pg_dump dan pg_restore

Untuk memulihkan database Timescale dengan menggunakan pg_dump dan pg_restore, Anda perlu menjalankan dua prosedur pembantu di database tujuan: timescaledb_pre_restore() dan timescaledb_post restore().

Pertama siapkan database tujuan:

--create the new database where you'll perform the restore
CREATE DATABASE tutorial;
\c tutorial --connect to the database 
CREATE EXTENSION timescaledb;

SELECT timescaledb_pre_restore();

Sekarang Anda dapat menjalankan pg_dump pada database asli dan kemudian melakukan pg_restore. Setelah pemulihan, pastikan untuk menjalankan perintah berikut di database yang dipulihkan:

SELECT timescaledb_post_restore();

Untuk detail selengkapnya tentang metode pemulihan dengan database Skala Waktu yang diaktifkan, lihat Dokumentasi skala waktu

Memulihkan database Timescale menggunakan timescaledb-backup

Saat menjalankan prosedur SELECT timescaledb_post_restore() yang tercantum di atas, Anda mungkin mendapatkan bendera izin ditolak kesalahan saat memperbarui timescaledb.restoring. Hal ini disebabkan oleh izin ALTER DATABASE yang terbatas di layanan database Cloud PaaS. Dalam situasi ini, Anda dapat melakukan metode alternatif menggunakan alat timescaledb-backup untuk mencadangkan dan memulihkan database Skala Waktu. Timescaledb-backup adalah program untuk membuat cadangan dan memulihkan database TimescaleDB dengan lebih sederhana, sedikit rawan kesalahan, dan lebih berperforma. Untuk melakukannya, Anda harus melakukan hal berikut

  1. Instal alat seperti yang dijelaskan di sini
  2. Membuat server dan database Azure Database for PostgreSQL
  3. Mengaktifkan ekstensi Skala Waktu seperti yang ditunjukkan di atas
  4. Memberikan peran azure_pg_admin kepada pengguna yang akan digunakan oleh ts-restore
  5. Menjalankan ts-restore untuk memulihkan database

Detail selengkapnya tentang utilitas ini dapat ditemukan di sini.

Catatan

Saat menggunakan utilitas timescale-backup untuk memulihkan ke Azure karena nama pengguna database untuk Azure Database for PostgresQL yang tidak fleksibel harus menggunakan format <user@db-name>, Anda perlu mengganti @ dengan pengkodean karakter %40.

Langkah berikutnya

Jika Anda tidak melihat ekstensi yang ingin Anda gunakan, beri tahu kami. Pilih permintaan yang ada atau buat permintaan umpan balik baru di forum umpan balik kami.