Mendaftarkan satu atau beberapa tabel dari sumber data eksternal sebagai foreign table PostgreSQL sekaligus membuat foreign server dalam satu panggilan fungsi.
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 | — | Jalur sumber data. Untuk format jalur yang didukung, lihat Jalur Object Storage. |
server_name | Tidak | ganos_fdw_server | Nama foreign server yang akan dibuat. Jika dihilangkan, server diberi nama ganos_fdw_server. |
driver | Tidak | Driver bawaan | 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. Misalnya, berikan SHAPE_ENCODING=LATIN1 untuk ESRI Shapefile 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 foreign data wrapper (FDW) PostgreSQL—yakni pembuatan foreign server dan pendaftaran foreign table—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 table di database saat ini.
Setelah pendaftaran, lakukan kueri terhadap information_schema.foreign_tables untuk memverifikasi tabel yang telah dibuat beserta nama-namanya.
Contoh
Semua contoh berikut menggunakan jalur 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 memerlukan nama server kustom, abaikan parameter server_name. Fungsi akan 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 yang 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 berikut 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 table telah dibuat dengan melakukan kueri terhadap information_schema.foreign_tables.
Langkah selanjutnya
Panggil
ST_ForeignTablesuntuk menampilkan daftar semua tabel yang tersedia di sumber data sebelum mendaftarkanPanggil
ST_FDWDriversuntuk menampilkan daftar driver yang tersedia untuk format sumber data Anda