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 popolati dalla 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.