将 Looker 连接到您的数据库

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

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

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

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

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

常规设置

名称

引用的连接的名称。您不应使用任何文件夹的名称。此值不需要与数据库中的任何内容匹配;它是一个标签,由您指定,用于在 Looker 界面中标识此连接。您需要此数据库连接名称,以便在 LookML 模型的 connection 参数中使用。数据库连接名称也是在 Looker 的连接管理页面上标识连接的方式。

连接范围

选择此连接是适用于所有项目,还是只能用于 1 个项目。

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

方言

与您的连接匹配的 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 除外,在这种连接中,database 一词的含义与大多数 SQL 方言略有不同)。

架构

未指定架构时 Looker 使用的默认架构。当您使用 SQL Runner、LookML 项目生成期间以及查询表时,都会如此。

Authentication

对于 Snowflake 和 Google BigQuery 连接,请选择您希望 Looker 用于访问数据库的身份验证类型:

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

使用 OAuth 时,用户需要登录您的数据库才能从 Looker 发出查询。如需了解配置 OAuth 的完整过程,请参阅 Google BigQuery 页面或 Snowflake 页面。

用户名

您的数据库上某个用户账号的用户名,Looker 可以使用该用户名连接到您的数据库。

密码

您的数据库中的用户账号的密码,Looker 可以使用该密码连接到数据库。

可选设置

SSH 服务器

仅当实例部署在 Kubernetes 基础架构中,且已启用向 Looker 实例添加 SSH 服务器配置信息的功能时,SSH 服务器选项才可用。如果您的 Looker 实例未启用此选项,但您想启用它,请与 Google Cloud 销售专家联系或提交支持请求

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

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

本地端口

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

永久性派生表 (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 权限。

临时数据库

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

每个连接都必须有自己的 Temp DatabaseSchema;它们不能在连接之间共享。

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_value数据组和持久保留表(包括汇总表永久性派生表)。根据这些检查,Looker 重新生成器从数据库的从头开始架构中重新构建或删除保留的表。

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

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

默认值(五分钟)也是数据组和 PDT 维护时间表支持的最频繁间隔。Looker 不对数据组和 PDT 维护时间表强制执行最大间隔,这意味着,只要可以通过 cron 表达式指定,您可以将两个 Looker 重新生成器周期之间的间隔时间延长。请注意,较长的 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 控制切换开关处于停用状态时,在此连接上引用 PDT 时,这些 API 调用将会失败。PDT API 控制切换开关默认处于停用状态。

PDT 覆盖

如果您的数据库支持永久性派生表,并且您已在连接设置中开启启用 PDT 切换开关,Looker 会显示 PDT 替换部分。在 PDT 覆盖部分,您可以输入专用于 PDT 进程的单独 JDBC 参数(主机、端口、数据库、用户名、密码、架构、其他参数及 connect 语句)。这么做的原因有很多:

  • 通过为 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 不在客户端的可信来源列表中时,可以建立连接。

费用估算值

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

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

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

SQL Runner 预缓存

在 SQL Runner 中,选择连接和架构后,系统会立即预加载所有表信息。这样,SQL Runner 只需点击表名称即可快速显示表列。但是,对于具有多个表或表非常大的连接和架构,您可能不希望 SQL Runner 预加载所有信息。

如果您希望 SQL Runner 仅在选择表时加载表信息,可以取消选择 SQL Runner 预缓存选项,以停用此连接的 SQL Runner 预加载。

提取信息架构以编写 SQL

对于某些 SQL 编写功能(例如聚合感知),Looker 会使用数据库的信息架构来优化 SQL 编写。如果信息架构未缓存,Looker 可能必须偶尔阻止 SQL 向数据库写入数据,才能提取信息架构。对于使用 Hadoop 分布式文件系统 (HDFS) 的方言,提取信息架构可能需要足够长的时间,可能会对 Looker 查询的性能产生显著影响。如果您知道自己的信息架构速度缓慢,则可以为连接停用 Fetch Information Schema For SQL Writing 选项。停用此功能后,您将无法针对某些功能进行某些 Looker SQL 优化,因此除非您知道连接的信息架构速度特别慢,否则应启用 Fetch Information Schema For SQL writing(提取信息架构以用于 SQL 编写)选项。

测试连接设置

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

  • 选择连接设置页面底部的测试按钮。
  • 按照连接管理员页面上的连接列表选择测试按钮,如连接文档页面中所述。

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

如果您的连接未通过一项或多项测试:

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

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

以用户身份进行测试

如果您已将一个或多个连接参数值设置为用户属性,则以用户身份测试选项将显示在测试按钮上方。选择一位用户,然后点击测试,以验证数据库是否可以以此用户身份连接并运行查询。

后续步骤

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