Présentation de PGAdapter

PGAdapter traduit le protocole de communication PostgreSQL en protocole gRPC Spanner. Il vous permet de connecter des applications et des pilotes PostgreSQL à l'interface PostgreSQL Spanner pour les bases de données Spanner avec une surcharge de latence minimale.

Pour savoir comment démarrer PGAdapter, consultez Démarrer PGAdapter.

Vous pouvez exécuter PGAdapter en tant que proxy side-car avec votre application principale ou, pour les applications Java, en cours de traitement directement dans le JVM de l'application. En exposant un point de terminaison sur localhost qui prend en charge le protocole de communication PostgreSQL, PGAdapter permet à des outils tels que psql de se connecter à Spanner.

PGAdapter ajoute une surcharge de latence de 0,2 ms au maximum. L'interface PostgreSQL maintient les mêmes niveaux de latence que GoogleSQL.

Le schéma 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.

Pilotes et ORM compatibles

PGAdapter est compatible avec les pilotes, les ORM et les outils clients PostgreSQL standards, y compris les suivants :

Pour obtenir une matrice de compatibilité complète, consultez Pilotes et ORM PostgreSQL.

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 le JVM.
  • Docker PGAdapter est également packagé en tant qu'image Docker.
  • Cloud Run : PGAdapter peut être déployé en tant que proxy side-car sur Cloud Run.
  • Proxy side-car : une utilisation typique en tant que proxy side-car se fait 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 Démarrer PGAdapter.

Autorisation avec PGAdapter

PGAdapter détermine le compte de service ou un autre compte principal Identity and Access Management (IAM) pour la connexion en examinant les identifiants que vous spécifiez lorsque vous démarrez le proxy. Les autorisations IAM accordées à ce compte principal déterminent les opérations de base de données autorisées.

Lorsque vous utilisez le contrôle des accès ultraprécis, spécifiez un rôle de base de données lorsque vous démarrez PGAdapter. PGAdapter utilise le contrôle des accès ultraprécis lors de l'envoi de requêtes et d'instructions LMD, ce qui nécessite l'autorisation IAM spanner.databases.useRoleBasedAccess. Pour les rôles de base de données autres que public, le compte principal a également besoin de l'autorisation spanner.databaseRoles.use. Les privilèges 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 accordées au compte principal IAM s'appliquent. Pour exécuter des instructions LDD, le compte principal doit disposer de l'autorisation spanner.databases.updateDdl.

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

Étape suivante