保护并配置好数据库后,您就可以将数据库连接到 Looker 了。
您可以在将数据库连接到 Looker 页面上,在 Looker 中创建数据库连接。您可以通过以下两种方式打开将数据库连接到 Looker 页面:
- 在管理面板的数据库部分中,选择关联。在连接页面上,点击添加连接按钮。
- 点击左侧导航面板中的创建按钮,然后选择连接菜单项。
如需详细了解如何将用户属性应用于连接设置,请参阅用户属性文档页面的连接部分。
本页面介绍了 Looker 在将您的数据库连接到 Looker 页面上显示的常用字段。页面显示的具体字段取决于您的方言设置。
点击此处可查看 Looker 文档中特定于方言的说明链接。
- Actian Avalanche
- AlloyDB for PostgreSQL
- Amazon Aurora PostgreSQL
- Amazon Athena
- Amazon Aurora MySQL
- Amazon RDS for MySQL
- Amazon RDS for PostgreSQL
- Amazon Redshift
- Apache Druid
- Apache Hive 2.3+ 和 3.1.2+
- Apache Spark 3+
- ClickHouse
- Cloudera Impala 3.1 及更高版本
- Databricks
- DataVirtuality
- Denodo
- Dremio
- Exasol
- Firebolt
- Google BigQuery 旧版 SQL
- Google BigQuery 标准 SQL
- Google Cloud SQL for MySQL
- Google Cloud SQL for PostgreSQL
- Google Spanner
- Greenplum
- AS400 上的 IBM DB2
- LUW 上的 IBM DB2
- MariaDB
- Microsoft Azure Synapse Analytics
- Microsoft Azure SQL 数据库
- Microsoft Azure PostgreSQL
- Microsoft SQL Server (MSSQL)
- 适用于 BI 的 MongoDB 连接器
- MySQL
- Oracle
- Oracle ADWC
- PostgreSQL
- PrestoDB
- SAP HANA
- SingleStore(以前称为 MemSQL)
- Snowflake
- TeraData
- Trino
- 矢量
- Vertica
输入数据库连接设置后,您可以选择将数据库连接到 Looker 页面上的测试按钮,以测试连接并确保其配置正确无误。点击 Test 验证连接是否成功。如需了解问题排查信息,请参阅测试数据库连接文档页面。如果 Looker 显示可以连接,请按连接以创建连接。然后,您的数据库连接会添加到 Looker 连接管理页面上的列表中。
常规设置
名称
要引用的连接的名称。您需要将此数据库连接名称用于 LookML 模型的 connection
参数。数据库连接名称也是在 Looker 的连接 管理页面上标识连接的方式。不要在此设置中使用任何文件夹的名称。此值无需与数据库中的任何内容匹配;Name
是用于在 Looker 界面中标识此连接的标签。
连接范围
选择该关联是否应可用于所有项目,还是仅适用于一个项目:
- 所有项目:实例上的所有 LookML 项目都可以访问该连接,因此可以在该项目中模型文件的
connection
参数中指定连接名称。 - 所选项目:实例上只有一个 LookML 项目可以访问该连接。选择此选项后,“连接”屏幕会显示实例中项目的下拉菜单。选择可以访问此连接的项目。
使用此选项和以下权限可委托连接管理和模型配置:
方言
与您的连接匹配的 SQL 方言。请务必选择正确的值,以便系统为您提供正确的连接选项,以便 Looker 将您的 LookML 正确转换为 SQL。
结算项目 ID
仅适用于 Google BigQuery 关联:结算项目 ID 是 Google Cloud 项目 ID。
主机
Looker 应该用于连接到数据库主机的数据库主机名。
如果您已与 Looker 分析师合作为数据库配置 SSH 隧道,请在主机字段中输入 "localhost"
。
端口
Looker 应该用于连接到数据库主机的数据库端口。
如果您与 Looker 分析师合作配置连接到数据库的 SSH 隧道,请在端口字段中输入重定向到您的数据库的端口号,该端口号应由 Looker 分析师提供。
数据库
主机上数据库的名称。例如,您可以有一个主机名为 my-instance.us-east-1.redshift.amazonaws.com
的数据库,其中包含一个名为 sales_info
的数据库。您应在此字段中输入 sales_info
。如果同一主机上有多个数据库,则可能需要创建多个连接才能使用这些数据库(MySQL 除外,其中的“数据库”一词的含义与大多数 SQL 方言含义略有不同)。
架构
在未指定架构时,Looker 使用的默认架构。这适用于使用 SQL Runner 时、LookML 项目生成期间以及查询表时。
身份验证
对于 Google BigQuery、Snowflake、Trino 和 Databricks 连接,请选择您希望 Looker 用于访问数据库的身份验证类型:
- 对于 Google BigQuery 连接,您可以选择配置 OAuth 或服务账号,供 Looker 用于对您的数据库进行身份验证。
- 对于 Snowflake、Trno 和 Databricks 连接,您可以选择配置 OAuth 或数据库账号,以供 Looker 用于对您的数据库进行身份验证。
使用 OAuth 时,用户必须登录您的数据库才能从 Looker 发出查询。如需详细了解如何在与 Looker 的连接上配置 OAuth,请参阅 Google BigQuery、Snowflake、Trino 或 Databricks 连接过程。
用户名
数据库中用户账号的用户名,Looker 可以使用该用户名连接到您的数据库。
密码
您数据库的用户账号的密码,Looker 可用于连接到数据库。
可选设置
SSH 服务器
只有在实例部署在 Kubernetes 基础架构上且已启用向 Looker 实例添加 SSH 服务器配置信息的功能时,SSH 服务器选项才可用。如果您的 Looker 实例未启用此选项,但您想启用它,请与 Google Cloud 销售专员联系或提交支持请求。
SSH 服务器会自动为您选择本地主机端口,但您无法指定本地主机端口。如果您需要创建需要指定 localhost 端口的 SSH 连接,请创建支持请求。
要使用 SSH 隧道连接到您的数据库,请开启切换开关,然后从下拉列表中选择 SSH 服务器配置。
本地端口
默认情况下,Looker 会自动为 SSH 隧道选择可用的本地端口。要手动选择本地端口,请选择手动输入,然后在自定义本地端口字段中输入端口号。确保您的实例上有可用的本地端口。
永久性派生表 (PDT)
启用 PDT
开启启用 PDT 切换开关,以启用永久性派生表。启用 PDT 后,连接窗口会显示其他 PDT 字段和 PDT 替换项部分。仅当数据库方言支持使用 PDT 时,Looker 才会显示启用 PDT 切换开关。
请注意以下关于 PDT 的事项:
- 使用 OAuth 的 Snowflake 连接不支持 PDT。
- 在连接上停用 PDT 不会停用与您的 PDT 关联的数据组。即使您停用了 PDT,现有数据集仍会针对数据库运行
sql_trigger
查询。如果您想阻止数据集群对数据库运行sql_trigger
查询,则必须从 LookML 项目中删除或注释掉datagroup
参数,或者您可以更新连接的数据集群和 PDT 维护时间表设置,以便 Looker 很少或从不检查 PDT 和数据集群。 - 对于 Snowflake 连接,Looker 会将
AUTOCOMMIT
参数的值设置为TRUE
(Snowflake 的默认值)。Looker 运行的用于维护其 PDT 注册系统的 SQL 命令需要AUTOCOMMIT
。
临时数据库
虽然此数据库标记为临时数据库,但您应根据自己的 SQL 方言输入数据库名称或架构名称,Looker 应使用该名称来创建永久性派生表。您应该提前配置此数据库或架构,并使用适当的写入权限。在数据库配置说明文档页面上,选择您的数据库方言以查看该方言的说明。
每个连接都必须有自己的临时数据库或架构;这些数据库或架构无法在连接之间共享。
PDT 构建器连接数上限
借助 PDT 构建器连接数上限设置,您可以指定 Looker 重新生成器可以在数据库连接上启动的并发表构建数量。PDT 构建器连接数上限设置仅适用于 Looker 重新生成器为其启动重建的表类型:
- 触发器保留型表(使用
datagroup_trigger
或sql_trigger_value
持久保留策略的永久性派生表和汇总表)。 - 使用
persist_for
策略的持久化表,但仅当persist_for
表属于派生表的级联且使用datagroup_trigger
或sql_trigger_value
持久化策略的表依赖于该表时才会这样。在这种情况下,Looker 重新生成器将重新构建一个persist_for
表,因为在级联中重建另一个表时需要用到该表。否则,重新生成器不会启动针对persist_for
表的构建。
PDT 构建器连接数上限设置默认为 1,但可以设置为 10。不过,此值不能高于“每节点的最大连接数”字段或 Looker 启动选项中设置的 per-user-query-limit
的值。
请谨慎设置此值。如果该值过高,可能会导致数据库过载。如果该值较小,则长时间运行的 PDT 或汇总表可能会延迟其他永久性表的创建,或降低连接上其他查询的速度。支持多租户的数据库(例如 BigQuery、Snowflake 和 Redshift)在处理并发查询 build 时可能具有更高的性能。
如果您想提高 PDT 构建器连接数上限设置,一个很好的经验法则是按 1 的增量进行提高。如果发生任何意外行为,请将其设回默认值 1。否则,如果查询性能不受影响,您可以继续将它以 1 为增量递增,并在每次递增时验证性能,然后再进一步提高该设置。
对于 PDT 构建器连接数上限设置,请注意以下事项:
- PDT 构建器连接数上限设置仅适用于表重建所需的连接,而不适用于触发器检查所需的连接。触发器检查是一种用于检查表的持久化策略是否已触发的查询;由于这些触发器检查查询始终按顺序运行,因此PDT 构建器连接的最大数量设置不适用。
- 在集群 Looker 实例中,重新生成器仅在主节点上运行。PDT 构建器连接数上限设置仅适用于主节点,因此会为整个集群设置限制。
- PDT 构建器连接数上限设置不适用于以下类型的表。这些类型的表会依次构建:
- 通过
persist_for
参数保留的表(除非表依赖于使用datagroup_trigger
或sql_trigger_value
策略的表)。 - 开发模式下的表。
- 使用重新构建派生表并运行选项重新构建的表。
- 一个依赖于另一个依赖项级联的表。表无法与其依赖的表同时构建。例如,如果
table_B
依赖于table_A
,则table_A
必须在table_B
开始重建之前完成重新构建。
- 通过
数据组和 PDT 维护时间表
Looker 重新生成器会检查基于 sql_trigger_value
的 数据组和保留型表(包括汇总表和永久性派生表)。根据这些检查,Looker 重新生成器会从数据库的从零开始架构中重新构建或删除永久性表。
数据组和 PDT 维护时间表值用于设置 Looker 重新生成器的 cron
间隔。Looker 重新生成器会启动重新生成器周期,以便在 cron
间隔时间内检查数据集和永久性表。如果在下一个 cron
间隔时刻,Looker 再生器周期仍在进行中,Looker 再生器将完成正在进行的再生器周期,然后等到下一个 cron
间隔时刻开始下一个再生器周期。
数据组和 PDT 维护时间表设置接受 cron
表达式。默认值为 */5 * * * *
,这表示如果之前的再生成器周期已完成,Looker 再生成器周期将以五分钟为间隔启动一个周期。如果之前的再生成器周期尚未完成,Looker 再生成器将在周期结束后的下一个五分钟间隔内启动。
默认的五分钟也是数据组和 PDT 维护时间表支持的最短间隔。Looker 不会强制执行数据组和 PDT 维护时间表的最大间隔时间,这意味着您可以延长 Looker 再生器周期之间的间隔时间,只要该时间可以由 cron
表达式指定即可。请注意,较长的 Looker 重新生成器周期可能会对缓存和持久化表中数据的新鲜度产生不利影响。
Looker 再生器在一个周期内完成所有检查和 PDT 重新构建后,会等待下一个 cron
间隔时间来启动下一个周期。如果您有长时间运行的 PDT build,则 Looker 再生器周期之间可能会有很长的时间间隔。其他因素可能会影响重新构建表所需的时间,如Looker 中的派生表页面上的实现持久表的重要注意事项部分所述。
如果您的数据库不是全天候运行,您可能希望将检查限制为在数据库运行期间进行。下面是一些其他 cron
表达式:
cron 个表达式 |
定义 |
---|---|
*/5 8-17 * * MON-FRI |
在周一至周五的营业时间内,每 5 分钟检查一次数据群组和 PDT |
*/5 8-17 * * * |
在每天工作时间,每 5 分钟检查一次数据组和 PDT |
0 8-17 * * MON-FRI |
在周一至周五的工作时间,每小时检查一次数据组和 PDT |
1 3 * * * |
每天凌晨 3:01 查看数据组和 PDT |
创建 cron
表达式时,需要注意以下事项:
- Looker 使用 parse-cron v0.1.3,它不支持
cron
表达式中的?
。 cron
表达式使用 Looker 应用时区来确定执行检查的时间。- 如果未构建 PDT,请将 cron 字符串重置为默认的
*/5 * * * *
。
以下是一些有助于创建 cron
字符串的资源:
- https://crontab.guru - 有助于编辑和测试
cron
字符串。 - http://www.crontab-generator.org - 选择时间设置,生成器便会创建相应的
cron
字符串。
重试失败的 PDT 构建
重试失败的 PDT 构建切换开关用于配置 Looker 重新生成器尝试重新构建在上一个重新生成器周期中失败的触发器持久化表的方式。Looker 重新生成器过程会根据数据组和 PDT 维护时间表连接设置中配置的时间间隔,重建触发器保留表(PDT 和汇总表)。启用重试失败的 PDT 构建切换开关后,Looker 重新生成器将尝试重新构建在上一个重新生成器周期中失败的 PDT,即使不符合 PDT 的触发条件也是如此。停用此设置后,只有在满足 PDT 的触发条件时,Looker 再生器才会尝试重新构建之前失败的 PDT。重试失败的 PDT 构建默认处于停用状态。
如需详细了解 Looker 再生器,请参阅 Looker 中的派生表文档页面。
PDT API 控制
PDT API 控制切换开关决定了 start_pdt_build
、check_pdt_build
和 stop_pdt_build
API 调用是否可以用于此连接。停用 PDT API 控制切换开关后,当这些 API 调用引用此连接上的 PDT 时,将会失败。PDT API 控制切换开关默认处于停用状态。
PDT 覆盖
如果您的数据库支持永久性派生表,并且您已在连接设置中开启了启用 PDT 切换开关,则 Looker 会显示 PDT 替换部分。在 PDT 替换部分,您可以输入特定于 PDT 进程的单独 JDBC 参数(主机、端口、数据库、用户名、密码、架构、其他参数以及连接语句之后)。这有以下几个方面的好处:
- 通过为 PDT 流程创建单独的数据库用户,即使您为数据库登录凭据分配用户属性或使用 OAuth 进行数据库连接,也可以在 Looker 项目中使用 PDT。
- PDT 进程可以通过具有更高优先级的单独数据库用户进行身份验证。这样,数据库就可以优先处理 PDT 作业,而不是不太重要的用户查询。
- 可以撤消标准 Looker 数据库连接的写入权限,并且只能授予 PDT 流程将用于身份验证的特殊用户。对于大多数组织来说,这是一种更好的安全策略。
- 对于 Snowflake 等数据库,PDT 进程可以路由到不与其他 Looker 用户共享的更强大的硬件。这样,PDT 可以快速构建,而不会产生全职运行昂贵硬件的成本。
例如,以下配置显示了一个连接,其中用户名和密码字段设置为用户属性。这样,每个用户都可以使用各自的凭据访问数据库。PDT 覆盖部分会创建一个使用自己的密码的单独用户 (pdt_user
)。pdt_user
账号将用于所有 PDT 流程,并且具有适合创建和更新 PDT 的访问权限级别。
时区
数据库时区
您的数据库用来存储时间信息的时区。Looker 需要知道这一点,才能为用户转换时间值,从而更轻松地理解和使用基于时间的数据。如需了解详情,请参阅使用时区设置文档页面。
查询时区
只有在停用用户特定时区后,查询时区选项才会显示。
停用用户自选时区后,查询时区是指用户查询基于时间的数据时系统向其显示的时区,也是 Looker 将基于时间的数据从数据库时区转换为的时区。
如需了解详情,请参阅使用时区设置文档页面。
其他设置
其他 JDBC 参数
如果需要,您可以在此处为查询添加其他 Java 数据库连接 (JDBC) 参数。
如需在 JDBC 参数中引用用户属性,请使用液体模板语法:_user_attributes['name_of_attribute']
。例如:
my_jdbc_param={{ _user_attributes['name_of_attribute'] }}
每个节点的连接数上限
您可以在此处设置 Looker 能够与您的数据库建立的连接数上限。在大多数情况下,您需要设置 Looker 可以同时对您的数据库运行的查询数量。Looker 还保留最多三个连接来终止查询。如果连接池非常小,Looker 会预留的连接较少。
请谨慎设置此值。如果该值过高,可能会导致数据库过载。如果此值过低,则查询必须共享少量连接。因此,许多查询可能看起来速度缓慢,因为这些查询必须等待其他较早的查询返回。
使用默认值(具体取决于您的 SQL 方言)通常是一个合理的起点。大多数数据库还具有自己的设置,用于控制其接受的连接数量上限。如果您的数据库配置限制了连接数,请确保每个节点的连接数上限值等于或低于数据库的上限。
连接池超时时间
如果用户请求的连接数超出 每个节点的连接数上限设置,这些请求将等待其他请求完成后才能执行。您可在此处配置请求等待的最长时间。默认设置为 120 秒。
您应谨慎设置此值。如果过低,用户可能会发现其查询被取消,因为系统没有足够的时间来完成其他用户的查询。如果过高,可能会积累大量查询,导致用户等待很长时间。通常,默认值是一个合理的起点。
SSL
选择是否要使用 SSL 加密来保护 Looker 和数据库之间传递的数据。SSL 只是可用于保护数据的选项之一;启用安全的数据库访问文档页面介绍了其他安全选项。
验证 SSL
选择是否要求对连接所使用的 SSL 证书进行验证。如果需要进行验证,签署 SSL 证书的 SSL 证书授权机构 (CA) 必须来自客户端的可信来源列表。如果 CA 不是可信来源,则不会建立数据库连接。
如果未选中此框,连接仍会使用 SSL 加密,但无需验证 SSL 连接,因此当 CA 不在客户端的可信来源列表中时,可以建立连接。
SQL Runner 预缓存
在 SQL Runner 中,您选择连接和架构后,系统会立即预加载所有表信息。这样,在您点击表名称后,SQL Runner 就可以快速显示表列。不过,对于包含许多表或包含非常大表的关联和架构,您可能不希望 SQL Runner 预加载所有信息。
如果您希望 SQL Runner 仅在选择某个表时加载表信息,则可以取消选择 SQL Runner 预缓存选项,以停用该连接的 SQL Runner 预加载功能。
为编写 SQL 提取信息架构
对于某些 SQL 编写功能(例如汇总感知),Looker 会使用数据库的信息架构来优化 SQL 编写。如果未缓存信息架构,Looker 可能需要不时阻止向数据库写入 SQL,以便提取信息架构。对于使用 Hadoop 分布式文件系统 (HDFS) 的方言,提取信息架构可能需要很长时间,这会严重影响 Looker 查询的性能。如果您知道信息架构运行缓慢,则可以为连接停用提取用于 SQL 编写的信息架构选项。停用此功能会导致系统无法对某些功能进行 Looker SQL 优化,因此您应该启用提取信息架构以进行 SQL 写入选项,除非您知道连接的信息架构速度特别慢。
费用估算值
费用估算切换开关仅适用于以下数据库连接:
- Snowflake
- Amazon Redshift
- Amazon Aurora
- PostgreSQL、Google Cloud SQL for PostgreSQL 和 Microsoft Azure PostgreSQL
费用估算切换开关可在连接上启用以下功能:
如需了解详情,请参阅在 Looker 中探索数据文档页面。
数据库连接池
对于支持数据库连接池的方言,此功能可让 Looker 通过 JDBC 驱动程序使用连接池。数据库连接池可提高查询性能;新查询无需创建新的数据库连接,而是可以使用连接池中的现有连接。连接池功能可确保在查询执行后清理连接,并在查询执行结束后可供重复使用。如需了解详情,请参阅数据库连接池文档页面。
测试您的连接设置
您可以在 Looker 界面的多个位置测试连接设置:
- 选择连接设置页面底部的测试按钮。
- 在连接管理页面上的连接列表旁,选择测试按钮,如连接文档页面中所述。
输入连接设置后,点击测试以验证信息是否正确,以及数据库是否能够连接。
如果您的连接未通过一项或多项测试,可以使用下面这些问题排查方法:
- 尝试测试数据库连接文档页面上的一些问题排查步骤。
- 如果您在 Atlas 上运行 Mongo 3.6 或更低版本,并且收到通信链接失败,请参阅 Mongo 连接器文档页面。
- 如需接收有关临时架构和 PDT 的成功连接消息,您必须在设置 Looker 数据库时允许该功能。如需了解如何执行此操作,请参阅数据库配置说明文档页面。
如果您仍然遇到问题,请与 Looker 支持团队联系以寻求帮助。
以用户身份进行测试
如果您已将一个或多个连接参数值设置为用户属性,则系统会显示以用户身份测试选项。选择用户,然后点击测试,验证数据库能否以此用户的身份连接和运行查询。
后续步骤
将数据库连接到 Looker 后,您就可以为用户配置登录选项了。