Panoramica di PGAdapter

PGAdapter traduce il protocollo di rete PostgreSQL nel protocollo gRPC di Spanner. Ti consente di connettere applicazioni e driver PostgreSQL all'interfaccia PostgreSQL di Spanner per i database Spanner con un overhead di latenza minimo.

Per scoprire come avviare PGAdapter, consulta Avviare PGAdapter.

Puoi eseguire PGAdapter come proxy sidecar insieme all'applicazione principale o, per le applicazioni Java, in-process direttamente all'interno della JVM dell'applicazione. Esposendo un endpoint su localhost che supporta il protocollo di rete PostgreSQL, PGAdapter consente a strumenti come psql di connettersi a Spanner.

PGAdapter aggiunge al massimo 0,2 ms di overhead di latenza. L'interfaccia PostgreSQL mantiene gli stessi livelli di latenza di GoogleSQL.

Il seguente diagramma mostra come psql si connette a Spanner tramite PGAdapter. psql si connette a Spanner tramite PGAdapter.

PGAdapter supporta le modalità di query di base ed estese e qualsiasi tipo di dati supportato dall'interfaccia PostgreSQL per Spanner.

Driver e ORM supportati

PGAdapter supporta driver, ORM e strumenti client PostgreSQL standard, tra cui:

Per una matrice di compatibilità completa, consulta Driver e ORM PostgreSQL.

Ambienti di esecuzione di PGAdapter

Puoi eseguire PGAdapter utilizzando uno dei seguenti metodi:

  • Standalone: PGAdapter viene fornito come file JAR ed è eseguito in modalità standalone nella JVM.
  • Docker. PGAdapter è anche pacchettizzato come immagine Docker.
  • Cloud Run: PGAdapter può essere sottoposto a deployment come proxy sidecar su Cloud Run.
  • Proxy sidecar: un utilizzo tipico come proxy sidecar è in un cluster Kubernetes.
  • In-process: il codice dell'applicazione Java può utilizzare il file JAR fornito per creare e avviare un'istanza di PGAdapter.

Per i dettagli su questi metodi, consulta Avviare PGAdapter.

Autorizzazione con PGAdapter

PGAdapter determina il account di servizio o un'altra entità Identity and Access Management (IAM) per la connessione esaminando le credenziali che specifichi quando avvii il proxy. Le autorizzazioni IAM concesse a questa entità determinano le operazioni di database consentite.

Quando utilizzi il controllo dell'accesso granulare, specifica un ruolo di database quando avvii PGAdapter. PGAdapter utilizza il controllo dell'accesso granulare quando invia query e istruzioni DML, che richiedono l'autorizzazione IAM spanner.databases.useRoleBasedAccess. Per i ruoli di database diversi da public, l'entità deve disporre anche dell'autorizzazione spanner.databaseRoles.use. I privilegi concessi al ruolo di database determinano le operazioni che l'applicazione di connessione può eseguire. Se non specifichi un ruolo di database, vengono applicate le autorizzazioni concesse all'entità IAM. Per eseguire istruzioni DDL, l'entità deve disporre dell'autorizzazione spanner.databases.updateDdl.

Per ulteriori informazioni, consulta Informazioni sul controllo dell'accesso granulare e Controllo dell'accesso con IAM.

Passaggi successivi