Questa pagina fornisce una panoramica di PGAdapter. Per scoprire come avviare PGAdapter, consulta Avvio di PGAdapter.
PGAdapter è un proxy sidecar, ovvero una piccola applicazione che viene eseguita
e la tua applicazione principale per supportare le comunicazioni tra
Interfaccia PostgreSQL per Spanner e Spanner.
Per le applicazioni Java puoi anche collegare PGAdapter all'applicazione
senza doverlo eseguire in un processo separato. PGAdapter è progettato per essere eseguito sulla stessa macchina dell'applicazione ed espone un endpoint su localhost che supporta il protocollo di comunicazione PostgreSQL. Traduce il protocollo di comunicazione PostgreSQL nel protocollo di comunicazione Spanner, gRPC. Con questo proxy in esecuzione localmente, un client PostgreSQL come psql
può connettersi a un database Spanner con dialetto PostgreSQL.
PGAdapter aggiunge, al massimo, 0,2 ms di overhead di latenza. La L'interfaccia PostgreSQL ha gli stessi livelli di latenza GoogleSQL.
Il seguente diagramma mostra come psql
si connette a Spanner tramite
PGAdapter.
PGAdapter supporta le modalità di query di base ed estesa. supporta qualsiasi tipo di dati supportato dall'interfaccia PostgreSQL per Spanner.
Ambienti di esecuzione di PGAdapter
Puoi eseguire PGAdapter utilizzando uno dei seguenti metodi:
- Autonomo: PGAdapter viene fornito come file JAR ed esegue in modo autonomo nella JVM.
- Docker. PGAdapter è pacchettizzato anche come immagine Docker.
- Cloud Run: è possibile eseguire il deployment di PGAdapter come proxy sidecar su Cloud Run.
- Proxy sidecar: un utilizzo tipico come proxy sidecar è in un cluster Kubernetes.
- In elaborazione: il codice dell'applicazione Java può utilizzare il file JAR fornito per e avviare un'istanza PGAdapter.
Per informazioni dettagliate su questi metodi, consulta Avvia PGAdapter.
Autorizzazione con PGAdapter
PGAdapter determina l'account di servizio o un altro strumento Identity and Access Management (IAM) per la connessione esaminando le credenziali specificate all'avvio. IAM le autorizzazioni concesse a quell'entità determinano le autorizzazioni un'applicazione di connessione presente sul database.
Quando viene utilizzato un controllo dell'accesso granulare, è possibile specificare
ruolo di database all'avvio di PGAdapter. Se specifichi un ruolo del database,
PGAdapter utilizza il controllo dell'accesso granulare quando invia richieste di query
e istruzioni DML. Questa operazione richiede l'autorizzazione IAM
spanner.databases.useRoleBasedAccess
e, per i ruoli di database diversi da
public
, l'autorizzazione spanner.databaseRoles.use
. I privilegi concessi
il ruolo di database determina le operazioni che l'applicazione di connessione può
eseguire il deployment. Se non specifichi un ruolo del database, la classe a livello di database
le autorizzazioni concesse ai ruoli IAM
vengono utilizzate entità. Per eseguire istruzioni DDL, l'entità deve avere
Autorizzazione spanner.databases.updateDdl
.
Per ulteriori informazioni, consulta Informazioni sul controllo dell'accesso granulare e Controllo dell'accesso con IAM.
Passaggi successivi
- Avvia PGAdapter
- Scopri di più sul repository GitHub PGAdapter.
- Scopri di più su driver e ORM PostgreSQL per una tabella dei driver e degli ORM PostgreSQL supportati da PGAdapter.