Descripción general de PGAdapter

PGAdapter traduce el protocolo de transmisión de PostgreSQL al protocolo gRPC de Spanner. Te permite conectar aplicaciones y controladores de PostgreSQL a la interfaz de PostgreSQL de Spanner para bases de datos de Spanner con una sobrecarga de latencia mínima.

Para obtener información sobre cómo iniciar PGAdapter, consulta Inicia PGAdapter.

Puedes ejecutar PGAdapter como un proxy de sidecar junto con tu aplicación principal o, para aplicaciones de Java, en proceso directamente dentro de la JVM de la aplicación. Al exponer un extremo en localhost que admite el protocolo de transmisión de PostgreSQL, PGAdapter permite que herramientas como psql se conecten a Spanner.

PGAdapter agrega como máximo 0.2 ms de sobrecarga de latencia. La interfaz de PostgreSQL mantiene los mismos niveles de latencia que GoogleSQL.

En el siguiente diagrama, se muestra cómo psql se conecta a Spanner a través de PGAdapter. psql se conecta a Spanner a través de PGAdapter.

PGAdapter admite modos de consulta básicos y extendidos, y cualquier tipo de datos que admita la interfaz de PostgreSQL para Spanner.

Controladores y ORM compatibles

PGAdapter admite controladores, ORM y herramientas de cliente de PostgreSQL estándar, incluidos los siguientes:

Para obtener una matriz de compatibilidad completa, consulta Controladores y ORM de PostgreSQL.

Entornos de ejecución de PGAdapter

Puedes ejecutar PGAdapter con uno de los siguientes métodos:

  • Independiente: PGAdapter se proporciona como un archivo JAR y se ejecuta de forma independiente en la JVM.
  • Docker. PGAdapter también se empaqueta como una imagen de Docker.
  • Cloud Run: PGAdapter se puede implementar como un proxy de sidecar en Cloud Run.
  • Proxy sidecar: Un uso típico como proxy de sidecar es en un clúster de Kubernetes
  • En proceso: El código de la aplicación de Java puede usar el archivo JAR proporcionado para crear e iniciar una instancia de PGAdapter.

Para obtener detalles sobre estos métodos, consulta Inicia PGAdapter.

Autorización con PGAdapter

PGAdapter determina la cuenta de servicio o la otra principal de Identity and Access Management (IAM) para la conexión mediante el examen de las credenciales que especificas cuando inicias el proxy. Los permisos de IAM otorgados a esa principal determinan las operaciones de base de datos permitidas.

Cuando uses el control de acceso detallado, especifica un rol de base de datos cuando inicies PGAdapter. PGAdapter usa el control de acceso detallado cuando envía consultas y declaraciones DML, lo que requiere el permiso spanner.databases.useRoleBasedAccess de IAM. Para los roles de base de datos que no sean public, la principal también necesita el permiso spanner.databaseRoles.use. Los privilegios otorgados al rol de base de datos determinan las operaciones que puede realizar la aplicación conectada. Si no especificas un rol de base de datos, se aplican los permisos otorgados a la principal de IAM. Para realizar declaraciones DDL, la principal debe tener el permiso spanner.databases.updateDdl.

Para obtener más información, consulta Acerca del control de acceso detallado y Control de acceso con IAM.

¿Qué sigue?