Pools de conexões de banco de dados

O pool de conexões permite o uso de pools de conexões pré-configurados nos dialetos do banco de dados Amazon Redshift, PostgreSQL e Snowflake.

Essa opção permite que o Looker use pools de conexões por meio do driver JDBC. O pool de conexões de banco de dados permite desempenho de consulta mais rápido. Uma nova consulta não precisa criar uma nova conexão de banco de dados, mas pode usar uma conexão existente do pool de conexões. O recurso de pool de conexões garante que uma conexão seja limpa após a execução de uma consulta e ficará disponível para reutilização após o término da execução da consulta.

Para ativar o pool de conexões, ative o recurso Pool de conexões de banco de dados no Labs. Se o recurso Labs estiver ativado, se você tiver configurado pools de conexões no seu banco de dados e estiver usando um dos dialetos listados acima, o Looker usará o pool de conexões.

Veja alguns pontos a serem considerados ao usar pools de conexão:

  • Vários usuários compartilham um pool de conexões se os valores dos atributos do usuário forem idênticos. Os usuários que têm valores exclusivos ou diferentes no conjunto de atributos usarão pools de conexão únicos ao se conectar ao banco de dados.

  • O número máximo de conexões que podem ser feitas em pools de conexão em todos os nós do banco de dados é limitado pelo valor no campo Max Connections na página Connection do banco de dados.

  • Se o número de consultas simultâneas emitidas para um pool de conexão exceder o número máximo de conexões, as consultas serão enfileiradas no Looker até que as consultas anteriores sejam executadas.

  • Strings de conexão JDBC exclusivas criam pools de conexão exclusivos. Por exemplo, nomes de usuário ou nomes de grupos de banco de dados que determinam o controle de acesso baseado em papéis para o banco de dados criam strings de conexão JDBC exclusivas, que depois criam pools de conexão exclusivos. Por exemplo, um grupo financeiro de uma empresa pode ter um papel de banco de dados que concede acesso a todas as tabelas do banco de dados, mas a equipe de vendas e marketing pode ter um papel de banco de dados que conceda acesso somente a um subconjunto de tabelas de banco de dados. Nesse caso, cada grupo teria uma string de conexão JDBC exclusiva e um pool de conexão exclusivo. Um terceiro grupo pode ser um conjunto de clientes Powered-by-Looker (PBL) que têm direitos de acesso ao banco de dados. Os clientes do PBL também têm uma string JDBC exclusiva e um pool de conexões exclusivo. Portanto, eles também têm um conjunto exclusivo de conexões que não estão sendo usadas pelos grupos de finanças ou de vendas e marketing.

  • A cláusula WHERE em uma consulta SQL não cria novos pools de conexão. A cláusula WHERE não tem impacto na string de conexão JDBC, então um novo pool de conexão não é criado. Por exemplo, os filtros de acesso exclusivos modificam a cláusula SQL WHERE em uma consulta, não a string de conexão JDBC. Portanto, os filtros de acesso exclusivos não criam novos pools de conexão.

  • Quando vários pools de conexões são criados, o número máximo de conexões é fragmentado em vários pools, cada um com um subconjunto de conexões disponíveis. Isso ocorre porque o número total de conexões não pode exceder o valor máximo de conexões.