数据库连接池

连接池化功能可在 PostgreSQLSnowflake 数据库方言中使用预配置的连接池。

如果您的方言支持此功能,数据库连接池可让 Looker 通过 JDBC 驱动程序使用连接池。数据库连接池可提高查询性能;新查询无需创建新的数据库连接,而是可以使用连接池中的现有连接。连接池功能可确保在查询执行后清理连接,并在查询执行结束后可供重复使用。

您可以在 Looker 中创建修改数据库连接时,使用数据库连接池选项启用连接池。

如果满足以下所有条件,Looker 将在您的连接上使用连接池:

使用连接池时,您需要考虑以下事项:

  • 如果多个用户的用户属性值相同,则他们会共用一个连接池。如果用户的一组用户属性中包含唯一值或不同的值,那么在连接到数据库时,这些用户将使用唯一的连接池。

  • 所有数据库节点中可与连接池建立的连接数上限受数据库的连接页面中每个节点的最大连接数字段中的值限制。

  • 如果向连接池发出的并发查询数量超过连接数上限,Looker 会将查询加入队列,直到之前的查询执行完毕。

  • 唯一的 JDBC 连接字符串会创建唯一的连接池。例如,用于确定数据库基于角色的访问权限控制的唯一数据库用户名或数据库组名称将创建唯一的 JDBC 连接字符串,然后创建唯一的连接池。例如,某公司的财务组可能拥有一个数据库角色,该角色授予他们对数据库中所有表的访问权限,但销售和营销团队可能拥有一个数据库角色,该角色仅授予他们对部分数据库表的访问权限。在这种情况下,每个组都将具有唯一的 JDBC 连接字符串和唯一的连接池。第三个群组可能是一组拥有数据库访问权限的嵌入式分析客户。嵌入式分析客户也会有唯一的 JDBC 字符串和唯一的连接池,因此他们也会有财务或销售和营销群组未使用的唯一连接集。

  • SQL 查询中的 WHERE 子句不会导致新的连接池。WHERE 子句对 JDBC 连接字符串没有影响,因此不会创建新的连接池。例如,独特的访问过滤器会修改查询中的 SQL WHERE 子句,而不是 JDBC 连接字符串,因此独特的访问过滤器不会创建新的连接池。

  • 创建多个连接池时,连接数上限会分散到多个池中,每个池包含一部分可用连接。这是因为连接总数不能超过连接数上限值。

对数据库连接池的方言支持

能否使用数据库连接池取决于 Looker 连接所使用的数据库方言。在最新版 Looker 中,以下方言支持数据库连接池:

方言 是否支持?
Actian Avalanche
Amazon Athena
Amazon Aurora MySQL
Amazon Redshift
Amazon Redshift 2.1+
Amazon Redshift Serverless 2.1+
Apache Druid
Apache Druid 0.13+
Apache Druid 0.18+
Apache Hive 2.3+
Apache Hive 3.1.2+
Apache Spark 3+
ClickHouse
Cloudera Impala 3.1+
Cloudera Impala 3.1+ with Native Driver
Cloudera Impala with Native Driver
DataVirtuality
Databricks
Denodo 7
Denodo 8 & 9
Dremio
Dremio 11+
Exasol
Firebolt
Google BigQuery Legacy SQL
Google BigQuery Standard SQL
Google Cloud PostgreSQL
Google Cloud SQL
Google Spanner
Greenplum
HyperSQL
IBM Netezza
MariaDB
Microsoft Azure PostgreSQL
Microsoft Azure SQL Database
Microsoft Azure Synapse Analytics
Microsoft SQL Server 2008+
Microsoft SQL Server 2012+
Microsoft SQL Server 2016
Microsoft SQL Server 2017+
MongoBI
MySQL
MySQL 8.0.12+
Oracle
Oracle ADWC
PostgreSQL 9.5+
PostgreSQL pre-9.5
PrestoDB
PrestoSQL
SAP HANA
SAP HANA 2+
SingleStore
SingleStore 7+
Snowflake
Teradata
Trino
Vector
Vertica