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, une petite application qui s'exécute avec votre application principale pour prendre en charge les communications entre l' interface PostgreSQL pour Spanner et Spanner. Pour les applications Java, vous pouvez même associer PGAdapter directement à l'application sans avoir à l'exécuter dans un processus distinct. PGAdapter est conçu pour s'exécuter sur la même machine que l'application et expose un point de terminaison sur localhost compatible avec le protocole de transmission PostgreSQL. Il traduit le protocole de communication PostgreSQL en protocole de communication 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 latence. L'interface PostgreSQL présente les mêmes niveaux de latence que GoogleSQL.

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

psql se connecte à Spanner via PGAdapter

PGAdapter est compatible avec les modes de requête de base et étendus, ainsi qu'avec 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 en tant que fichier JAR et s'exécute de manière autonome dans la JVM.
  • Docker PGAdapter est également empaqueté sous la forme d'une image Docker.
  • Cloud Run: PGAdapter peut être déployé en tant que proxy side-car sur Cloud Run.
  • Proxy side-car: un proxy side-car est généralement utilisé dans un cluster Kubernetes.
  • En cours de traitement: le code de votre application Java peut utiliser le fichier JAR fourni pour créer et démarrer une instance 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. Les autorisations IAM accordées à ce compte principal déterminent les autorisations dont dispose l'application de connexion sur la base de données.

Lorsque le contrôle des accès précis est utilisé, vous pouvez éventuellement spécifier un rôle de base de données lorsque vous démarrez 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, les autorisations au niveau de la base de données accordées au compte principal IAM sont utilisées. 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 des accès ultraprécis et Contrôle des accès avec IAM.

Étape suivante