O pool de conexões permite o uso de pools de conexão pré-configurados nos dialetos de 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 agrupamento de conexão de banco de dados permite um 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ão. O recurso de pool de conexões garante que uma conexão seja limpa após a execução de uma consulta e esteja 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. Quando o recurso Labs está ativado, se você tiver configurado pools de conexão 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 compartilharão um pool de conexões se os valores do atributo do usuário forem idênticos. Os usuários que têm valores exclusivos ou diferentes no conjunto de atributos de usuários usarão pools de conexão exclusivos ao se conectar ao banco de dados.
O número máximo de conexões que podem ser feitas para pools de conexão em todos os nós do banco de dados é limitado pelo valor no campo Máximo de conexões por nó na página Conexão 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, elas serão enfileiradas no Looker até que consultas anteriores sejam executadas.
Strings de conexão JDBC exclusivas criam pools de conexão exclusivos. Por exemplo, nomes de usuário exclusivos ou nomes de grupos de banco de dados que determinam o controle de acesso baseado em papéis para o banco de dados criarão strings de conexão JDBC exclusivas, que depois criarão pools de conexão exclusivos. Por exemplo, um grupo de finanças em uma empresa pode ter um papel de banco de dados que lhes conceda acesso a todas as tabelas no banco de dados, mas a equipe de vendas e marketing pode ter um papel de banco de dados que lhes conceda acesso somente a um subconjunto das tabelas de banco de dados. Nesse caso, cada grupo teria uma string de conexão JDBC exclusiva e um pool de conexões exclusivo. Um terceiro grupo pode ser um conjunto de clientes de análises incorporadas que têm os próprios direitos de acesso ao banco de dados. Os clientes de análise incorporados também teriam uma string JDBC exclusiva e um conjunto de conexões únicas, de modo que também teriam 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 causa novos pools de conexão. A cláusulaWHERE
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 SQLWHERE
em uma consulta, não a string de conexão JDBC. Portanto, os filtros de acesso exclusivos não criarão novos pools de conexão.Quando vários pools de conexão são criados, o número máximo de conexões é fragmentado em vários pools, cada um contendo 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.