Aurora PostgreSQL 互換の異種データベースとの統合 - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

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拡張機能を設定するには、以下の大まかなステップを使用します。

  1. PostgreSQL クライアントを使用して Aurora PostgreSQL 互換クラスターに接続し、tds_fdw拡張機能を作成します。

    CREATE EXTENSION tds_fdw;

    この拡張機能は、リモート SQL Server データベースからローカルテーブルであるかのようにデータにアクセスしてクエリを実行する機能を提供します。

  2. 接続するリモート SQL Server または TDS 互換データベースを表すサーバーオブジェクトを作成します。

  3. 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' );
  4. 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' );
  5. リモート 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' );
  6. 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');
  7. Aurora PostgreSQL 互換の他のテーブルをクエリする場合と同様に、外部テーブルをクエリします。

    SELECT * FROM sql_server_table;  SELECT * FROM mssql_people; -- Query based on table
  8. SQL Server から PostgreSQL にテーブルをインポートします。

    IMPORT FOREIGN SCHEMA dbo LIMIT TO (emp) FROM SERVER my_remote_sql_server INTO public_fdw;
  9. クエリプランを検証するには、 を実行しますEXPLAIN SELECT

    EXPLAIN SELECT * FROM mssql_people;
注記

データ操作言語 (DML) オペレーションは、 tds_fdw拡張機能では利用できません。システムは、異なるデータベースエンジン間での DML オペレーションの実行をサポートしていません。INSERTUPDATE、、および DELETETRUNCATE TABLEは、リモート SQL サーバーでは成功しません。