PostgreSQL
# PostgreSQL
> Esta página aborda a conexão ao PostgreSQL como um **data warehouse**. Para usar o PostgreSQL como banco de dados de aplicação do Analytics, veja [Configurando o banco de dados de aplicação do Analytics](../../installation-and-operation/configuring-application-database).
Para adicionar uma conexão de banco de dados, clique no ícone de **engrenagem** no canto superior direito, e navegue até **Configurações do administrador** > **Bancos de dados** > **Adicionar um banco de dados**.
Preencha os campos para esse banco de dados e clique em **Salvar alterações** na parte inferior.
## Versões suportadas
O Analytics suporta desde a versão mais antiga suportada do PostgreSQL até a versão estável mais recente. Veja [versões do PostgreSQL](https://www.postgresql.org/support/versioning/).
## Conectar ao Supabase
Para conectar a um banco de dados Supabase, selecione PostgreSQL. Para mais detalhes, consulte a [documentação do Supabase](https://supabase.com/docs/guides/database/metabase).
## Conexão e sincronização
Após conectar a um banco de dados, você verá a seção “Conexão e sincronização” que mostra o status atual da conexão e opções para gerenciar sua conexão com o banco.
Aqui você pode [sincronizar o esquema do banco e reexaminar os valores dos campos](../sync-scan), além de editar os detalhes da conexão.
## Editar detalhes da conexão
Você pode editar essas configurações a qualquer momento. Só não esqueça de salvar suas alterações.
### Nome de exibição
O nome que será exibido para o banco de dados na interface do Analytics.
### Host
O endereço IP do seu banco de dados ou o nome do domínio (exemplo: esc.mydatabase.com).
### Porta
A porta do banco de dados. Exemplo: 5432.
### Nome do banco de dados
O nome do banco de dados ao qual você está se conectando.
### Nome de usuário
O nome de usuário da conta que você quer usar para conectar ao banco. É possível configurar múltiplas conexões ao mesmo banco usando diferentes usuários, cada um com diferentes conjuntos de [privilégios](../users-roles-privileges).
### Senha
A senha do usuário que você está utilizando para conexão.
### Usar um provedor de autenticação
> Autenticar com um provedor está disponível apenas nos planos [Pro](https://help.hellocloud.com/product/pro) e [Enterprise](https://help.hellocloud.com/product/enterprise) (tanto self-hosted quanto no Analytics Cloud).
Em vez da senha, você pode autenticar com um provedor suportado.
Disponível somente para planos Pro e Enterprise self-hosted.
#### Azure Managed Identity
Para usar o Azure Managed Identity, será necessário informar seu [client ID](https://learn.microsoft.com/en-us/previous-versions/azure/postgresql/single-server/how-to-connect-with-managed-identity#retrieving-the-access-token-from-azure-instance-metadata-service).
#### Oauth
Para usar Oauth como provedor, será preciso informar:
- URL do token de autenticação
- Cabeçalhos da requisição do token de autenticação (um mapa JSON)
### Schemas
Você pode especificar quais schemas deseja sincronizar e escanear. As opções são:
- Todos
- Somente estes…
- Todos exceto…
Para as opções **Somente estes** e **Todos exceto**, você pode inserir uma lista separada por vírgulas para informar quais schemas incluir (ou excluir). Por exemplo:
foo,bar,baz
Você pode usar o caractere curinga `*` para combinar múltiplos schemas.
Suponha que você tenha três schemas: foo, bar e baz.
- Se selecionar **Somente estes...** e digitar `b*`, você sincronizará bar e baz.
- Se selecionar **Todos exceto...** e digitar `b*`, você sincronizará apenas foo.
Note que apenas o curinga `*` é suportado; outros caracteres especiais ou expressões regulares não podem ser usados.
### Usar conexão segura (SSL)
O Analytics tenta automaticamente se conectar com SSL primeiro e, se não funcionar, tenta sem SSL. Se for possível conectar com SSL, o Analytics definirá essa conexão como padrão. Caso prefira conectar sem essa camada de segurança, é possível alterar essa configuração depois, mas recomendamos manter o SSL ativado para proteger seus dados.
#### SSL Mode
Bancos PostgreSQL suportam diferentes níveis de segurança na conexão, com diferentes níveis de impacto.
As opções de SSL Mode incluem:
- allow
- prefer
- require
- verify-ca
- verify-full
Consulte a documentação do PostgreSQL para uma tabela sobre os diferentes [SSL Modes](https://jdbc.postgresql.org/documentation/ssl/#configuring-the-client) e selecione a opção que melhor atende ao seu caso.
#### Certificado raiz SSL (PEM)
Se você escolher o SSL Mode “verify-ca” ou “verify-full”, será necessário especificar um certificado raiz (PEM). Você pode usar o caminho de um arquivo local ou o caminho de um arquivo enviado. Se estiver usando o Analytics Cloud, selecione a opção **caminho de arquivo enviado** e faça o upload do certificado.
#### Autenticar certificado de cliente
Ative esta opção para exibir as configurações de certificado de cliente.
#### Certificado SSL do cliente (PEM)
Você pode usar caminho para um arquivo local ou caminho para arquivo enviado. No Analytics Cloud, use caminho de arquivo enviado e faça upload do certificado.
#### Chave SSL do cliente (PKCS-8/DER)
Você também pode usar caminho para um arquivo local ou caminho para arquivo enviado. No Analytics Cloud, use arquivo enviado e faça upload do certificado. Também será necessário informar a senha da chave SSL do cliente.
A chave privada precisa estar no formato PKCS8 e armazenada como DER.
Se você tiver uma chave SSL do cliente no formato PEM, pode convertê-la para PKCS-8/DER usando o [openssl](https://www.openssl.org/). O comando seria algo como:
openssl pkcs8 -topk8 -inform PEM -outform DER -in client-key.pem -out client-key.der -nocrypt
Nota: se estiver usando GCP e gerou certificados cliente, todos estarão no formato PEM; é necessário apenas transformar o client-key.pem em client-key.der para a “Chave SSL do cliente”.
### Usar túnel SSH
Veja nosso [guia sobre tunelamento SSH](../ssh-tunnel).
### Desdobrar colunas JSON
Para bancos PostgreSQL, o Analytics pode desdobrar colunas JSON em campos componentes para gerar uma tabela onde cada chave JSON vira uma coluna. O desdobramento de JSON está ativado por padrão, mas você pode desativá-lo se houver lentidão na performance.
Se ativar o desdobramento JSON, é possível controlar esta opção para colunas individuais nas [metadados da tabela](../../data-modeling/metadata-editing#unfold-json).
### Opções adicionais na string de conexão JDBC
Você pode adicionar opções na string de conexão que o Analytics usa para conectar ao banco. Use o formato:
options=-c%20key=value
As URIs de conexão PostgreSQL esperam [percent-encoding](https://developer.mozilla.org/en-US/docs/Glossary/Percent-encoding) para espaços e símbolos.
### Reexecutar consultas para explorações simples
Desative essa opção se os usuários preferirem clicar em **Executar** (botão de play) antes de aplicar qualquer seleção em **Summarize** ou filtro.
Por padrão, o Analytics executa a consulta assim que você escolhe uma opção de agrupamento no menu **Summarize** ou uma condição de filtro no [menu de drill-through](../../questions/query-builder/summarizing-and-grouping). Se seu banco for lento, pode ser interessante desativar essa reexecução automática para evitar carregamento constante.
### Escolher quando as sincronizações e análises acontecem
Veja [sincronizações e análises](../sync-scan#choose-when-syncs-and-scans-happen).
### Refazer a impressão digital das tabelas periodicamente
> A impressão digital periódica aumenta a carga no seu banco de dados.
Ative esta opção para analisar uma amostra dos valores toda vez que o Analytics realizar uma [sincronização](../sync-scan#how-database-syncs-work).
Uma consulta de impressão digital examina as primeiras 10.000 linhas de cada coluna e estima quantos valores únicos existem, os valores mínimos e máximos para colunas numéricas e de timestamp, entre outros. Se essa opção estiver desativada, o Analytics fará essa impressão digital apenas uma vez na configuração inicial.
## Recursos de modelagem
Escolha se deseja habilitar recursos relacionados a [modelos do Analytics](../../data-modeling/models). Esses recursos geralmente requerem que o usuário do banco usado na conexão tenha privilégios de leitura e escrita.
### Ações de modelo
Ative para permitir que ações de modelos criados a partir desses dados sejam executadas. Ações podem ler, escrever e possivelmente deletar dados. O usuário do banco precisa ter permissões de escrita.
### Persistência de modelo
O Analytics criará tabelas com dados dos modelos e as atualizará conforme agendamento definido. Para habilitar a [persistência de modelo](../../data-modeling/model-persistence), conceda permissões de leitura e escrita nas credenciais desta conexão para um schema fornecido pelo Analytics.
## Roteamento de banco de dados
Veja [Roteamento de banco de dados](../../permissions/database-routing).
## Zona de perigo
Veja [Zona de perigo](../danger-zone).
## Leitura adicional
- [Gerenciamento de bancos de dados](../../databases/connecting)
- [Edição de metadados](../../data-modeling/metadata-editing)
- [Modelos](../../data-modeling/models)
- [Definição de permissões de acesso a dados](../../permissions/data)