全部产品
Search
文档中心

ApsaraDB RDS:Gunakan ekstensi tds_fdw untuk meminta data instance SQL Server

更新时间:Jul 02, 2025

Topik ini menjelaskan cara menggunakan ekstensi tds_fdw yang disediakan oleh PostgreSQL untuk meminta data dari instance SQL Server.

Prasyarat

  • Instance RDS harus menjalankan PostgreSQL 11 atau versi lebih baru.

  • Jika versi mesin utama instance RDS memenuhi persyaratan tetapi ekstensi belum didukung, perbarui versi mesin minor instance RDS tersebut. Sebagai contoh, jika instance RDS Anda menjalankan PostgreSQL 17, versi mesin minor harus 20241030 atau lebih baru. Untuk informasi lebih lanjut, lihat Perbarui versi mesin minor.

  • Tambahkan blok CIDR dari virtual private cloud (VPC) tempat instance RDS berada ke daftar putih instance SQL Server yang ingin Anda sambungkan. Contoh: 172.xx.xx.xx/16.

    Catatan

    Anda dapat melihat blok CIDR dari VPC tempat instance RDS berada di halaman Database Connection pada konsol ApsaraDB RDS.查看VPC网段

Informasi latar belakang

Ekstensi tds_fdw adalah Foreign Data Wrapper (FDW) yang disediakan oleh PostgreSQL. Ekstensi ini memungkinkan Anda terhubung dengan instance asing seperti Microsoft SQL Server yang menggunakan protokol Tabular Data Stream (TDS).

Untuk informasi lebih lanjut, lihat postgres_fdw.

Buat ekstensi tds_fdw

Setelah terhubung ke instance SQL Server, jalankan pernyataan berikut untuk membuat ekstensi tds_fdw:

create extension tds_fdw;

Gunakan ekstensi

  1. Jalankan pernyataan berikut untuk membuat server:

    CREATE SERVER mssql_svr
      FOREIGN DATA WRAPPER tds_fdw
      OPTIONS (servername '<Endpoint used to connect to the SQL Server instance>', port '<Port used to connect to the SQL Server instance>', database 'tds_fdw_test', tds_version '7.1');
    Catatan

    Atur parameter servername ke endpoint internal yang digunakan untuk terhubung ke instance SQL Server dan parameter port ke port internal yang digunakan untuk terhubung ke instance SQL Server.

  2. Buat tabel asing. Gunakan salah satu metode berikut untuk membuat tabel asing:

    • Tentukan parameter table_name dan jalankan pernyataan berikut untuk membuat tabel asing:

      CREATE FOREIGN TABLE mssql_table (
       id integer,
       data varchar)
       SERVER mssql_svr
       OPTIONS (table_name 'dbo.mytable', row_estimate_method 'showplan_all');
    • Tentukan parameter schema_name dan table_name dan jalankan pernyataan berikut untuk membuat tabel asing:

      CREATE FOREIGN TABLE mssql_table (
       id integer,
       data varchar)
       SERVER mssql_svr
       OPTIONS (schema_name 'dbo', table_name 'mytable', row_estimate_method 'showplan_all');
    • Tentukan parameter query dan jalankan pernyataan berikut untuk membuat tabel asing:

      CREATE FOREIGN TABLE mssql_table (
       id integer,
       data varchar)
       SERVER mssql_svr
       OPTIONS (query 'SELECT * FROM dbo.mytable', row_estimate_method 'showplan_all');
    • Tentukan nama kolom asing dan jalankan pernyataan berikut untuk membuat tabel asing:

      CREATE FOREIGN TABLE mssql_table (
       id integer,
       col2 varchar OPTIONS (column_name 'data'))
       SERVER mssql_svr
       OPTIONS (schema_name 'dbo', table_name 'mytable', row_estimate_method 'showplan_all');
  3. Jalankan pernyataan berikut untuk membuat pemetaan pengguna:

    CREATE USER MAPPING FOR postgres
      SERVER mssql_svr 
      OPTIONS (username 'sa', password '123456');
  4. Jalankan pernyataan berikut untuk mengimpor skema tabel asing:

    IMPORT FOREIGN SCHEMA dbo
      EXCEPT (mssql_table)
      FROM SERVER mssql_svr
      INTO public
      OPTIONS (import_default 'true');