All Products
Search
Document Center

ApsaraDB RDS:Panduan cepat untuk referensi FDW

Last Updated:Jun 25, 2025

Foreign Data Wrapper (FDW) adalah ekstensi PostgreSQL yang memungkinkan Anda mengakses data eksternal. Sumber data eksternal mencakup database dari instance ApsaraDB RDS dan instance RDS lainnya. Di GanosBase, FDW mendukung akses terpadu ke berbagai jenis data spasial serta secara otomatis memetakan tipe data geometri spasial ke tipe Geometry. Dengan FDW, Anda dapat mengakses dan menanyai data dari tabel asing maupun tabel di instance RDS secara terpadu.

Prosedur

  1. Buat ekstensi Ganos_FDW.

    Anda dapat menggunakan salah satu metode berikut untuk membuat ekstensi Ganos_FDW:

    • Gunakan kata kunci CASCADE untuk membuat ekstensi Ganos_FDW.

      CREATE EXTENSION ganos_fdw WITH schema public CASCADE;
      Catatan

      Disarankan untuk menginstal ekstensi dalam mode publik guna menghindari masalah izin.

    • Buat langsung ekstensi Ganos_FDW.

      CREATE EXTENSION ganos_spatialref;
      CREATE EXTENSION ganos_geometry;
      CREATE EXTENSION ganos_fdw;
  2. Daftarkan file data spasial dalam format shapefile sebagai tabel asing.

    1. Daftarkan shapefile sebagai tabel asing.

      SELECT ST_RegForeignTables('OSS://<access_id>:<secrect_key>@[<Endpoint>]/<bucket>/path_to/filet');
      Catatan

      Berikut ini adalah penjelasan parameter:

      • ak_id dan ak_secret menentukan ID AccessKey dan Rahasia AccessKey dari pasangan AccessKey yang digunakan untuk mengakses Bucket Object Storage Service (OSS). Untuk informasi lebih lanjut, lihat Memperoleh Pasangan AccessKey.

      • Untuk memastikan aksesibilitas data, pastikan bahwa instance RDS Anda dan bucket OSS berada di wilayah yang sama serta terhubung melalui Titik akhir OSS internal. Untuk informasi lebih lanjut, lihat Nama domain OSS.

      • /<bucket>/path_to/file menentukan direktori file di bucket OSS. Jika Anda menggunakan file dalam format shapefile, file tersebut harus mencakup setidaknya tiga jenis file berikut: .shp, .shx, dan .dbf. File-file tersebut harus diunggah ke folder yang sama di bucket OSS.

    2. Tanyakan tabel asing menggunakan tampilan information_schema.foreign_tables.

      SELECT foreign_table_name FROM information_schema.foreign_tables ORDER BY foreign_table_name ASC;
  3. Tanyakan data dari tabel asing.

    SELECT fid, ST_AsText(geom), name, age, height FROM poly WHERE fid = 1;

    Contoh keluaran:

    fid  | ST_AsText(geom)                  | name      | age |  height
    --------------------------------------------------------------------
       1 | POLYGON((5 0,0 0,0 10,5 10,5 0)) | ZhangShan |  35 |   1,84 
  4. Impor data dari tabel asing ke dalam tabel yang dibuat di instance RDS Anda.

    • Jika belum ada tabel yang dibuat di instance RDS Anda, jalankan perintah berikut untuk membuat tabel dan menyisipkan data ke dalamnya:

      CREATE TABLE poly_db AS SELECT * FROM poly;
    • Jika tabel telah dibuat di instance RDS Anda, Anda dapat menggunakan salah satu metode berikut untuk mengimpor data:

      • Gunakan pernyataan INSERT SELECT.

        INSERT INTO poly_db SELECT * FROM poly;
      • Gunakan pernyataan IMPORT FOREIGN SCHEMA.

        CREATE SCHEMA imp;
        
        IMPORT FOREIGN SCHEMA ganos_fdw
          FROM SERVER ganos_fdw_server
          INTO imp;
  5. Opsional. Hapus ekstensi Ganos_FDW.

    DROP EXTENSION Ganos_FDW CASCADE;