All Products
Search
Document Center

ApsaraDB RDS:ST_RegForeignTables

Last Updated:Aug 22, 2026

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

ParameterWajibBawaanDeskripsi
sourceYa—Jalur sumber data. Untuk format jalur yang didukung, lihat Jalur Object Storage.
server_nameTidakganos_fdw_serverNama foreign server yang akan dibuat. Jika dihilangkan, server diberi nama ganos_fdw_server.
driverTidakDriver bawaanDriver 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. Misalnya, berikan SHAPE_ENCODING=LATIN1 untuk ESRI Shapefile 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 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' successfully

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

Menentukan 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' 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 table telah dibuat dengan melakukan kueri terhadap 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