En esta página, se proporciona una descripción general de PGAdapter. Para aprender a iniciar PGAdapter, consulta Cómo iniciar PGAdapter.
PGAdapter es un proxy complementario, una aplicación pequeña que se ejecuta junto con tu aplicación principal para admitir comunicaciones entre la interfaz de PostgreSQL para Spanner y Spanner.
Para aplicaciones de Java, incluso puedes vincular PGAdapter con la aplicación.
directamente sin tener que
ejecutarla en un proceso independiente. PGAdapter es
diseñada para ejecutarse en la misma máquina que la aplicación y expone
de extremo en localhost que admita el protocolo de cable PostgreSQL. Integra
traduce el protocolo de cable de PostgreSQL en el cable de Spanner
protocolo, gRPC. Con este proxy ejecutándose de forma local, un cliente de PostgreSQL, como psql
, puede conectarse a una base de datos de Spanner con dialecto de PostgreSQL.
PGAdapter agrega, como máximo, 0.2 ms de sobrecarga de latencia. El La interfaz de PostgreSQL tiene 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.
PGAdapter admite modos de consulta básicos y extendidos, y cualquier tipo de datos que admita la interfaz de PostgreSQL para Spanner.
Entornos de ejecución de PGAdapter
Puedes ejecutar PGAdapter con uno de los siguientes métodos:
- Independiente: PGAdapter se suministra como un archivo JAR y se ejecuta. 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 de 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 y, luego, iniciar una instancia de PGAdapter.
Para obtener detalles sobre estos métodos, consulta Cómo iniciar PGAdapter.
Autorización con PGAdapter
PGAdapter determina la cuenta de servicio o cualquier otro elemento principal de Identity and Access Management (IAM) que se usará para la conexión mediante el examen de las credenciales que especificas cuando la inicias. La API de IAM permisos otorgados a esa principal determinan los permisos que la que se conecta la aplicación en la base de datos.
Cuando usas un control de acceso detallado, puedes especificar
el rol de base de datos cuando inicias PGAdapter. Si especificas un rol de base de datos,
PGAdapter usa un control de acceso detallado cuando envía solicitudes
y declaraciones DML. Esto requiere el permiso de IAM
spanner.databases.useRoleBasedAccess
y, para roles de base de datos distintos de
public
, el permiso spanner.databaseRoles.use
. Los privilegios otorgados a
el rol de base de datos determinan las operaciones que la aplicación conectada puede
realizar. Si no especificas un rol de la base de datos, se usarán los permisos a nivel de la base de datos que se otorgan a la principal de IAM. Para realizar sentencias DDL, el principal debe tener el permiso spanner.databases.updateDdl
.
Para obtener más información, consulta Información sobre el control de acceso detallado y Control de acceso con IAM.
¿Qué sigue?
- Inicia PGAdapter
- Obtén más información sobre el repositorio de GitHub de PGAdapter.
- Obtén más información sobre los controladores y ORM de PostgreSQL para ver una tabla de los controladores y ORM de PostgreSQL que admite PGAdapter.