Présentation de PGAdapter

Cette page présente PGAdapter. Pour savoir comment démarrer PGAdapter, consultez la section Démarrer PGAdapter.

PGAdapter est un proxy side-car qui est une petite application qui exécute parallèlement à votre application principale afin de prendre en charge les communications entre les Interface PostgreSQL pour Spanner et Spanner Pour les applications Java, vous pouvez même associer PGAdapter à l'application directement sans avoir à l'exécuter dans un processus distinct. PGAdapter est est conçu pour s'exécuter sur la même machine que l'application et expose sur un point de terminaison localhost compatible avec le protocole de communication PostgreSQL. Il convertit le protocole filaire PostgreSQL en fil Spanner gRPC. Avec ce proxy exécuté localement, un client PostgreSQL tel que psql peut se connecter à une base de données Spanner en dialecte PostgreSQL.

PGAdapter ajoute au maximum 0,2 ms de surcharge de latence. La L'interface PostgreSQL présente les mêmes niveaux de latence GoogleSQL.

Le diagramme suivant montre comment psql se connecte à Spanner via PGAdapter.

psql se connecte à Spanner via PGAdapter

PGAdapter accepte les modes de requête de base et étendus. accepte tous les types de données compatibles avec l'interface PostgreSQL pour Spanner.

Environnements d'exécution PGAdapter

Vous pouvez exécuter PGAdapter à l'aide de l'une des méthodes suivantes :

  • Autonome: PGAdapter est fourni sous forme de fichier JAR et exécute autonome dans la JVM.
  • Docker PGAdapter est également empaqueté sous forme d'image Docker.
  • Cloud Run: PGAdapter peut être déployé en tant que proxy side-car. sur Cloud Run.
  • Proxy side-car: il est généralement utilisé en tant que proxy side-car dans un cluster.
  • En cours de traitement : le code de votre application Java peut utiliser le fichier JAR fourni pour effectuer les opérations suivantes : créer et démarrer une instance de PGAdapter.

Pour en savoir plus sur ces méthodes, consultez la section Démarrer PGAdapter.

Autorisation avec PGAdapter

PGAdapter détermine le compte de service ou un autre principal IAM (Identity and Access Management) à utiliser pour la connexion en examinant les identifiants que vous spécifiez au démarrage. IAM les autorisations accordées à ce compte principal déterminent les autorisations de connexion de l'application sur la base de données.

Lorsque vous utilisez un contrôle ultraprécis des accès, vous pouvez éventuellement spécifier un de base de données au démarrage de PGAdapter. Si vous spécifiez un rôle de base de données, PGAdapter utilise le contrôle des accès ultraprécis lorsqu'il envoie des requêtes pour les requêtes et les instructions DML. Pour ce faire, vous devez disposer de l'autorisation IAM spanner.databases.useRoleBasedAccess et, pour les rôles de base de données autres que public, de l'autorisation spanner.databaseRoles.use. Les droits accordés au rôle de base de données déterminent les opérations que l'application de connexion peut effectuer. Si vous ne spécifiez pas de rôle de base de données, le rôle les autorisations accordées au rôle IAM principal sont utilisés. Pour exécuter des instructions DDL, le principal doit disposer de l'autorisation spanner.databases.updateDdl.

Pour en savoir plus, consultez les pages À propos du contrôle ultraprécis des accès et Contrôle des accès avec IAM

Étape suivante