数据库连接池

借助连接池,您可以在 PostgreSQLSnowflake 数据库方言中使用预配置的连接池。

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

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

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

使用连接池时,请考虑以下事项:

  • 如果用户属性值相同,则多位用户共用一个连接池。如果用户的用户属性组具有唯一值或不同值,则用户在连接到数据库时将使用唯一连接池。

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

  • 如果向连接池发出的并发查询数量超过连接数上限,则查询会在 Looker 中排队,直到先前的查询执行完毕。

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

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

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

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

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

方言 是否支持?
阿克蒂安雪崩
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
迪诺多 7
迪诺多 8 号星
德雷米奥
Dremio 11+
Exasol
火箭
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