Foreign Data Wrapper
Come già accennato nella pagina DB di analisi, il Foreign Data Wrapper (FDW) è uno strumento che ci consente di recuperare agevolmente i dati da database esterni senza dover utilizzare estensioni che richiedono sintassi particolari (ad es. dblink) e senza dover fare una copia fisica dei dati nel DB di analisi.
Di fatto il FDW è un collegamento alle tabelle (e alle viste se presenti) dei database esterni che ci consente di lavorare con il codice SQL esattamente come se tutti i dati fossero all'interno del nostro DB di analisi.
Nel nostro caso il FDW viene utilizzato per avere a disposizione all'interno del nostro database di analisi BI i dati dei database di tipo row data store (vedi la pagina Architettura del data warehouse) popolati dallatramite la procedura di ingestion.
Di seguito illustriamo brevemente i passaggi per configurare il FDW:
1. Creare l'estensione per il FDW desiderato, nel nostro caso postgres_fdw:
CREATE EXTENSION IF NOT EXISTS postgres_fdw;
2. Creare il server remoto per connettersi al database esterno desiderato:
CREATE SERVER server_remoto
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (dbname 'altrodb', host 'localhost');
3. Creare uno User Mapping per l'accesso al server remoto creato al punto precedente:
CREATE USER MAPPING FOR tuoutente
SERVER server_remoto
OPTIONS (user 'tuoutente', password 'tuapassword');
4. Importare dal server remoto lo schema desiderato:
IMPORT FOREIGN SCHEMA public
FROM SERVER server_remoto
INTO schema_locale;
Prima di importare lo schema dal server remoto è importante creare manualmente lo schema da popolare nel server locale (sono gli schemas che abbiamo definito "Row data", vedi la pagina DB di analisi).
Una volta effettuati questi passaggi il FDW è correttamente configurato e all'interno della cartella "Foreign Tables" del nostro schema compariranno i collegamenti alle tabelle (e alle viste se presenti) dello schema remoto, come mostrato nell'immagine seguente.
