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
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 Azure, CLI, 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:
Pilih server Azure Database for PostgreSQL Anda.
Di bar samping, pilih Parameter Server.
Cari parameter
shared_preload_libraries
.Pilih TimescaleDB.
Pilih Simpan untuk menyimpan perubahan Anda. Anda mendapatkan pemberitahuan setelah perubahan disimpan.
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
- Instal alat seperti yang dijelaskan di sini
- Membuat server dan database Azure Database for PostgreSQL
- Mengaktifkan ekstensi Skala Waktu seperti yang ditunjukkan di atas
- Memberikan peran azure_pg_admin kepada pengguna yang akan digunakan oleh ts-restore
- 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.