翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Aurora PostgreSQL 互換の異種データベースとの統合
Aurora PostgreSQL 互換をリモート SQL Server データベースと統合するには、表形式データストリーム外部データラッパー (tds_fdw
) 拡張機能を使用します。tds_fdw
拡張機能を使用すると、フェデレーティッドクエリ機能を実装して、オンプレミスと Amazon EC2 で管理またはセルフマネージドの両方のリモート SQL Server ベースのデータベースとやり取りできます。tds_fdw
拡張機能は、現在サポートされているすべてのバージョンの Amazon RDS for PostgreSQL および Aurora PostgreSQL 互換で使用できます。
tds_fdw ユースケースと大まかなステップ
Aurora PostgreSQL 互換を SQL Server などの異種データベースと統合すると、次のユースケースがサポートされます。
-
ハイブリッドアーキテクチャ - 組織には、Aurora PostgreSQL 互換と共存して統合する必要がある既存の SQL Server データベースがある場合があります。このような場合、Aurora PostgreSQL 互換はハイブリッドアーキテクチャの一部であり、異種データベースとやり取りしてデータを交換したり、特定のオペレーションを実行したりできます。この統合により、組織は既存の投資を維持しながら、さまざまなデータベースプラットフォームの強みを活用できます。
-
レポートと分析 ‒ Aurora PostgreSQL 互換をレポートまたは分析データベースとして使用できます。Oracle データベースや SQL Server データベースなど、複数のソースからのデータを統合できます。このユースケースは、組織が特定のビジネスユニットやユースケースに合わせた特殊なレポートデータベースやデータマートを作成するシナリオで一般的です。
Aurora PostgreSQL 互換でtds_fwd
拡張機能を設定するには、以下の大まかなステップを使用します。
-
PostgreSQL クライアントを使用して Aurora PostgreSQL 互換クラスターに接続し、
tds_fdw
拡張機能を作成します。CREATE EXTENSION tds_fdw;
この拡張機能は、リモート SQL Server データベースからローカルテーブルであるかのようにデータにアクセスしてクエリを実行する機能を提供します。
-
接続するリモート SQL Server または TDS 互換データベースを表すサーバーオブジェクトを作成します。
-
Aurora PostgreSQL 互換がリモート SQL Server データベースに接続できるように、必要なセキュリティグループとネットワーク設定が設定されていることを確認します。
リモートデータベースがオンプレミスでホストされている場合は、VPN または AWS Direct Connect 接続の設定が必要になる場合があります。
次のコマンドを実行してください。
CREATE SERVER my_remote_sql_server FOREIGN DATA WRAPPER tds_fdw OPTIONS ( servername 'your_server_name', port '1433', instance 'your_instance_name' );
-
Aurora PostgreSQL 互換ユーザーをリモート SQL Server または TDS 互換データベースのユーザーにマッピングするユーザーマッピングを定義します。
CREATE USER MAPPING FOR postgres SERVER my_remote_sql_server OPTIONS ( username 'your_sql_server_username', password 'your_sql_server_password' );
-
リモート SQL Server または TDS 互換データベースのテーブルまたはビューを表す外部テーブルを作成します。
CREATE FOREIGN TABLE sql_server_table ( column1 INTEGER, column2 VARCHAR(50) ) SERVER my_remote_sql_server OPTIONS ( schema_name 'your_schema_name', table_name 'your_table_name' );
-
SQL クエリに基づいて外部テーブルを作成します。
CREATE FOREIGN TABLE mssql_people ( empno INT NOT NULL , ename VARCHAR(10) NULL, dept INT) SERVER my_remote_sql_server OPTIONS ( query 'SELECT empno, ename, dept FROM dbo.emp');
-
Aurora PostgreSQL 互換の他のテーブルをクエリする場合と同様に、外部テーブルをクエリします。
SELECT * FROM sql_server_table; SELECT * FROM mssql_people; -- Query based on table
-
SQL Server から PostgreSQL にテーブルをインポートします。
IMPORT FOREIGN SCHEMA dbo LIMIT TO (emp) FROM SERVER my_remote_sql_server INTO public_fdw;
-
クエリプランを検証するには、 を実行します
EXPLAIN SELECT
。EXPLAIN SELECT * FROM mssql_people;
注記
データ操作言語 (DML) オペレーションは、 tds_fdw
拡張機能では利用できません。システムは、異なるデータベースエンジン間での DML オペレーションの実行をサポートしていません。INSERT
、UPDATE
、、および DELETE
TRUNCATE TABLE
は、リモート SQL サーバーでは成功しません。