Mendaftarkan satu atau beberapa tabel dari sumber data eksternal sebagai foreign tables PostgreSQL sekaligus membuat foreign server dalam satu panggilan.
Sintaksis
cstring ST_RegForeignTables(
cstring source,
cstring server_name DEFAULT '',
cstring driver DEFAULT '',
cstring config_option DEFAULT '',
cstring open_option DEFAULT '',
cstring[] tables DEFAULT NULL,
cstring prefix DEFAULT ''
);Parameter
| Parameter | Wajib | Bawaan | Deskripsi |
|---|---|---|---|
source | Ya | — | Path sumber data. Untuk format path yang didukung, lihat Object storage paths. |
server_name | Tidak | ganos_fdw_server | Nama foreign server yang akan dibuat. Jika dihilangkan, server diberi nama ganos_fdw_server. |
driver | Tidak | Default driver | Driver untuk mengakses sumber data. Untuk menampilkan daftar driver yang tersedia, panggil ST_FDWDrivers. |
config_option | Tidak | '' | Variabel lingkungan yang dikonfigurasi untuk koneksi sumber data. |
open_option | Tidak | '' | Opsi spesifik driver untuk membuka sumber data. Contohnya, berikan SHAPE_ENCODING=LATIN1 untuk ESRI Shapefiles dengan encoding Latin-1. |
tables | Tidak | NULL | Nama tabel yang akan didaftarkan. Untuk menampilkan daftar nama tabel yang tersedia, panggil ST_ForeignTables. |
prefix | Tidak | '' | Awalan yang ditambahkan ke setiap nama foreign table. Gunakan ini untuk menghindari konflik nama saat mendaftarkan tabel dari beberapa sumber data. |
Deskripsi
ST_RegForeignTables menyederhanakan alur kerja PostgreSQL Foreign Data Wrapper (FDW)—yakni pembuatan foreign server dan pendaftaran foreign tables—menjadi satu panggilan fungsi. Fungsi ini membaca sumber data yang ditentukan, membuat foreign server dengan nama yang diberikan, lalu mendaftarkan tabel yang ditemukan sebagai foreign tables di database saat ini.
Setelah pendaftaran, kueri information_schema.foreign_tables untuk memverifikasi tabel yang telah dibuat beserta namanya.
Contoh
Semua contoh menggunakan path Object Storage Service (OSS) sebagai sumber data. Ganti <access_id>, <secret_key>, <Endpoint>, <bucket>, dan path_to/file dengan nilai aktual Anda.
Mendaftarkan semua tabel dengan nama server bawaan
Jika tidak diperlukan nama server khusus, abaikan parameter server_name. Fungsi ini secara otomatis membuat foreign server bernama ganos_fdw_server.
SELECT ST_RegForeignTables(
'OSS://<access_id>:<secret_key>@[<Endpoint>]/<bucket>/path_to/file'
); Create server 'ganos_fdw_server' successfullyMendaftarkan semua tabel dengan nama server kustom
Saat mendaftarkan beberapa sumber data, gunakan nama server berbeda agar tetap terpisah.
SELECT ST_RegForeignTables(
'OSS://<access_id>:<secret_key>@[<Endpoint>]/<bucket>/path_to/file',
'my_server'
); Create server 'my_server' successfullyMenentukan driver dan opsi pembukaan
Jika sumber data memerlukan driver atau encoding tertentu, atur parameter driver dan open_option. Contoh ini mendaftarkan direktori ESRI Shapefile dengan encoding Latin-1.
SELECT ST_RegForeignTables(
'OSS://<access_id>:<secret_key>@[<Endpoint>]/<bucket>/path_to/file',
'myserver',
'ESRI Shapefile',
'',
'SHAPE_ENCODING=LATIN1'
); Create server 'myserver' successfullyMendaftarkan subset tabel
Jika sumber data berisi beberapa tabel tetapi Anda hanya memerlukan sebagian, berikan nama tabel target dalam bentuk array. Untuk mengetahui nama tabel yang tersedia, panggil terlebih dahulu ST_ForeignTables.
SELECT ST_RegForeignTables(
'OSS://<access_id>:<secret_key>@[<Endpoint>]/<bucket>/path_to/file',
'myserver',
'ESRI Shapefile',
'',
'SHAPE_ENCODING=LATIN1',
ARRAY['point', 'roads']::cstring[]
); Create server 'myserver' successfullyMenambahkan awalan pada nama foreign table
Jika nama foreign table berpotensi bentrok dengan tabel yang sudah ada, gunakan parameter prefix untuk memberi namespace.
SELECT ST_RegForeignTables(
'OSS://<access_id>:<secret_key>@[<Endpoint>]/<bucket>/path_to/file',
'myserver',
'ESRI Shapefile',
'',
'SHAPE_ENCODING=LATIN1',
ARRAY['point', 'roads']::cstring[],
'myprefix'
); Create server 'myserver' successfullyVerifikasi pendaftaran
Setelah memanggil ST_RegForeignTables, verifikasi bahwa foreign tables telah dibuat dengan mengkueri information_schema.foreign_tables.
Langkah selanjutnya
Panggil
ST_ForeignTablesuntuk menampilkan daftar semua tabel yang tersedia di sumber data sebelum mendaftarkan.Panggil
ST_FDWDriversuntuk menampilkan daftar driver yang tersedia untuk format sumber data Anda.