Esta página fornece uma visão geral do PGAdapter. Para saber como iniciar o PGAdapter, consulte Como iniciar o PGAdapter.
O PGAdapter é um proxy sidecar, que é um pequeno aplicativo que executa
junto com o seu aplicativo principal para dar suporte às comunicações entre o
Interface PostgreSQL para Spanner e Spanner.
Para aplicativos Java, você pode até mesmo vincular o PGAdapter ao aplicativo
diretamente, sem precisar executá-lo em um processo separado. O PGAdapter foi
projetado para ser executado na mesma máquina que o aplicativo e expõe um
endpoint no localhost que suporta o protocolo de transmissão do PostgreSQL. Ele
converte o protocolo de transmissão do PostgreSQL no protocolo de
transmissão do Spanner, o gRPC. Com esse proxy em execução localmente, um cliente PostgreSQL,
como psql
, pode se conectar a um banco de dados do
Spanner com dialeto PostgreSQL.
O PGAdapter adiciona no máximo 0,2 ms de sobrecarga de latência. A interface do PostgreSQL tem os mesmos níveis de latência que o GoogleSQL.
O diagrama a seguir mostra como psql
se conecta ao Spanner por meio
PGAdapter.
O PGAdapter oferece suporte a modos de consulta básicos e estendidos e qualquer tipo de dados aceito pela interface do PostgreSQL para o Spanner.
Ambientes de execução do PGAdapter
É possível executar o PGAdapter usando um dos seguintes métodos:
- Independente: o PGAdapter é fornecido como um arquivo JAR e executado. autônomo na JVM.
- Docker O PGAdapter também é empacotado como uma imagem do Docker.
- Cloud Run: o PGAdapter pode ser implantado como um proxy sidecar no Cloud Run.
- Proxy sidecar: um uso comum como proxy sidecar é em um ambiente do Kubernetes aglomerado.
- Em processo: o código do seu aplicativo Java pode usar o arquivo JAR fornecido para crie e inicie uma instância do PGAdapter.
Para obter detalhes sobre esses métodos, consulte Inicie o PGAdapter.
Autorização com PGAdapter
O PGAdapter determina a conta de serviço ou outro principal do Identity and Access Management (IAM) a ser usado para a conexão examinando as credenciais especificadas ao iniciá-lo. As permissões do IAM concedidas a esse participante determinam as permissões que o aplicativo de conexão tem no banco de dados.
Quando um controle de acesso refinado está em uso, é possível especificar uma
de banco de dados ao iniciar o PGAdapter. Se você especificar um papel de banco de dados,
o PGAdapter usa um controle de acesso refinado ao enviar solicitações de consultas
e instruções DML. Isso requer a permissão do IAM
spanner.databases.useRoleBasedAccess
e, para papéis de banco de dados diferentes
public
, a permissão spanner.databaseRoles.use
. Os privilégios concedidos a
o papel de banco de dados determina as operações que o aplicativo de conexão pode
executar. Se você não especificar um papel de banco de dados, os papéis do banco de dados
as permissões concedidas à equipe do IAM
principal são usados. Para executar instruções DDL, o principal precisa ter a
permissão spanner.databases.updateDdl
.
Saiba mais em Sobre o controle de acesso detalhado e Controle de acesso com o IAM.
A seguir
- Iniciar o PGAdapter
- Saiba mais sobre o repositório PGAdapter no GitHub (em inglês).
- Saiba mais sobre drivers e ORMs do PostgreSQL para conferir uma tabela de drivers e ORMs do PostgreSQL com suporte do PGAdapter.