将 Looker 连接到您的数据库

保护配置数据库后,您就可以将数据库连接到 Looker 了。

管理面板的数据库部分选择连接。在连接页面上,点击添加连接按钮。Looker 会显示连接设置页面。

如需详细了解如何将用户属性应用于连接设置,请参阅用户属性文档页面的连接部分。

本页面介绍了 Looker 在连接设置页面上显示的常用字段。连接设置页面显示的具体字段取决于您的方言设置。

输入数据库连接设置后,您可以选择连接设置页面上的测试按钮,以测试连接并确保配置正确无误。点击测试,验证连接是否成功。如需了解问题排查信息,请参阅测试数据库连接文档页面。如果 Looker 显示可以连接,请按连接以创建连接。然后,您的数据库连接就会添加到 Looker 连接管理页面上的列表中。

常规设置

名称

要引用的连接的名称。您需要在 LookML 模型的 connection 参数中使用此数据库连接名称。数据库连接名称也是在 Looker 的连接 管理页面上标识连接的方式。不要在此设置中使用任何文件夹的名称。此值不需要与您数据库中的任何内容匹配;Name 是在 Looker 界面中标识此连接的标签。

连接范围

选择连接是应该用于所有项目,还是仅可用于一个项目。

使用此选项以及以下权限来委托连接管理和模型配置:

方言

与您的连接匹配的 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 BigQuerySnowflakeTrinoDatabricks 连接,请选择您希望 Looker 用于访问数据库的身份验证类型:

  • 对于 Google BigQuery 连接,您可以选择配置 OAuth 或服务帐号,供 Looker 用于向您的数据库进行身份验证。
  • 对于 Snowflake、Trno 和 Databricks 连接,您可以选择配置 OAuth 或数据库账号,以供 Looker 用于对您的数据库进行身份验证。

使用 OAuth 时,用户必须登录您的数据库才能从 Looker 发出查询。如需详细了解如何在与 Looker 的连接上配置 OAuth,请参阅 Google BigQuerySnowflakeTrinoDatabricks 连接过程。

用户名

您数据库的用户账号中的用户名,Looker 可用于连接到您的数据库。

密码

您数据库的用户账号的密码,Looker 可用于连接到数据库。

可选设置

SSH 服务器

只有在实例部署在 Kubernetes 基础架构上,并且启用了将 SSH 服务器配置信息添加到 Looker 实例的功能时,SSH 服务器选项才可用。如果您的 Looker 实例上未启用此选项,但您希望启用它,请与 Google Cloud 销售专员联系或提交支持请求

SSH 服务器会自动为您选择本地主机端口,但您无法指定本地主机端口。如果您需要创建需要指定 localhost 端口的 SSH 连接,请创建支持请求

如需使用 SSH 隧道连接到您的数据库,请开启切换开关,然后从下拉列表中选择 SSH 服务器配置

本地端口

默认情况下,Looker 会自动为 SSH 隧道选择可用的本地端口。要手动选择本地端口,请选择手动输入,然后在自定义本地端口字段中输入端口号。确保本地端口在您的实例上可用。

永久性派生表 (PDT)

启用 PDT

开启启用 PDT 切换开关,以启用永久性派生表。启用 PDT 后,Connection 窗口会显示其他 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

临时数据库

虽然标有 Temp Database,但您可以根据自己的 SQL 方言输入数据库名称或架构名称,Looker 应使用它们来创建永久性派生表。您应该提前配置此数据库或架构,并使用适当的写入权限。在数据库配置说明文档页面上,选择您的数据库方言即可查看该方言的说明。

每个连接都必须有自己的临时数据库架构;它们不能跨连接共享。

PDT 构建器连接数上限

通过 PDT 构建器连接数上限设置,您可以指定 Looker 重新生成器可以在数据库连接上启动的并发表构建数量。PDT 构建器连接数上限设置仅适用于 Looker 重新生成器为其启动重建的表类型:

  • 触发器保留型表(使用 datagroup_triggersql_trigger_value 持久保留策略的永久性派生表汇总表)。
  • 使用 persist_for 策略的保留表,但前提是 persist_for 表是派生表级联的一部分;在这种情况下,使用 datagroup_triggersql_trigger_value 保留策略的表会依赖该表。在这种情况下,Looker 重新生成器将重新构建一个 persist_for 表,因为在级联中重建另一个表时需要用到该表。否则,重新生成器不会启动针对 persist_for 表的构建。

PDT 构建器连接数上限设置默认为 1,但可以设置为 10。但是,此值不能高于每个节点的最大连接数字段中设置的值,也不得高于 Looker 的启动选项中设置的 per-user-query-limit 的值。

请谨慎设置此值。如果该值过高,您的数据库可能会超负荷运行。如果该值很小,则长时间运行的 PDT 或汇总表可能会延迟其他永久表的创建,或降低连接上其他查询的速度。支持多租户的数据库(例如 BigQuery、Snowflake 和 Redshift)在处理并行查询构建方面可能效果更好。

如果要增加 PDT 构建器连接数上限设置,较好的做法是以 1 为增量增加此值。如果出现任何意外行为,请将其重新设为默认值 1。否则,如果查询性能不受影响,您可以继续将它以 1 为增量递增,并在每次递增时验证性能,然后再进一步提高该设置。

对于 PDT 构建器连接数上限设置,请注意以下事项:

  • PDT 构建器连接数上限设置仅适用于重建表所需的连接,而不适用于触发器检查所需的连接。触发器检查是一个查询,用于检查是否触发了表的持久化策略;由于这些触发器检查查询始终按顺序运行,因此 PDT 构建器连接数上限设置不适用。
  • 集群 Looker 实例中,重新生成器仅在主节点上运行。PDT 构建器连接数上限设置仅适用于主节点,因此会设置针对整个集群的限制。
  • PDT 构建器连接数上限设置不适用于以下类型的表。以下类型的表是连续构建的:
    • 通过 persist_for 参数保留的表(除非表依赖于使用 datagroup_triggersql_trigger_value 策略的表)。
    • 开发模式下的表
    • 使用重新构建派生表并运行选项重新构建的表。
    • 一个依赖于另一个依赖项级联的表。表无法与其所依赖的表同时构建。例如,如果 table_B 依赖于 table_A,则 table_A 必须在 table_B 开始重建之前完成重新构建。

数据组和 PDT 维护时间表

Looker 重新生成器会检查基于 sql_trigger_valuedatagroups 和保留的表(包括汇总表永久性派生表)。根据这些检查,Looker 重新生成器会从数据库的临时架构中重新构建或删除持久表。

数据组和 PDT 维护时间表值用于设置 Looker 重新生成器的 cron 间隔。Looker 重新生成器会启动再生成器循环,以按 cron 间隔检查数据组和持久化表。如果 Looker 再生成器周期在下一个 cron 间隔期间仍在进行中,则 Looker 再生成器将完成正在进行的再生成器周期,然后等到下一个 cron 间隔后再开始下一个再生成器周期。

数据组和 PDT 维护时间表设置接受 cron 表达式。默认值为 */5 * * * *,这表示如果上一个再生成器周期已完成,Looker 再生成器周期将以五分钟为间隔启动一个周期。如果之前的再生成器周期尚未完成,Looker 再生成器将在周期结束后的下一个五分钟间隔内启动。

默认的五分钟也是 Datagroup 和 PDT 维护时间表支持的最频繁间隔。Looker 不对 Datagroup 和 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 字符串的资源:

重试失败的 PDT 构建

重试失败的 PDT 构建切换开关可配置 Looker 重新生成器如何尝试重新构建在上一个重新生成器周期中失败的触发器保留的表。Looker 重新生成器过程会根据数据组和 PDT 维护时间表连接设置中配置的时间间隔,重建触发器保留表(PDT 和汇总表)。启用重试失败的 PDT 构建切换开关后,Looker 重新生成器将尝试重新构建在上一个重新生成器周期中失败的 PDT,即使不符合 PDT 的触发条件也是如此。如果停用此设置,只有在满足 PDT 的触发条件时,Looker 重新生成器才会尝试重新构建之前失败的 PDT。重试失败的 PDT 构建默认处于停用状态。

如需详细了解 Looker 再生成器,请参阅 Looker 中的派生表文档页面。

PDT API 控制

PDT API 控制切换开关决定了 start_pdt_buildcheck_pdt_buildstop_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 创建和更新访问权限级别。

“连接设置”页面的“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 编写选项,除非您知道连接的信息架构速度特别慢。

费用估算值

费用估算切换开关仅适用于以下数据库连接:

费用估算切换开关可在连接上启用以下功能:

如需了解详情,请参阅在 Looker 中探索数据文档页面。

数据库连接池

对于支持数据库连接池的方言,此功能允许 Looker 通过 JDBC 驱动程序使用连接池。数据库连接池可实现更快的查询性能;新查询不需要创建新的数据库连接,而是可以使用连接池中的现有连接。连接池功能可确保在查询执行后清理连接,并且可在查询执行结束后重复使用。如需了解详情,请参阅数据库连接池文档页面。

测试您的连接设置

您可以在 Looker 界面中的几个位置测试连接设置:

  • 选择 Connections Settings 页面底部的 Test 按钮。
  • 连接管理页面上的连接列表旁,选择测试按钮,如连接文档页面中所述。

输入连接设置后,点击测试,以验证信息是否正确以及数据库是否能够连接。

如果您的连接未通过一项或多项测试,可以使用下面这些问题排查方法:

  • 尝试测试数据库连接文档页面上的一些问题排查步骤。
  • 如果您在 Atlas 上运行 Mongo 3.6 或更低版本,并且收到通信链接失败,请参阅 Mongo 连接器文档页面。
  • 如需接收有关临时架构和 PDT 的成功连接消息,您必须在设置 Looker 数据库时允许该功能。有关执行此操作的说明,请参阅数据库配置说明文档页面。

如果您仍遇到问题,请与 Looker 支持团队联系以获取帮助。

以用户身份进行测试

如果您已将一个或多个连接参数值设置为某个用户属性,则会显示以用户身份进行测试选项。选择用户,然后点击测试,验证数据库能否以此用户的身份连接和运行查询。

后续步骤

将数据库连接到 Looker 后,您就可以为用户配置登录选项了。