Databricks

您可以将 Databricks 实例配置为与 Looker 搭配使用,以分析和直观呈现数据,从而生成运营报告。Looker 仅在启用 Unity Catalog 时连接到 Databricks。设置过程包括加密网络流量、创建专用 Looker 用户以及配置用户权限。

加密网络流量

对 Looker 应用与数据库之间的网络流量进行加密是一种最佳实践。可以考虑启用安全的数据库访问文档页面上介绍的某个选项。

创建 Looker 用户

Looker 通过个人访问令牌向 Databricks 进行身份验证。按照 Databricks 文档中的说明,为 Databricks 用户创建个人访问令牌,以便在 Looker 中使用。

使用 GRANT 为此用户添加权限。

Looker 用户至少应拥有 SELECT 和 READ_METADATA 权限。

GRANT SELECT ON DATABASE <YOUR_DATABASE> TO `<looker>@<your.databricks.com>`
GRANT READ_METADATA ON DATABASE <YOUR_DATABASE> TO `<looker>@<your.databricks.com>`

服务器信息

按照 Databricks 文档中的说明,找到 Databricks 集群的 HTTP 路径。在本页面中,此项称为 <YOUR_HTTP_PATH>。

设置永久性派生表

如需使用永久性派生表,请创建一个单独的数据库。

CREATE DATABASE <YOUR_SCRATCH_DATABASE>

这还需要授予额外的基于写入的用户权限。

GRANT SELECT CREATE MODIFY ON DATABASE <YOUR_SCRATCH_DATABASE> TO `<looker>@<your.databricks.com>`
GRANT READ_METADATA ON DATABASE <YOUR_SCRATCH_DATABASE> TO `<looker>@<your.databricks.com>`

创建与数据库的 Looker 连接

在 Looker 的管理部分中,选择连接,然后点击添加连接。

填写连接详情。大多数设置对于大多数数据库方言都是通用的。如需了解相关信息,请参阅将 Looker 连接到您的数据库文档页面。下面介绍了一些设置:

  • 名称:指定连接的名称。这是您在 LookML 项目中引用连接的方式。
  • 方言:指定方言 Databricks。
  • 主机:指定 Databricks 工作区网址。例如 dbc-yyyyyyyy.cloud.databricks.com/。
  • 端口:指定数据库端口。默认值为 443。
  • 数据库:指定要用于 Looker 查询的数据库的名称。默认值为 default。
  • 目录:对于启用了 Unity Catalog 的 Databricks 数据库,请指定要用于 Looker 查询的目录名称。如果您未指定目录,Looker 将仅访问默认目录中的架构。如需了解详情,请参阅 Looker 与 Databricks Unity Catalog 的功能。
  • 身份验证:选择数据库账号或 OAuth:
    • 使用数据库账号指定将用于连接到 Looker 的 Databricks 个人访问令牌(如需查看相关说明,请参阅创建 Looker 用户部分)。
      • 在用户名部分,输入值 token(请勿在此字段中输入 Databricks 用户电子邮件地址)。
      • 对于密码,输入 Databricks 个人访问令牌。
    • 使用 OAuth 为连接配置 OAuth。如需了解详情,请参阅为 Databricks 连接配置 OAuth 部分。
  • 启用 PDT:使用此切换开关可启用永久性派生表。启用 PDT 后,连接窗口会显示其他 PDT 设置和 PDT 覆盖部分。注意:使用 OAuth 的 Databricks 连接不支持 PDT。
  • 临时数据库:输入要用于存储 PDT 的数据库。
  • PDT 构建器连接数上限:指定此连接上可能存在的并发 PDT 构建数量。将此值设置得过高可能会对查询时间产生负面影响。如需了解详情,请参阅将 Looker 连接到您的数据库文档页面。
  • 其他 JDBC 参数:添加任何其他 JDBC 参数。如需查看 Looker 支持的参数列表,请参阅本页面上的支持的 JDBC 参数部分。

  • 维护时间表:一个 cron 表达式,用于指示 Looker 应何时检查数据组和永久性派生表。如需详细了解此设置,请参阅维护时间表文档。

  • SSL:勾选此选项可使用 SSL 连接。

  • 验证 SSL:勾选此选项可强制执行严格的 SSL 证书验证。

  • 每个节点的最大连接数:您最初可以将此设置保留为默认值。如需详细了解此设置,请参阅将 Looker 连接到数据库文档页面的每个节点的最大连接数部分。

  • 连接池超时:您最初可以将此设置保留为默认值。如需详细了解此设置,请参阅将 Looker 连接到数据库文档页面的连接池超时部分。

  • SQL Runner 预缓存:如需让 SQL Runner 不预加载表信息,而仅在选择表时加载表信息,请取消选中此复选框。如需详细了解此设置,请参阅将 Looker 连接到数据库文档页面的 SQL Runner 预缓存部分。

  • 为编写 SQL 提取信息架构:启用此设置后,Looker 会使用数据库的信息架构来优化 SQL 编写。如需详细了解此设置,请参阅将 Looker 连接到数据库文档页面的为编写 SQL 提取信息架构部分。

  • 数据库时区:指定要在数据库中使用的时区。如果您不想进行时区转换,请将此字段留空。如需了解详情,请参阅使用时区设置文档页面。

如需验证连接是否成功,请点击连接设置页面底部状态详情部分中的测试连接按钮。

如果 Looker 显示可以连接,请按连接以创建连接。

然后,您的数据库连接会添加到 Looker 连接管理页面上的列表中。

Databricks Unity Catalog 的 Looker 功能

Looker 支持连接到启用了 Unity Catalog 的 Databricks 数据库。您可以在创建 Looker 与数据库的连接时,或在修改 Looker 与 Databricks 数据库的现有连接时,在 Looker 连接窗口的目录字段中指定目录名称。

如果您的 Databricks 数据库已启用 Unity Catalog,则可以在 Looker 连接的目录字段中指定 Databricks 目录。指定 Databricks 目录后,Looker 会在以下场景中使用该目录:

  • 从数据库生成新的 LookML 项目时,Looker 会根据连接的已配置目录中的表创建项目文件。
  • 对于现有项目,使用 Looker IDE 基于表创建视图时,Looker 将仅基于连接的已配置目录中的表创建视图文件。
  • 使用 SQL Runner 时,您只能从连接的已配置目录中选择架构。

如果您的 Databricks 数据库已启用 Unity Catalog,并且 Looker 连接在目录字段中没有值,则大多数 Looker 功能将仅访问默认目录中的架构,例如在以下场景中:

  • 从数据库生成新的 LookML 项目时,Looker 将根据 Unity Catalog 默认目录中的表创建项目文件。
  • 对于现有项目,使用 Looker IDE 基于表创建视图时,Looker 只能基于 Unity Catalog 默认目录中的表创建视图文件。
  • 使用 SQL Runner 时,您只能从 Unity Catalog 默认目录中选择架构。

为 Databricks 连接配置 OAuth

Looker 支持对 Databricks 连接使用 OAuth,这意味着每个 Looker 用户都会向数据库进行身份验证,并授权 Looker 使用用户自己的 OAuth 用户账号对数据库运行查询。

借助 OAuth,数据库管理员可以执行以下任务:

  • 审核哪些 Looker 用户正在对数据库运行查询
  • 使用数据库级权限实施基于角色的访问控制
  • 对访问数据库的所有流程和操作使用 OAuth 令牌,而不是在多个位置嵌入数据库 ID 和密码
  • 直接通过数据库撤消对给定用户的授权

对于使用 OAuth 的 Databricks 连接,用户必须在 OAuth 令牌过期时定期重新登录。

对于数据库级 OAuth 连接,请注意以下事项:

  • 如果用户的 OAuth 令牌过期,则该用户拥有的任何 Looker 计划或提醒都会受到影响。为防止出现这种情况,Looker 会在当前有效的 OAuth 令牌过期之前,向每个时间表和每个提醒的所有者发送邮件通知。Looker 会在令牌到期前 14 天、7 天和 1 天发送这些邮件通知。用户可以前往其 Looker 用户页面,重新向 Looker 授予数据库访问权限,以免其时间表和提醒受到任何干扰。如需了解详情,请参阅对用户账号设置进行个性化设置文档页面。
  • 由于使用 OAuth 的数据库连接是“按用户”进行的,因此缓存政策也是按用户(而不仅仅是按查询)进行的。这意味着,只要在缓存期内运行相同的查询,Looker 就不会使用缓存的结果,而只有在同一用户在缓存期内运行相同的查询时,Looker 才会使用缓存的结果。如需详细了解缓存,请参阅缓存查询文档页面。
  • 使用 OAuth 的 Databricks 连接不支持永久性派生表 (PDT)。
  • 当 Looker 管理员以其他用户身份执行 sudo 操作时,管理员会使用该用户的 OAuth 访问令牌。如果用户的访问令牌已过期,管理员无法代表 sudoed 用户创建新令牌。如需了解如何使用 sudo 命令,请参阅用户文档页面。
  • 当用户在 Looker 中为 Databricks 连接启动 OAuth 授权流程时,Looker 会显示授权 OAuth 连接对话框,通知用户:授权连接后,Looker 实例可以代表他们访问数据,并且管理员或开发者等具有特权的 Looker 用户可能会看到他们的数据。用户必须先选择授权,然后才能继续登录 Databricks。此意见征求信息会存储在用户的浏览器本地存储空间中,如果本地存储空间被清除,对话框会再次显示。用户选择授权后,Databricks 本身不会显示额外的用户意见征求对话框。
  • 如需为 Databricks 连接使用 OAuth,您必须拥有可用于 Looker 查询的 Databricks 用户或服务主体,并且必须为这些用户和服务主体提供 Looker 访问数据源和在 Databricks 中执行所需操作所需的 Databricks 权限。

如需使用 OAuth 创建与 Looker 的 Databricks 连接,您必须执行以下常规步骤,这些步骤将在以下部分中详细介绍:

  1. 在 Databricks 中启用自定义 OAuth 应用
  2. 在 Looker 中配置连接

在 Databricks 中启用自定义 OAuth 应用

如需使用 OAuth 进行 Looker 与 Databricks 的连接,您必须按照以下步骤将 Looker 启用为 Databricks 数据库的自定义 OAuth 应用:

  1. 登录 Databricks 账号控制台。
  2. 点击侧边栏中的设置图标。
  3. 点击设置窗口中的应用连接标签页。
  4. 在应用连接标签页中,点击添加连接。
  5. 在 Databricks 添加连接对话框中输入以下值:

    • 应用名称:提供一个描述性名称,例如“Looker 集成”。
    • 重定向网址:输入 Databricks 在成功授权后将用户重定向到的 Looker 网址,格式如下(将 example.looker.com 替换为 Looker 实例的网址):

      https://example.looker.com/external_oauth/redirect
      
    • 访问权限范围:选择 SQL,以允许 Looker 通过 SQL 查询数据。

    • 生成客户端密钥:启用此选项。

  6. 在 Databricks 添加连接对话框中,点击添加。

  7. 复制并妥善存储 Databricks 生成的客户端 ID 和客户端密钥。

注册 OAuth 应用可能需要长达 30 分钟的时间才能在 Databricks 数据库中处理完毕。如需了解详情,请参阅官方 Databricks 文档。

在 Looker 中配置连接

在 Databricks 数据库上将 Looker 配置为自定义 OAuth 应用后,您可以配置使用 OAuth 的 Databricks Looker 连接。

  1. 在 Looker 的管理部分中,选择连接,然后点击添加连接。
  2. 填写连接详细信息,如本页面的创建与数据库的 Looker 连接部分中所述。
  3. 在身份验证字段中选择 OAuth 选项。
  4. 选择 OAuth 选项后,Looker 会显示 OAuth 客户端 ID 和 OAuth 客户端密钥字段。对于这些值,请输入您在 Databricks 中将 Looker 启用为自定义 OAuth 应用时由 Databricks 生成的客户端 ID 和客户端密钥。
  5. 选择连接设置页面底部的测试按钮,确保 Looker 可以成功建立 OAuth 流程并连接到 Databricks 实例。

支持的 JDBC 参数

对于 Databricks,Looker 在连接的其他 JDBC 参数字段中支持以下 JDBC 参数。如需了解这些参数,请参阅数据库的相关文档。

  • Auth_Flow
  • AuthMech
  • catalogSchemaSwitch
  • ConnSchema
  • httpPath
  • LogLevel
  • OAuth2ClientId
  • OAuth2Secret
  • PWD
  • SocketTimeout
  • ssl
  • transportMode
  • UID
  • UserAgentEntry

功能支持

为了让 Looker 支持某些功能,您的数据库方言也必须支持这些功能。

自 Looker 26.22 起,Databricks 支持以下功能:

功能 是否支持?
Looker (Google Cloud Core)
对称聚合
派生表
永久性 SQL 派生表
原生永久性派生表
稳定视图
查询终止
基于 SQL 的透视
时区
SSL
小计
其他 JDBC 参数
区分大小写
位置类型
名单类型
百分位
不同值百分位
SQL Runner “Show Processes”
SQL Runner “Describe Table”
SQL Runner “Show Indexes”
SQL Runner “Select 10”
SQL Runner “Count”
SQL “Explain”
OAuth 2.0 凭证
背景信息评论
连接池
HLL 草图
汇总感知
增量 PDT
毫秒
微秒
物化视图
环比衡量
近似计数不同
数据库内分析模型
自定义日历