Presentazione tecnica di PGAdapter
PGAdapter è un proxy scritto in Java che implementa al suo interno il PostgreSQL Wire Protocol e gira su un server intermedio tra l’applicazione di BI e il server di Dremio, secondo la logica client/server anticipata nelle premesse. Quando è in esecuzione, localmente o in remoto, sta in ascolto su una porta e qualsiasi client Postgres può collegarsi ed effettuare delle query. Ogni client vede il PgAdapter come un vero e proprio server Postgres.
Per una corretta interpretazione e traduzione delle query abbiamo realizzato un motore semantico che prende in esame ogni query che viene spedita al PgAdapter, se è necessario ne modifica la sintassi SQL e traduce il Postgres Wire Protocol nell’equivalente utilizzato da Dremio. La traduzione delle query per la maggior parte dei casi è una semplice trasformazione del PostgresWire Protocol, ad eccezione delle query sui metadati che invece vengono completamente o in parte riscritte.
Infine sfruttando il driver ODBC ogni query elaborata viene inviata a Dremio.
Sfruttando la stessa logica, PGAdapter invia a Grafana i risultati delle query restituiti da Dremio.
Il PGAdapter si occupa anche della semplificazione e gestione del tool di connessione e della sicurezza.
Quest’ultima è garantita dalla possibilità di effettuare connessioni sicure grazie al protocollo TLS e dall’autenticazione attraverso gli user e le password che vengono ereditati direttamente dai client.