Pool di connessioni al database

Il pool di connessioni consente l'uso di pool di connessioni preconfigurati sui dialetti del database Amazon Redshift, PostgreSQL e Snowflake.

Questa opzione consente a Looker di utilizzare pool di connessioni tramite il driver JDBC. Il pool di connessioni al database consente prestazioni delle query più rapide; una nuova query non deve creare una nuova connessione al database, ma può utilizzare una connessione esistente dal pool di connessioni. La funzionalità di pool di connessioni assicura che la connessione venga pulita dopo l'esecuzione di una query e che sia disponibile per il riutilizzo al termine dell'esecuzione.

Per abilitare il pool di connessioni, attiva la funzionalità Labs Database Connection Pooling. Quando la funzionalità Labs è attiva, se hai configurato pool di connessioni sul tuo database e stai utilizzando uno dei dialetti elencati sopra, Looker utilizzerà il pool di connessioni.

Alcuni aspetti da considerare quando si utilizzano i pool di connessioni:

  • Più utenti condividono un pool di connessioni se i rispettivi valori degli attributi utente sono identici. Gli utenti che hanno valori univoci o diversi nell'insieme di attributi utente utilizzeranno pool di connessioni univoci quando si connettono al database.

  • Il numero massimo di connessioni che possono essere effettuate a pool di connessioni in tutti i nodi di database è limitato dal valore nel campo Max Connections (Numero massimo di connessioni) nella pagina Connection (Connessione) del database.

  • Se il numero di query in parallelo inviate a un pool di connessioni supera il numero massimo di connessioni, le query vengono messe in coda in Looker fino all'esecuzione di query precedenti.

  • Le stringhe di connessione JDBC univoche creano pool di connessione univoci. Ad esempio, nomi utente di database univoci o nomi di gruppi di database che determinano il controllo dell'accesso basato sui ruoli nel database creano stringhe di connessione JDBC univoche, che creano quindi pool di connessione univoci. Ad esempio, un gruppo finanziario di un'azienda può avere un ruolo di database che concede l'accesso a tutte le tabelle del database, ma il team di vendita e marketing può avere un ruolo di database che gli concede l'accesso solo a un sottoinsieme delle tabelle di database. In questo caso, ogni gruppo avrà una stringa di connessione JDBC univoca e un pool di connessioni univoco. Un terzo gruppo potrebbe essere un insieme di clienti power-by-looker (PBL) che dispongono dei propri diritti di accesso al database. I clienti PBL hanno inoltre una stringa JDBC univoca e un pool di connessioni univoco, quindi dispongono anche di un insieme univoco di connessioni non utilizzate dai gruppi finanziari o di vendita e gruppi di marketing.

  • La clausola WHERE in una query SQL non genera nuovi pool di connessione. La clausola WHERE non ha impatto sulla stringa di connessione JDBC, quindi non viene creato un nuovo pool di connessioni. Ad esempio, i filtri di accesso univoci modificano la clausola SQL WHERE in una query, non la stringa di connessione JDBC, pertanto i filtri di accesso univoci non creano nuovi pool di connessioni.

  • Quando vengono creati più pool di connessioni, il numero massimo di connessioni viene frammentato in più pool, ognuno dei quali contiene un sottoinsieme di connessioni disponibili. Questo accade perché il numero totale di connessioni non può superare il valore massimo.