All Products
Search
Document Center

ApsaraDB RDS:ST_RegForeignTables

Last Updated:Mar 29, 2026

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

ParameterWajibBawaanDeskripsi
sourceYaPath sumber data. Untuk format path yang didukung, lihat Object storage paths.
server_nameTidakganos_fdw_serverNama foreign server yang akan dibuat. Jika dihilangkan, server diberi nama ganos_fdw_server.
driverTidakDefault driverDriver untuk mengakses sumber data. Untuk menampilkan daftar driver yang tersedia, panggil ST_FDWDrivers.
config_optionTidak''Variabel lingkungan yang dikonfigurasi untuk koneksi sumber data.
open_optionTidak''Opsi spesifik driver untuk membuka sumber data. Contohnya, berikan SHAPE_ENCODING=LATIN1 untuk ESRI Shapefiles dengan encoding Latin-1.
tablesTidakNULLNama tabel yang akan didaftarkan. Untuk menampilkan daftar nama tabel yang tersedia, panggil ST_ForeignTables.
prefixTidak''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' successfully

Mendaftarkan 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' successfully

Menentukan 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' successfully

Mendaftarkan 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' successfully

Menambahkan 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' successfully

Verifikasi pendaftaran

Setelah memanggil ST_RegForeignTables, verifikasi bahwa foreign tables telah dibuat dengan mengkueri information_schema.foreign_tables.

Langkah selanjutnya

  • Panggil ST_ForeignTables untuk menampilkan daftar semua tabel yang tersedia di sumber data sebelum mendaftarkan.

  • Panggil ST_FDWDrivers untuk menampilkan daftar driver yang tersedia untuk format sumber data Anda.