概览
本页介绍了如何在 Looker 中设置与 Google BigQuery 标准 SQL 或 Google BigQuery 旧版 SQL 的连接。
设置 Google BigQuery 标准 SQL 或 Google BigQuery 旧版 SQL 连接的一般步骤如下:
在 BigQuery 数据库中,配置 Looker 将用于访问 BigQuery 数据库的身份验证。Looker 支持以下 BigQuery 身份验证选项:
- 服务账号:如需了解相关信息,请参阅本页面的使用 BigQuery 服务账号进行身份验证部分。
- OAuth:如需了解相关信息,请参阅本页上的使用 OAuth 进行身份验证部分。
在 BigQuery 数据库中,如果您想在连接上使用持久性派生表 (PDT),请创建一个临时数据集,供 Looker 用于在数据库中创建 PDT。如需了解相关步骤,请参阅本页面上的为持久性派生表创建临时数据集部分。
在 Looker 中,设置 Looker 与 BigQuery 数据库的连接。如需了解相关步骤,请参阅本页面的将 Looker 连接到 BigQuery 部分。
在 Looker 中,测试 Looker 与 BigQuery 数据库之间的连接。如需了解相关步骤,请参阅本页上的测试连接部分。
加密网络流量
最佳做法是对 Looker 应用与数据库之间的网络流量进行加密。考虑使用启用安全的数据库访问文档页面上介绍的某个选项。
使用 BigQuery 服务账号进行身份验证
Looker 可以通过 BigQuery 服务账号对您的 BigQuery 数据库进行身份验证。您可以使用 Google Cloud 控制台中的 API 管理器在 BigQuery 数据库中创建服务账号。您必须拥有 Google Cloud 管理员权限才能创建服务账号。请参阅有关创建服务账号的文档。
创建服务账号并下载 JSON 凭据证书
如需创建 BigQuery 服务账号,请按照以下步骤操作:
在 Google Cloud 控制台的 API 管理器中打开“凭据”页面,然后选择您的项目。
选择创建凭据,然后选择服务账号。
输入新服务账号的名称,添加说明(可选),然后选择创建并继续。
您的服务账号需要两个 Google BigQuery 预定义角色:
- BigQuery > BigQuery Data Editor
- BigQuery > BigQuery Job User
在选择角色字段中选择第一个角色,然后选择添加其他角色,再选择第二个角色。
选择这两个角色后,依次选择继续和完成。
在凭据页面中,选择您的新服务账号:
依次选择密钥和添加密钥,然后在下拉菜单中选择创建新密钥:
在密钥类型下选择 JSON,然后选择创建:
JSON 密钥将保存到您的计算机上。
记下下载位置后,选择关闭:
选择完成。
查找与服务账号对应的电子邮件地址。您需要此地址来配置 Looker 与 BigQuery 的连接:
在 BigQuery 数据库中创建服务账号后,您可以在设置 Looker 与 BigQuery 的连接时,在 Looker 的连接窗口的服务账号电子邮件地址、服务账号 JSON/P12 文件和密码字段中输入此服务账号信息和证书文件详细信息。
使用 OAuth 进行身份验证
Looker 支持 Google BigQuery 连接的 OAuth,这意味着每位 Looker 用户都需使用自己的 Google OAuth 凭据向 Google 进行身份验证,并授权 Looker 访问数据库。
借助 OAuth,数据库管理员可以执行以下功能:
- 审核哪些 Looker 用户正在针对数据库运行查询。
- 使用 Google 权限强制执行基于角色的访问权限控制。
- 使用 OAuth 令牌来处理所有访问 Google BigQuery 的流程和操作,而不是在多个位置嵌入 BigQuery ID 和密码。
对于通过 OAuth 进行的 BigQuery 连接,请注意以下事项:
- 如果数据库管理员更改 BigQuery OAuth 客户端凭据,用户拥有的任何时间表或提醒都会受到影响。如果管理员更改了 BigQuery OAuth 凭据,用户必须重新登录。用户还可以从 用户个人资料账号页面前往 Looker 账号页面,以便登录 Google。
- 由于使用 OAuth 的 BigQuery 连接是“按用户”的,因此缓存政策也是按用户而非仅按查询。这意味着,Looker 不会在缓存期内每次运行同一查询时都使用缓存的结果,而只会在缓存期内同一用户运行同一查询时使用缓存的结果。如需详细了解缓存,请参阅缓存查询文档页面。
- 如果您想在采用 OAuth 的 BigQuery 连接中使用持久性派生表 (PDT),则必须为 Looker 创建一个额外的服务账号,以便 Looker 访问您的数据库以进行 PDT 处理。如需了解相关信息,请参阅本页上的基于 BigQuery 连接的持久性派生表部分。
- 管理员在以其他用户身份执行 sudo 命令时,将使用该用户的 OAuth 授权令牌。如需了解如何使用
sudo
命令,请参阅用户文档页面。
为 OAuth 配置 BigQuery 数据库项目
以下部分介绍了如何生成 OAuth 凭据以及如何配置 OAuth 同意屏幕。
在以下情况下,您无需执行这些程序:
- 如果您已为项目中的其他应用配置了 OAuth 同意屏幕,则无需再创建另一个,因为一个项目中的所有应用只需配置一个同意屏幕。在这种情况下,您可以直接跳到配置 Looker (Google Cloud Core) 与数据库的连接的步骤。
如果您使用的是 Looker (Google Cloud Core) 实例,Looker 可以使用 Looker 管理员在创建 Looker (Google Cloud Core) 实例时使用的 OAuth 应用凭据。如果您使用的 OAuth 应用凭据与 Looker (Google Cloud Core) 实例相同,则可以跳过本部分和使用 OAuth 为 BigQuery 配置 Looker 连接部分中的步骤,改为按照Looker (Google Cloud Core) 文档中有关将 OAuth 与 BigQuery 搭配使用的说明操作。
必须在 Google Cloud 控制台中配置 OAuth 凭据和 OAuth 权限请求页面。Google 通用说明位于 Google Cloud 支持网站和 Google Dev 控制台网站上。
根据在 Looker 中访问 BigQuery 数据的用户类型以及 BigQuery 数据是公开还是私密,OAuth 可能不是最合适的身份验证方法。同样,当用户登录 Google 以使用 Looker 时,向用户请求的数据类型以及访问用户数据所需的访问权限级别可能需要经过 Google 验证。如需详细了解验证,请参阅本页面上的生成 Google OAuth 凭据部分。
生成 Google OAuth 凭据
前往 Google Cloud 控制台。
在选择项目下拉菜单中,找到您的 BigQuery 项目。系统应会将您转到项目信息中心。
在左侧菜单中,选择 API 和服务页面。然后选择凭据。在凭据页面上,选择创建凭据按钮中的下拉箭头,然后从下拉菜单中选择 OAuth 客户端 ID:
Google 要求您先配置 OAuth 权限请求页面,以便让用户选择如何授予对其私密数据的访问权限,然后才能生成 OAuth 凭据。如需配置 OAuth 权限请求页面,请参阅本页上的配置 OAuth 权限请求页面部分。
如果您已配置 OAuth 权限请求页面,Google 会显示创建 OAuth 客户端 ID 页面,您可以在其中创建 OAuth 客户端 ID 和密钥,以便在 Looker 的 BigQuery 连接中使用。从应用类型下拉菜单中,选择 Web 应用。页面将展开并显示其他选项:
在名称字段中,输入应用的名称,例如 Looker。
在已获授权的 JavaScript 来源部分中,选择 + 添加 URI 以显示 URI 1 字段。在 URI 1 字段中,输入 Looker 实例的网址,包括
https://
。例如:- 如果 Looker 托管您的实例:
https://<instancename>.looker.com
- 如果您有客户托管的 Looker 实例:
https://looker.<mycompany>.com
- 如果您的 Looker 实例需要端口号:
https://looker.<mycompany>.com:9999
- 如果 Looker 托管您的实例:
在已获授权的重定向 URI 部分中,选择 + 添加 URI 以显示 URI 1 字段。在 URI 1 字段中,输入 Looker 实例的网址,后跟
/external_oauth/redirect
。例如:https://<instancename>.looker.com/external_oauth/redirect
或https://looker.<mycompany>.com:9999/external_oauth/redirect
。复制您的客户端 ID 和客户端密钥值。您需要使用这些凭据在 Looker 中为 BigQuery 连接配置 OAuth。
配置 OAuth 权限请求页面
Google 要求您配置 OAuth 权限请求页面,以便您的用户选择如何授予对其私有数据的访问权限,并提供指向贵组织的服务条款和隐私权政策的链接。
在左侧菜单中,选择 OAuth 权限请求屏幕页面。在配置 OAuth 权限请求页面之前,您必须选择要向哪些类型的用户提供此应用。根据您的选择,您的应用可能需要经过 Google 验证。
进行选择,然后选择创建。Google 会显示 OAuth 权限请求页面。您可以为项目中的所有应用(包括内部和公开应用)配置此界面。
如果满足以下任一条件,Google 将对公开应用进行验证:
- 该应用使用的 Google API 采用受限范围或敏感范围。
- OAuth 权限请求页面包含应用徽标。
- 项目已超出网域阈值。
如需配置 OAuth 权限请求页面,请执行以下操作:
在应用名称字段中,输入用户要授予访问权限的应用的名称,在本例中为 Looker。
在用户支持电子邮件字段中,输入用户在遇到登录或意见征求问题时应联系的支持电子邮件地址。
选择添加网域以显示已获授权的网域 1 字段。在此字段中,输入 Looker 实例网址的网域。例如,如果 Looker 在
https://<instance_name>.cloud.looker.com
托管您的实例,则网域为looker.com
。对于客户托管的 Looker 部署,请输入您托管 Looker 的网域。在开发者联系信息部分中,输入一个或多个电子邮件地址,以便 Google 就您的项目与您联系。
其余字段是可选字段,但您可以使用它们进一步自定义同意屏幕。
选择保存并继续。
Google 会显示范围页面,您可以在其中配置范围。Looker 仅需要默认范围,因此无需进行额外的范围配置。选择保存并继续。
在摘要页面上,选择返回信息中心。
您现在可以继续执行生成 OAuth 凭据的程序。
如需详细了解如何配置 Google OAuth 权限请求页面,请参阅 Google 支持文档。
为 BigQuery 配置采用 OAuth 的 Looker 连接
如需为 BigQuery 连接启用 OAuth,请在设置 Looker 与 BigQuery 的连接时,在 Looker 的连接页面上选择 OAuth 选项。选择 OAuth 选项后,Looker 会显示 OAuth 客户端 ID 和 OAuth 客户端密钥 字段。粘贴您在本页的生成 Google OAuth 凭据程序中作为步骤获取的客户端 ID 和客户端密钥值。
如果您为 BigQuery OAuth 设置了会话时长,为了避免 Looker 会话超时,您需要使用豁免可信应用功能将 Looker 添加到可信应用。如需查看此过程的步骤,请参阅为 Google Cloud 服务设置会话时长的帮助文章。
Looker 用户如何通过 OAuth 向 BigQuery 进行身份验证
为 Looker 与 BigQuery 之间的连接设置 OAuth 后,用户可以通过以下任一方式使用 Looker 对 BigQuery 数据库执行初始身份验证:
- 通过使用 BigQuery 连接的 Looker 查询向 Google 进行身份验证
- 通过 Looker 账号页面上的 OAuth 连接凭据部分登录 Google
通过查询登录 Google
为 Looker 与 BigQuery 的连接设置 OAuth 后,Looker 会提示用户先使用其 Google 账号登录,然后再运行使用 BigQuery 连接的查询。Looker 会在探索、信息中心、Look 和 SQL Runner 中显示此提示。
用户必须选择登录并使用 OAuth 进行身份验证。用户通过身份验证登录 BigQuery 后,可以选择“探索”中的运行按钮,Looker 会将数据加载到“探索”中。
从用户账号页面登录 Google
为 OAuth 设置 Looker 与 BigQuery 的连接后,用户可以从 Looker 用户账号页面登录自己的 Google 账号:
- 在 Looker 中,选择个人资料图标,然后从用户菜单中选择账号。
- 前往 OAuth 连接凭据部分,然后针对相应的 BigQuery 数据库连接选择登录按钮。
- 在使用 Google 账号登录页面上,选择相应的账号。
- 在 OAuth 同意屏幕上选择允许,以允许 Looker 查看和管理您在 Google BigQuery 中的数据。
通过 Looker 登录 Google 后,您可以随时通过账号页面退出登录或重新授权您的凭据,如个性化设置用户账号文档页面中所述。虽然 Google BigQuery 令牌不会过期,但用户可以选择重新授权,以便使用其他 Google 账号登录。
撤消 OAuth 令牌
用户可以访问自己的 Google 账号设置,撤消 Looker 等应用对 Google 账号的访问权限。
Google BigQuery 令牌不会过期;不过,如果数据库管理员以使现有凭据失效的方式更改数据库连接的 OAuth 凭据,用户必须再次使用其 Google 账号登录,然后才能运行任何使用该连接的查询。
BigQuery 连接上的持久派生表
如果您想为 BigQuery 连接使用持久性派生表 (PDT),可能需要执行以下操作,具体取决于您的连接配置:
- 使用 Google Cloud 控制台在 BigQuery 数据库中创建一个临时数据集,供 Looker 用于写入 PDT。如需了解相关步骤,请参阅本页面上的为持久性派生表创建临时数据集部分。无论连接上的其他配置选项如何,PDT 都需要执行此步骤。
- 使用 Google Cloud 控制台中的 API 管理器为 Looker 的 PDT 进程创建单独的服务账号。如需了解相关程序,请参阅本页上的创建服务账号并下载 JSON 凭据证书部分。连接的身份验证类型会影响是否需要 PDT 服务账号,还会影响您在设置 Looker 与 BigQuery 的连接时,在 Looker 的连接窗口中输入 PDT 服务账号信息的位置:
- 如果您的连接使用 OAuth 进行用户身份验证,您必须为 PDT 进程创建单独的服务账号。您将在 Looker 的连接窗口的 PDT 覆盖设置部分中输入服务账号信息和证书文件详细信息。当您为某个连接启用 Enable PDTs 开关时,如果该连接还在身份验证字段中配置了 OAuth 选项,Looker 的连接窗口会自动显示 PDT Overrides 部分。如需了解详情,请参阅为 Looker 与 BigQuery 之间的 OAuth 连接启用 PDT 部分。
- 如果您的连接使用服务账号进行用户身份验证,您可以选择为 PDT 进程创建单独的服务账号。如果您选择使用单独的 PDT 服务账号,则需要在 Looker 的连接窗口的 PDT 覆盖设置部分中,为服务账号电子邮件地址、服务账号 JSON/P12 文件和密码字段输入服务账号信息。当您为使用服务账号身份验证的 Looker 连接启用 BigQuery 时,系统会显示 PDT 替换项部分。启用 PDT
为持久性派生表创建临时数据集
如需为 BigQuery 连接启用持久性派生表 (PDT),请在设置 Looker 与 BigQuery 的连接时,在 Looker 的连接页面上将启用 PDT 开关切换为开启状态。启用 PDT 后,Looker 会显示 临时项目和临时数据库字段。在这些字段中,您将输入 Looker 可用于创建 PDT 的项目 ID 和数据集名称。您应预先配置具有适当写入权限的数据库或架构。
您可以使用 Google Cloud 控制台设置临时数据集:
打开 Google Cloud 控制台,然后选择您的项目。
选择三点状菜单,然后选择创建数据集。
输入数据集 ID(通常为
looker_scratch
),然后选择数据位置(可选)、默认表有效期和加密密钥管理解决方案。选择创建数据集以完成操作。
创建数据集后,您可以在设置 Looker 与 BigQuery 的连接时,在 Looker 的连接窗口的临时项目和临时数据库字段中指定项目和数据集。
为 Looker 与 BigQuery 之间的 OAuth 连接启用 PDT
对于使用 OAuth 的 BigQuery 连接,您的用户需要使用其 OAuth 凭据向 Looker 进行身份验证。Looker 支持通过 OAuth 进行 BigQuery 连接的 PDT,但 Looker 本身无法使用 OAuth,因此您必须专门设置一个 BigQuery 服务账号,以允许 Looker 访问您的数据库以进行 PDT 处理。
您可以使用 Google Cloud API 管理器在 BigQuery 数据库中设置 PDT 服务账号。请参阅本页上的创建服务账号并下载 JSON 凭据证书部分。
在 BigQuery 数据库中创建服务账号后,请在设置 Looker 与 BigQuery 的连接时,在 Looker 的连接窗口的 PDT 替换项部分中输入服务账号信息和证书文件详细信息。如需了解 PDT Overrides 字段,请参阅 PDT Overrides 部分。
PDT 覆盖
对于使用 OAuth 的 BigQuery 连接,以及您希望为 PDT 使用不同的凭据、数据集或结算项目的连接,您可以启用 PDT 替换项切换开关,以输入特定于连接中 PDT 的不同信息。(如需详细了解 PDT 替换为何有用,请参阅将 Looker 连接到数据库文档页面的 PDT 替换部分。)
如果您已为某个连接启用 Enable PDTs(启用 PDT)切换开关,Looker Connections(连接)窗口会显示 Enable PDT Overrides(启用 PDT 覆盖)切换开关。开启 Enable PDT Overrides 开关,然后在 PDT Overrides 部分中使用以下字段输入服务账号的相关信息,以便 Looker 可以使用该服务账号在数据库上运行 PDT 进程:
PDT 覆盖结算项目 ID:指定用于结算 PDT 构建和维护查询(触发检查查询)的项目。针对 PDT 的查询仍将使用常规设置的 Billing Project ID 字段中指定的结算项目。PDT 覆盖结算项目永远不会用于存储,只会用于结算。如果您要使用此字段,服务账号必须至少具有 bigquery.jobUser 角色。
PDT 覆盖设置 - 服务账号文件:使用上传文件按钮上传您希望用于连接上的 PDT 进程的 BigQuery 服务账号的证书文件。您可以在创建服务账号并下载 JSON 凭据证书流程中,通过 Google Cloud API 管理器获取此文件。您用于 PDT 数据集的账号需要具有读写权限。
用户名:此字段仅在您于 PDT 覆盖设置部分的 PDT 覆盖设置 - 服务账号文件字段中上传 P12 文件时适用。输入您希望用于连接上的 PDT 流程的 BigQuery 服务账号的电子邮件地址。您可以在创建服务账号并下载 JSON 凭据证书流程中 Google Cloud 通过 API 管理器获取此电子邮件地址。
密码:此字段仅在您于 PDT 覆盖设置 - 服务账号文件字段中上传 P12 文件时适用。PDT 覆盖设置部分。输入您要用于连接上的 PDT 进程的 BigQuery 服务账号的 .p12 凭据文件的密码。
PDT 覆盖设置 - 其他 JDBC 参数:添加应在连接中用于 PDT 的任何其他 JDBC 参数,例如 BigQuery 标签(如需了解详情,请参阅本页面的作业标签和 BigQuery 连接的上下文注释部分)。以下是其他一些受支持的参数:
connectTimeout
:等待连接的毫秒数。默认值为 240000。readTimeout
:等待读取的毫秒数。默认值为 240000。rootUrl
:如果您在专用网络中拥有 BigQuery 实例,请指定一个备用端点来连接到 BigQuery,而不是使用默认的公共端点。
将 Looker 连接到 BigQuery
您可以在 Looker 的将数据库连接到 Looker 页面中创建数据库连接。您可以通过以下两种方式打开将数据库连接到 Looker 页面:
- 在管理面板的数据库部分中,选择关联。在连接页面上,点击添加连接按钮。
- 点击主导航面板中的创建按钮,然后选择连接菜单项。
填写连接详情。这些设置中的大多数设置对于大多数数据库方言都是通用的,并且已在将 Looker 连接到数据库文档页面中进行了说明。提及以下设置是为了突出显示它们,或说明它们如何专门应用于 BigQuery 连接:
SQL 方言:选择 Google BigQuery 标准 SQL 或 Google BigQuery 旧版 SQL。
项目范围:选择连接应能与所有项目搭配使用,还是只能与一个项目搭配使用。如需了解详情,请参阅将 Looker 连接到数据库页面。
启用 SSH 服务器:对于部署在 Kubernetes 基础设施上且能够添加 SSH 服务器配置信息的实例,您可以开启启用 SSH 服务器 开关,以配置 SSH 服务器和 SSH 隧道字段。如需了解详情,请参阅将 Looker 连接到数据库页面。
结算项目 ID: Google Cloud 结算项目的项目 ID(唯一标识符)。结算项目是 Google Cloud 接收账单的项目,但如果 LookML 开发者在 LookML 视图、Explore 或 join 的
sql_table_name
参数中指定了完全限定的表名称,您仍然可以查询其他 Google Cloud 项目中的数据集。对于 BigQuery,完全限定的表名称采用<project_name>.<dataset_name>.<table_name>
格式。如果没有完整范围的引用,BigQuery 会在 Looker 的 Connections(连接)页面中为 Looker 的 BigQuery 连接指定的结算项目和数据集中查找相应表。如需了解 BigQuery 中的资源层次结构,请参阅 BigQuery 文档。存储项目 ID:存储项目的项目 ID(如果您在不同的项目中分离了计算和存储)。如果 LookML 开发者在 LookML 视图、Explore 或 联接的
sql_table_name
参数中指定了完全限定的表名称,您就可以查询其他 Google Cloud 项目中的数据集。对于 BigQuery,完全限定的表名称采用<project_name>.<dataset_name>.<table_name>
格式。如果没有完整范围的引用,BigQuery 会在 Looker 的 Connections(连接)页面中为 Looker 的 BigQuery 连接指定的结算项目和数据集中查找相应表。如需了解 BigQuery 中的资源层次结构,请参阅 BigQuery 文档。主数据集:您希望 Looker 在查询数据库时默认使用的数据集的名称。默认数据集必须位于为连接指定的结算项目内;您无法在数据库字段中输入
project_name.dataset_name
等值来指定其他项目中的数据集。如果 LookML 开发者在 LookML 视图、Explore 或 join 的
sql_table_name
参数中指定了完全限定的表名称,则 LookML 项目可以访问其他数据集中的表(包括公共数据集中的表)。对于 BigQuery,完全限定的表名称采用<project_name>.<dataset_name>.<table_name>
格式。如需查询其他数据集中的表,该表必须可供服务账号(对于使用服务账号身份验证的连接)或运行查询的用户(对于使用 OAuth 身份验证的连接)访问。如果您的 LookML 代码未指定完全限定的表名称,BigQuery 将在您在 BigQuery 连接的数据集字段中指定的数据集中搜索该表。如果您的项目没有任何数据集(如果您在不同的项目中分别处理计算和存储,则可能会出现这种情况),您可以提供任意 Dataset 值,但随后您必须始终在 LookML 中使用完全限定的表名称。
身份验证:Looker 将用于访问数据库的身份验证类型。其中一些选项仅适用于 Looker (Google Cloud Core) 实例:
- 应用默认凭据:(仅限 Looker (Google Cloud Core))选择此选项可使用应用默认凭据 (ADC) 向数据库进行身份验证(如需了解详情,请参阅 Looker (Google Cloud Core) 文档)。
- 服务账号:选择此选项可使用 BigQuery 服务账号让 Looker 对您的数据库进行身份验证(如需了解详情,请参阅使用 BigQuery 服务账号进行身份验证)。选择服务账号后,您会看到以下字段:
- 上传服务 JSON 或 P12 文件:使用上传文件按钮上传 BigQuery 服务账号的证书文件。您可以在创建服务账号并下载 JSON 凭据证书流程中,通过 Google Cloud API 管理器获取此文件。
- 服务账号电子邮件地址:此字段仅在您于上传服务 JSON 或 P12 文件字段中上传 P12 文件时适用。输入 BigQuery 服务账号的电子邮件地址,该地址是在创建服务账号并下载 JSON 凭据证书过程中的 Google Cloud API 管理器步骤中获取的。
- 密码:BigQuery 服务账号的 P12 凭据文件的密码。只有当您在上传服务 JSON 或 P12 文件字段中上传 P12 文件时,密码字段才适用。
OAuth:选择此选项可让每位 Looker 用户都能通过身份验证登录 Google BigQuery,并授权 Looker 使用用户的 BigQuery 账号访问数据库。如需详细了解如何为 BigQuery 连接实现 OAuth,请参阅本页上的使用 OAuth 进行身份验证部分。选择 OAuth 后,您会看到以下字段:
- OAuth 客户端 ID:OAuth 客户端 ID。您可以在生成 Google OAuth 凭据流程的 Google Cloud 控制台步骤中获取此信息。
- OAuth 客户端密钥:OAuth 客户端密钥。您可以在生成 Google OAuth 凭据流程的 Google Cloud 控制台步骤中获取此信息。
每个节点的最大连接数:Looker 可与数据库建立的连接数上限。如需了解详情,请参阅将 Looker 连接到数据库文档页面。
连接池超时:如果用户请求的连接数超过了为每个节点的连接数上限设置的值,则这些请求将等待其他请求完成后再执行。连接池超时时间是指请求等待的最长时间。如需了解详情,请参阅将 Looker 连接到数据库文档页面。
此连接的并发查询数上限:Looker 一次可以向数据库连接提交的并发查询数上限。如需了解详情,请参阅将 Looker 连接到数据库文档页面。
此连接的每用户并发查询数上限:Looker 一次向此数据库连接提交的每个用户的并发查询数上限。如需了解详情,请参阅将 Looker 连接到数据库文档页面。
最大结算千兆字节数:对于 BigQuery 连接,系统会根据每个查询的大小向您收取费用。为帮助防止用户意外运行费用过高的查询,您可以设置用户在单个查询中可提取的最大千兆字节数。如果您不限制查询规模,可以将结算 GB 数上限字段留空。如需了解详情,请参阅 BigQuery 价格页面。
其他 JDBC 参数:添加任何其他 JDBC 参数,例如 BigQuery 标签(如需了解详情,请参阅本页上的作业标签和 BigQuery 连接的上下文注释部分)。以下是一些其他受支持的参数:
connectTimeout
:等待连接的毫秒数。默认值为 240000。readTimeout
:等待读取的毫秒数。默认值为 240000。rootUrl
:如果您在专用网络中拥有 BigQuery 实例,请指定一个备用端点来连接到 BigQuery,而不是使用默认的公共端点。
维护时间表:Looker 再生器的
cron
间隔。如需了解详情,请参阅将 Looker 连接到数据库文档页面。停用上下文:此选项会停用 BigQuery 连接中的上下文注释。默认情况下,系统会停用 Google BigQuery 连接上的上下文注释,因为上下文注释会使 Google BigQuery 无法缓存,并可能会对缓存性能产生负面影响。您可以关闭停用上下文切换开关,为 BigQuery 连接启用上下文注释。如需了解详情,请参阅 BigQuery 连接的作业标签和上下文注释部分。
SSL:启用此切换开关可使用 SSL 加密来保护 Looker 与数据库之间传输的数据。如需了解详情,请参阅将 Looker 连接到数据库文档页面。
预缓存表和列:如果您希望 SQL Runner 不预加载表信息,而仅在选择表时加载表信息,请清除此选项。如需了解详情,请参阅将 Looker 连接到数据库页面中的预缓存表和列部分。
提取并缓存架构:如果您知道信息架构速度较慢,可以为连接停用提取并缓存架构选项。停用此功能会阻止 Looker 针对某些功能进行 SQL 优化,因此除非您知道连接的信息架构特别慢,否则应启用提取和缓存架构选项。如需了解详情,请参阅将 Looker 连接到数据库文档页面。
启用 PDT:启用此切换开关,以允许连接使用永久性派生表 (PDT)。如需了解详情,请参阅本页上的 BigQuery 连接上的持久性派生表部分。您需要指定 Looker 将用于写入 PDT 的数据库中的临时数据集。如需了解相关步骤,请参阅本页面上的为持久性派生表创建临时数据集部分。 注意:如果您的连接配置为使用 OAuth,您需要使用 PDT 替换项部分指定 Looker 可用于 BigQuery 连接上的 PDT 流程的服务账号。如需了解详情,请参阅为 Looker 连接到 BigQuery 的连接启用 PDT(使用 OAuth)部分。
临时项目:包含您要用于写入 PDT 的数据集的项目 ID。如果未指定临时项目,Looker 会将 PDT 写入连接设置的数据库设置部分中存储项目 ID 字段指定的项目。如果未指定存储项目 ID,Looker 会将 PDT 写入连接设置的数据库设置部分的结算项目 ID 字段中指定的项目。
临时数据库:您在 Google Cloud 控制台中创建的 BigQuery 数据集,用于允许 Looker 将持久性派生表写入数据库。如需了解相关步骤,请参阅为持久性派生表创建临时数据集部分。
PDT 构建器连接数上限:Looker 重新生成器可以在数据库连接上启动的并发表构建数量上限。如需了解详情,请参阅将 Looker 连接到数据库文档页面。
重试失败的 PDT 构建:启用重试失败的 PDT 构建切换开关后,即使 PDT 的触发条件未满足,Looker 再生器也会尝试重新构建在上一个再生器周期中失败的 PDT。如需了解详情,请参阅将 Looker 连接到数据库文档页面。
PDT API 控制:此开关用于确定是否可将
start_pdt_build
、check_pdt_build
和stop_pdt_build
API 调用用于此连接。如需了解详情,请参阅将 Looker 连接到数据库文档页面。启用 PDT 覆盖:启用此切换开关可配置 Looker 在将 PDT 写入数据库时应使用的单独连接设置。如需详细了解 PDT 替换字段,请参阅本页中的 PDT 替换部分。
数据库时区:BigQuery 的默认时区为 UTC。您在此处指定的时区设置需要与您的 BigQuery 时区设置一致。如需了解详情,请参阅将 Looker 连接到数据库页面中的数据库时区部分。
查询时区:如需了解详情,请参阅将 Looker 连接到数据库页面中的查询时区部分。
填写完连接的所有适用字段后,您可以根据需要测试连接。
如需保存这些设置,请点击连接。
测试连接
您可以在 Looker 界面中的多个位置测试连接设置:
- 选择连接设置页面底部的测试按钮,如将 Looker 连接到数据库文档页面中所述。
- 在连接管理页面上,选择连接列表旁边的测试按钮,如连接文档页面中所述。
对于新连接,如果 Looker 显示可以连接,请选择添加连接。Looker 将运行其余的连接测试,以验证服务账号是否已正确设置并具有适当的角色。
测试使用 OAuth 的连接
- 在 Looker 中,进入开发模式。
- 对于使用 OAuth 的现有 BigQuery 连接,请前往使用您的 BigQuery 连接的 Looker 项目的项目文件。对于使用 OAuth 的新 BigQuery 连接,请打开模型文件,将模型的
connection
值替换为新 BigQuery 连接的名称,然后保存模型文件。 - 打开某个模型的探索或信息中心,然后运行查询。当您尝试运行查询时,Looker 会提示您使用 Google 账号登录。按照 Google OAuth 登录提示操作。
BigQuery 连接的作业标签和上下文注释
对于 BigQuery 连接,Looker 会以 BigQuery 作业标签的形式发送查询上下文。默认情况下,Looker 会为 BigQuery 连接发送以下上下文标签键:
looker-context-user_id
:Looker 实例中每个用户的唯一标识符。您可以将此用户 ID 与管理菜单中用户页面上的用户 ID 进行匹配。looker-context-history_slug
:Looker 实例在数据库中运行的每个查询的唯一标识符。looker-context-instance_slug
:发出查询的 Looker 实例的 ID 编号。Looker 支持团队可以根据这些信息帮助您排查问题(如有必要)。
您可以使用连接页面的其他 JDBC 参数文本字段,为 Looker 配置其他作业标签,以便 Looker 在每次查询 BigQuery 连接时发送这些标签。在其他 JDBC 参数字段中,添加其他 JDBC 参数 labels
,并提供以英文逗号分隔的网址编码 key=value
对列表。例如,如果您在其他 JDBC 参数字段中添加以下内容:
labels=this%3Dconnection-label,that%3Danother-connection-label
%3D
是 =
的网址编码,因此除了默认的 Looker 上下文标签之外,此设置还会向 Looker 发送到 BigQuery 数据库的每个查询添加以下两个标签:
this
:connection-label
that
:another-connection-label
请注意,BigQuery 对作业标签有限制:
- 任何与上下文标签具有相同键的连接标签都将被忽略。
- 如果连接标签和上下文标签的并集超过 64 个标签的总上限,系统会先舍弃上下文标签,然后再舍弃连接标签,直到标签总数不超过 64 个。
Looker 会确保上下文标签符合 BigQuery 的所有标签有效性要求,但不会检查连接标签的有效性。配置无效的连接标签可能会导致查询失败。
Looker 默认发送的 BigQuery 作业标签(looker-context-user_id
、looker-context-history_id
和 looker-context-instance_slug
)对应于 Looker 附加到 BigQuery 以外的数据库方言的 SQL 查询的 SQL 上下文注释。对于 BigQuery 连接,上下文注释默认处于停用状态,因为它们会使 BigQuery 无法进行缓存,并可能会对缓存性能产生负面影响。您可以为 BigQuery 连接启用上下文注释,方法是针对该 BigQuery 连接关闭停用上下文切换开关。我们建议您保留停用上下文注释的默认设置,以便能够使用 BigQuery 的缓存。不过,如果您为 BigQuery 连接取消选择停用上下文注释选项,Looker 会向您的数据库发送 SQL 上下文注释和 BigQuery 作业标签。
SQL 上下文注释和 BigQuery 作业标签传达的信息相同。例如,Looker 可能会为查询生成以下 SQL 上下文注释:
-- Looker Query Context
'{"user_id":1,"history_id":4757,"instance_slug":"ec2804ddef74c466f2a43e0afaa3ff6b"}'
然后,Looker 会为同一查询生成以下 BigQuery 作业标签:
[{"value":"1","key":"looker-context-user_id"},
{"value":"4757","key":"looker-context-history_id"},
{"value":"ec2804ddef74c466f2a43e0afaa3ff6b","key":"looker-context-instance_slug"}]
功能支持
如需让 Looker 支持某些功能,您的数据库方言也必须支持这些功能。
Google BigQuery 标准 SQL
截至 Looker 25.10,Google BigQuery 标准 SQL 支持以下功能:
功能 | 是否支持? |
---|---|
支持级别 | 支持 |
Looker (Google Cloud Core) | 是 |
对称聚合 | 是 |
派生表 | 是 |
基于 SQL 的永久性派生表 | 是 |
永久性原生派生表 | 是 |
稳定视图 | 是 |
终止查询 | 是 |
基于 SQL 的透视 | 是 |
时区 | 是 |
SSL | 是 |
小计 | 是 |
JDBC 其他参数 | 是 |
区分大小写 | 是 |
位置类型 | 是 |
列表类型 | 是 |
百分位 | 是 |
不同值百分位 | 是 |
SQL Runner“显示进程” | 否 |
SQL Runner“描述表” | 否 |
SQL Runner 显示索引 | 否 |
SQL Runner 选择 10 | 是 |
SQL Runner 计数 | 是 |
SQL Explain | 否 |
OAuth 2.0 凭据 | 是 |
上下文注释 | 是 |
连接池 | 否 |
HLL 草图 | 是 |
汇总认知度 | 是 |
增量 PDT | 是 |
毫秒 | 是 |
微秒 | 是 |
具体化视图 | 是 |
与前一时间段相比的指标 | 是 |
近似计数不同 | 是 |
Google BigQuery 旧版 SQL
截至 Looker 25.10,Google BigQuery 旧版 SQL 支持以下功能:
功能 | 是否支持? |
---|---|
支持级别 | 支持 |
Looker (Google Cloud Core) | 是 |
对称聚合 | 是 |
派生表 | 是 |
基于 SQL 的永久性派生表 | 是 |
永久性原生派生表 | 是 |
稳定视图 | 否 |
终止查询 | 是 |
基于 SQL 的透视 | 是 |
时区 | 否 |
SSL | 是 |
小计 | 否 |
JDBC 其他参数 | 是 |
区分大小写 | 是 |
位置类型 | 是 |
列表类型 | 是 |
百分位 | 是 |
不同值百分位 | 是 |
SQL Runner“显示进程” | 否 |
SQL Runner“描述表” | 否 |
SQL Runner 显示索引 | 否 |
SQL Runner 选择 10 | 是 |
SQL Runner 计数 | 是 |
SQL Explain | 否 |
OAuth 2.0 凭据 | 是 |
上下文注释 | 是 |
连接池 | 否 |
HLL 草图 | 否 |
汇总认知度 | 是 |
增量 PDT | 否 |
毫秒 | 是 |
微秒 | 是 |
具体化视图 | 否 |
与前一时间段相比的指标 | 否 |
近似计数不同 | 是 |
后续步骤
将数据库连接到 Looker 后,请为用户配置登录选项。