数据库连接池

借助连接池,您可以使用 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 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 11 及更高版本
Exasol
火箭
Google BigQuery 旧版 SQL
Google BigQuery 标准 SQL
Google Cloud PostgreSQL
Google Cloud SQL
Google Spanner
绿紫红
HyperSQL
IBM Netezza
MariaDB
Microsoft Azure PostgreSQL
Microsoft Azure SQL 数据库
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 9.5 版之前的版本
PrestoDB
PrestoSQL
SAP HANA 2 及更高版本
SingleStore
SingleStore 7 或更高版本
Snowflake
Teradata
Trino
矢量
Vertica