すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:tds_fdw拡張子を使用したSQL Serverインスタンスのデータのクエリ

最終更新日:Jan 11, 2024

このトピックでは、PostgreSQLが提供するtds_fdw拡張機能を使用して、SQL Serverインスタンスのデータを照会する方法について説明します。

前提条件

  • RDSインスタンスのメジャーエンジンバージョンは、拡張機能でサポートされています。 詳細については、「ApsaraDB RDS For PostgreSQLでサポートされている拡張機能」をご参照ください。

  • RDSインスタンスのメジャーエンジンバージョンが要件を満たしているが、拡張機能がまだサポートされていない場合、RDSインスタンスのマイナーエンジンバージョンが更新されます。 詳細については、「マイナーエンジンバージョンの更新」をご参照ください。

  • RDSインスタンスが存在する仮想プライベートクラウド (VPC) のCIDRブロックを、接続するSQL Serverインスタンスのホワイトリストに追加する必要があります。 例: 172.xx. xx.xx/16

    説明

    ApsaraDB RDSコンソールの [データベース接続] ページで、RDSインスタンスが存在するVPCのCIDRブロックを表示できます。查看VPC网段

背景情報

tds_fdw拡張子は、PostgreSQLによって提供される外部データラッパー (FDW) です。 拡張機能を使用して、表形式データストリーム (TDS) プロトコルを使用するMicrosoft SQL Serverインスタンスなどの外部インスタンスに接続できます。

詳細については、「postgres_fdw」をご参照ください。

tds_fdw拡張子を作成する

SQL Serverインスタンスに接続した後、次のステートメントを実行してtds_fdw拡張子を作成します。

拡張子tds_fdwを作成します。

拡張機能を使用するUse the extension

  1. 次の文を実行してサーバーを作成します。

    CREATEサーバーmssql_svr
      外国データラッパーtds_fdw
      OPTIONS (サーバー名 '<SQL Serverインスタンスへの接続に使用されるエンドポイント>' 、ポート '<SQL Serverインスタンスへの接続に使用されるポート>' 、データベース 'tds_fdw_test '、tds_version '7.1'); 
    説明

    servernameパラメーターは、SQL Serverインスタンスへの接続に使用される内部エンドポイントに設定し、portパラメーターは、SQL Serverインスタンスへの接続に使用される内部ポートに設定する必要があります。

  2. 外部テーブルを作成します。 次のいずれかの方法を使用して、外部テーブルを作成できます。

    • table_nameパラメーターを指定し、次のステートメントを実行して外部テーブルを作成します。

      FOREIGNテーブルの作成mssql_table (
       id整数、
       データvarchar)
       サーバーmssql_svr
       オプション (table_name 'dbo.mytable '、row_estimate_method 'showplan_all'); 
    • schema_nameパラメーターとtable_nameパラメーターを指定し、次のステートメントを実行して外部テーブルを作成します。

      FOREIGNテーブルの作成mssql_table (
       id整数、
       データvarchar)
       サーバーmssql_svr
       オプション (schema_name 'dbo' 、table_name 'mytable' 、row_estimate_method 'showplan_all'); 
    • クエリパラメーターを指定し、次のステートメントを実行して外部テーブルを作成します。

      FOREIGNテーブルの作成mssql_table (
       id整数、
       データvarchar)
       サーバーmssql_svr
       オプション (クエリ 'SELECT * FROM dbo.mytable' 、row_estimate_method 'showplan_all'); 
    • 外部列名を指定し、次のステートメントを実行して外部テーブルを作成します。

      FOREIGNテーブルの作成mssql_table (
       id整数、
       col2 varchar OPTIONS (column_name 'data'))
       サーバーmssql_svr
       オプション (schema_name 'dbo' 、table_name 'mytable' 、row_estimate_method 'showplan_all'); 
  3. 次のステートメントを実行して、ユーザーマッピングを作成します。

    postgresのユーザーマッピングを作成する
      サーバーmssql_svr 
      オプション (ユーザー名 'sa' 、パスワード '123456'); 
  4. 次のステートメントを実行して、外部テーブルのスキーマをインポートします。

    インポート外国スキーマdbo
      EXCEPT (mssql_table)
      サーバーからmssql_svr
      INTOパブリック
      オプション (import_default 'true');