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.
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
- Lancer PGAdapter
- En savoir plus sur le dépôt GitHub PGAdapter
- En savoir plus sur les pilotes et ORM PostgreSQL pour obtenir un tableau des pilotes et ORM PostgreSQL compatibles avec PGAdapter