数据库连接池

借助连接池,您可以在 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
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+
带有原生驱动程序的 Cloudera Impala
DataVirtuality
Databricks
Denodo 7 购物中心
Denodo 8
Dremio
Dremio 11+
Exasol
Firebolt
Google BigQuery 旧版 SQL
Google BigQuery 标准 SQL
Google Cloud PostgreSQL
Google Cloud SQL
Google Spanner
Greenplum
HyperSQL
IBM Netezza
MariaDB
Microsoft Azure PostgreSQL
Microsoft Azure SQL 数据库
Microsoft Azure Synapse 分析
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 9.5 之前的版本
PrestoDB
PrestoSQL
SAP HANA 2+
SingleStore
SingleStore 7+
Snowflake
TeraData
Trino
矢量
Vertica