Mit Connection Pooling können Sie vorkonfigurierte Verbindungspools für die Datenbankdialekte PostgreSQL und Snowflake verwenden.
Wenn Ihr Dialekt dies unterstützt, kann Looker durch Datenbankverbindungs-Pooling Pools von Verbindungen über den JDBC-Treiber verwenden. Durch das Pooling von Datenbankverbindungen wird die Abfrageleistung gesteigert. Für eine neue Abfrage muss keine neue Datenbankverbindung erstellt werden, sondern es kann eine vorhandene Verbindung aus dem Verbindungspool verwendet werden. Durch die Funktion für Connection Pooling wird sichergestellt, dass eine Verbindung nach der Ausführung einer Abfrage bereinigt wird und nach dem Ende der Abfrageausführung wiederverwendet werden kann.
Sie können das Connection Pooling aktivieren, wenn Sie in Looker eine Datenbankverbindung erstellen oder bearbeiten. Verwenden Sie dazu die Option Database Connection Pooling.
Looker verwendet Verbindungs-Pooling für Ihre Verbindung, wenn alle folgenden Bedingungen erfüllt sind:
- Sie verwenden einen der Dialekte, die das Datenbankverbindungs-Pooling unterstützen.
- Die Option Database Connection Pooling (Datenbankverbindungs-Pooling) ist für die Looker-Verbindung aktiviert.
- Sie haben Verbindungspools in Ihrer Datenbank konfiguriert.
Hier sind einige Aspekte, die Sie bei der Verwendung von Verbindungspools beachten sollten:
Mehrere Nutzer verwenden einen Verbindungspool gemeinsam, wenn ihre Nutzerattributwerte identisch sind. Nutzer mit eindeutigen oder unterschiedlichen Werten in ihren Nutzerattributen verwenden eindeutige Verbindungspools, wenn sie eine Verbindung zur Datenbank herstellen.
Die maximale Anzahl von Verbindungen, die zu Verbindungspools auf allen Datenbankknoten hergestellt werden können, wird durch den Wert im Feld Max. Verbindungen pro Knoten auf der Seite Verbindung der Datenbank begrenzt.
Wenn die Anzahl der gleichzeitigen Abfragen, die an einen Verbindungspool gesendet werden, die maximale Anzahl von Verbindungen überschreitet, werden Abfragen in Looker in die Warteschlange gestellt, bis vorherige Abfragen ausgeführt wurden.
Durch eindeutige JDBC-Verbindungs-Strings werden eindeutige Verbindungspools erstellt. Wenn Sie beispielsweise eindeutige Datenbanknutzernamen oder Datenbankgruppennamen verwenden, die die rollenbasierte Zugriffssteuerung für die Datenbank festlegen, werden eindeutige JDBC-Verbindungsstrings erstellt, die dann eindeutige Verbindungspools erstellen. So kann beispielsweise eine Finanzgruppe in einem Unternehmen eine Datenbankrolle haben, die ihr Zugriff auf alle Tabellen in der Datenbank gewährt, während das Vertriebs- und Marketingteam eine Datenbankrolle hat, die ihm Zugriff auf nur eine Teilmenge der Datenbanktabellen gewährt. In diesem Fall hätte jede Gruppe einen eindeutigen JDBC-Verbindungsstring und einen eindeutigen Verbindungspool. Eine dritte Gruppe könnte aus Embedded Analytics-Kunden bestehen, die eigene Zugriffsrechte für die Datenbank haben. Kunden mit eingebetteter Analytik hätten auch einen eindeutigen JDBC-String und einen eindeutigen Verbindungspool. Sie hätten also auch einen eindeutigen Satz von Verbindungen, die nicht von den Finanz- oder Vertriebs- und Marketinggruppen verwendet werden.
Die
WHERE
-Klausel in einer SQL-Abfrage führt nicht zu neuen Verbindungspools. DieWHERE
-Klausel hat keine Auswirkungen auf den JDBC-Verbindungsstring. Daher wird kein neuer Verbindungspool erstellt. Beispielsweise ändern eindeutige Zugriffsfilter die SQL-WHERE
-Klausel in einer Abfrage, nicht den JDBC-Verbindungsstring. Daher werden durch eindeutige Zugriffsfilter keine neuen Verbindungspools erstellt.Wenn mehrere Verbindungspools erstellt werden, wird die maximale Anzahl von Verbindungen in mehrere Pools aufgeteilt, wobei jeder Pool eine Teilmenge der verfügbaren Verbindungen enthält. Das liegt daran, dass die Gesamtzahl der Verbindungen den Wert für die maximale Anzahl von Verbindungen nicht überschreiten darf.
Dialektunterstützung für Datenbankverbindungs-Pooling
Die Möglichkeit, Datenbankverbindungs-Pooling zu verwenden, hängt vom Datenbankdialekt ab, den Ihre Looker-Verbindung verwendet. In der aktuellen Version von Looker unterstützen die folgenden Dialekte das Pooling von Datenbankverbindungen:
Dialekt | Unterstützt? |
---|---|
Actian Avalanche | Nein |
Amazon Athena | Nein |
Amazon Aurora MySQL | Nein |
Amazon Redshift | Nein |
Amazon Redshift 2.1+ | Nein |
Amazon Redshift Serverless 2.1+ | Nein |
Apache Druid | Nein |
Apache Druid 0.13+ | Nein |
Apache Druid 0.18+ | Nein |
Apache Hive 2.3+ | Nein |
Apache Hive 3.1.2+ | Nein |
Apache Spark 3+ | Nein |
ClickHouse | Nein |
Cloudera Impala 3.1+ | Nein |
Cloudera Impala 3.1+ with Native Driver | Nein |
Cloudera Impala with Native Driver | Nein |
DataVirtuality | Nein |
Databricks | Nein |
Denodo 7 | Nein |
Denodo 8 & 9 | Nein |
Dremio | Nein |
Dremio 11+ | Nein |
Exasol | Nein |
Firebolt | Nein |
Google BigQuery Legacy SQL | Nein |
Google BigQuery Standard SQL | Nein |
Google Cloud PostgreSQL | Ja |
Google Cloud SQL | Nein |
Google Spanner | Nein |
Greenplum | Ja |
HyperSQL | Nein |
IBM Netezza | Nein |
MariaDB | Nein |
Microsoft Azure PostgreSQL | Ja |
Microsoft Azure SQL Database | Nein |
Microsoft Azure Synapse Analytics | Nein |
Microsoft SQL Server 2008+ | Nein |
Microsoft SQL Server 2012+ | Nein |
Microsoft SQL Server 2016 | Nein |
Microsoft SQL Server 2017+ | Nein |
MongoBI | Nein |
MySQL | Nein |
MySQL 8.0.12+ | Nein |
Oracle | Nein |
Oracle ADWC | Nein |
PostgreSQL 9.5+ | Ja |
PostgreSQL pre-9.5 | Ja |
PrestoDB | Nein |
PrestoSQL | Nein |
SAP HANA | Nein |
SAP HANA 2+ | Nein |
SingleStore | Nein |
SingleStore 7+ | Nein |
Snowflake | Ja |
Teradata | Nein |
Trino | Nein |
Vector | Nein |
Vertica | Nein |