Databricks

对网络流量进行加密

最佳做法是对 Looker 应用和数据库之间的网络流量进行加密。请考虑启用安全的数据库访问文档页面中所述的选项之一。

创建 Looker 用户

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

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

Looker 用户至少应具有 SELECTREAD_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-xxxxxxxx.cloud.databricks.com/
  • Port:指定数据库端口。默认值为 443。
  • 数据库:指定用于 Looker 查询的数据库的名称。默认值为 default
  • Authentication:选择数据库帐号OAuth
    • 使用数据库账号指定将用于连接到 Looker 的 Databricks 个人访问令牌(如需查看相关说明,请参阅创建 Looker 用户部分)。
      • 对于用户名,请输入值 token(请勿在此字段中输入 Databricks 用户的电子邮件地址)。
      • 对于密码,输入 Databricks 个人访问令牌。
    • 使用 OAuth 为连接配置 OAuth。有关详情,请参阅为 Databricks 连接配置 OAuth 部分。
  • 启用 PDT:使用此切换开关可启用永久性派生表。启用 PDT 后,Connection 窗口会显示其他 PDT 设置以及 PDT 替换部分。 注意:使用 OAuth 的 Databricks 连接不支持 PDT。
  • 临时数据库:输入要用于存储 PDT 的数据库。
  • PDT 构建器连接数上限:指定此连接上可能的并发 PDT 构建数量。设置过高的值可能会对查询时间产生不利影响。如需了解详情,请参阅将 Looker 连接到您的数据库文档页面。
  • 其他 JDBC 参数:添加任何其他 Spark JDBC 参数

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

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

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

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

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

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

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

点击测试以测试连接并确保配置正确无误。如果您看到可以连接,请按连接。这将运行其余的连接测试,以验证服务帐号是否已正确设置且具有适当的角色。如需了解问题排查信息,请参阅测试数据库连接文档页面。

通过 Databricks Unity Catalog 实现 Looker 功能

如果 Looker 与启用了 Unity Catalog 的 Databricks 数据库的连接,大多数 Looker 功能将仅访问默认目录中的架构,例如在以下情况下:

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

为 Databricks 连接配置 OAuth

Looker 支持将 OAuth 用于 Databricks 连接,这意味着每个 Looker 用户都会在数据库中进行身份验证,并授权 Looker 使用其自己的 OAuth 用户帐号在数据库上运行查询。

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

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

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

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

  • 如果用户允许其 OAuth 令牌过期,则用户拥有的任何 Looker 时间表或提醒都会受到影响。为防止出现这种情况,Looker 会在当前有效的 OAuth 令牌到期之前,分别向每个时间表和每个提醒的所有者发送电子邮件通知。Looker 会在令牌过期前 14 天、7 天和 1 天发送这些电子邮件通知。用户可以前往 Looker 用户页面,重新授权 Looker 对数据库,以免其时间安排和提醒发生任何中断。有关详情,请参阅对用户帐号设置进行个性化设置文档页面。
  • 由于使用 OAuth 的数据库连接按用户进行,因此缓存策略也是针对具体用户的,而不仅仅是针对查询。这意味着,当在缓存期内运行同一查询时,Looker 不会使用缓存的结果,而是仅当同一用户在缓存期间运行同一查询时才使用缓存的结果。如需详细了解缓存,请参阅缓存查询文档页面。
  • 通过 OAuth 的 Databricks 连接不支持永久性派生表 (PDT)
  • 当 Looker 管理员以 sudo 作为其他用户时,管理员将使用该用户的 OAuth 访问令牌。如果用户的访问令牌已过期,管理员将无法代表 sudoed 用户创建新令牌。如需了解如何使用 sudo 命令,请参阅用户文档页面。
  • 当用户使用 OAuth 从 Looker 登录 Databricks 时,Looker 不会显示明确的用户意见征求对话框。设置 Looker OAuth,即表示您明确同意 Looker 实例访问您的 Databricks 数据库。
  • 如需将 OAuth 用于 Databricks 连接,您必须拥有可用于 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. 点击 Settings 窗口中的 App Connections 标签页。
  4. App Connections 标签页中,点击 Add connection
  5. 在 Databricks 添加连接对话框中输入以下值:

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

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

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

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

  7. 复制并安全地存储 Databricks 生成的客户端 ID客户端密钥

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

在 Looker 中配置连接

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

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

功能支持

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

从 Looker 24.10 开始,Databricks 支持以下功能:

特征 是否支持?
支持级别
受支持
Looker (Google Cloud Core)
对称汇总
派生表
永久性 SQL 派生表
永久性原生派生表
稳定视图
终止查询
基于 SQL 的数据透视
时区
SSL
小计
JDBC 其他参数
区分大小写
位置类型
名单类型
百分位
不同百分位
SQL Runner 显示进程
SQL Runner 描述表
SQL Runner 显示索引
SQL Runner 选择 10
SQL 运行程序数量
SQL 说明
OAuth 凭据
上下文注释
连接池
HLL 素描
聚合感知
增量 PDT
毫秒
微秒
具体化视图
非重复近似计数