

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Integrazione compatibile con Aurora PostgreSQL con database eterogenei
<a name="heterogeneous-databases"></a>

Per integrare Aurora PostgreSQL compatibile con i database remoti di SQL Server, usa l'estensione Tabular Data Stream foreign data wrapper (). `tds_fdw` Utilizzando l'`tds_fdw`estensione, puoi implementare la funzionalità di query federata per interagire con qualsiasi database remoto basato su SQL Server, sia locale che gestito o autogestito su Amazon [EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html). L'`tds_fdw`estensione è disponibile in tutte le versioni attualmente supportate di Amazon RDS for PostgreSQL e Aurora PostgreSQL.

## Casi d'uso e passaggi di alto livello di tds\_fdw
<a name="tds-fdw"></a>

L'integrazione di Aurora PostgreSQL compatibile con database eterogenei come SQL Server supporta i seguenti casi d'uso:
+ **Architetture ibride** ‒ L'organizzazione potrebbe disporre di database SQL Server esistenti che devono coesistere e integrarsi con Aurora PostgreSQL Compatible. In questi casi, Aurora PostgreSQL Compatible può far parte di un'architettura ibrida, in cui interagisce con database eterogenei per scambiare dati o eseguire operazioni specifiche. Grazie a questa integrazione, l'organizzazione può utilizzare i punti di forza di diverse piattaforme di database mantenendo al contempo gli investimenti esistenti.
+ **Reporting e analisi** ‒ È possibile utilizzare Aurora, compatibile con PostgreSQL, come database di reporting o analisi. È possibile consolidare i dati da più fonti, inclusi i database Oracle e SQL Server. Questo caso d'uso è comune negli scenari in cui le organizzazioni desiderano creare database di report o data mart specializzati su misura per unità aziendali o casi d'uso specifici.

Per configurare l'`tds_fwd`estensione in Aurora PostgreSQL compatibile, utilizza i seguenti passaggi di alto livello:

1. Connect al cluster Aurora compatibile con PostgreSQL utilizzando un client PostgreSQL e crea l'estensione: `tds_fdw`

   ```
   CREATE EXTENSION tds_fdw;
   ```

   Questa estensione offre la funzionalità per accedere e interrogare i dati da database SQL Server remoti come se fossero tabelle locali.

1. Crea un oggetto server che rappresenti il database remoto compatibile con SQL Server o TDS a cui desideri connetterti.

1. Assicurati che siano presenti i gruppi di sicurezza e le configurazioni di rete necessari per consentire ad Aurora PostgreSQL Compatible di connettersi al database remoto di SQL Server.

   Se il database remoto è ospitato in locale, potrebbe essere necessario configurare una VPN o una connessione. AWS Direct Connect 

   Esegui il comando seguente:

   ```
   CREATE SERVER my_remote_sql_server
       FOREIGN DATA WRAPPER tds_fdw
       OPTIONS (
           servername 'your_server_name',
           port '1433',
           instance 'your_instance_name'
       );
   ```

1. Definisci una mappatura utente che mappa un utente compatibile con Aurora PostgreSQL a un utente sul database remoto compatibile con SQL Server o TDS:

   ```
   CREATE USER MAPPING FOR postgres
       SERVER my_remote_sql_server
       OPTIONS (
           username 'your_sql_server_username',
           password 'your_sql_server_password'
       );
   ```

1. Crea una tabella esterna che rappresenti una tabella o una vista nel database remoto compatibile con SQL Server o 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'
       );
   ```

1. Crea una tabella esterna basata sulla query 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');
   ```

1. Interroga la tabella esterna come faresti con qualsiasi altra tabella compatibile con Aurora PostgreSQL:

   ```
   SELECT * FROM sql_server_table; 
   SELECT * FROM mssql_people; -- Query based on table
   ```

1. Importa la tabella da SQL Server a PostgreSQL:

   ```
   IMPORT FOREIGN SCHEMA dbo LIMIT TO (emp) FROM SERVER
                           my_remote_sql_server INTO public_fdw;
   ```

1. Per convalidare il piano di interrogazione, esegui: `EXPLAIN SELECT`

   ```
   EXPLAIN SELECT * FROM mssql_people;
   ```

**Nota**  
Le operazioni DML (Data Manipulation Language) non sono disponibili tramite l'estensione. `tds_fdw` Il sistema non supporta l'esecuzione di operazioni DML su diversi motori di database. `INSERT`, `DELETE``UPDATE`, e non `TRUNCATE TABLE` avrà esito positivo sul server SQL remoto.