对网络流量进行加密
最佳做法是对 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-xxxxxxxx.cloud.databricks.com/
。 - Port:指定数据库端口。默认值为 443。
- 数据库:指定用于 Looker 查询的数据库的名称。默认值为
default
。 - Authentication:选择数据库帐号或 OAuth:
- 使用数据库账号指定将用于连接到 Looker 的 Databricks 个人访问令牌(如需查看相关说明,请参阅创建 Looker 用户部分)。
- 对于用户名,请输入值
token
(请勿在此字段中输入 Databricks 用户的电子邮件地址)。 - 对于密码,输入 Databricks 个人访问令牌。
- 对于用户名,请输入值
- 使用 OAuth 为连接配置 OAuth。有关详情,请参阅为 Databricks 连接配置 OAuth 部分。
- 使用数据库账号指定将用于连接到 Looker 的 Databricks 个人访问令牌(如需查看相关说明,请参阅创建 Looker 用户部分)。
- 启用 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 连接,您必须执行这些常规步骤,具体步骤如以下部分所述:
在 Databricks 中启用自定义 OAuth 应用
如需使用 OAuth 通过 Looker 与 Databricks 连接,您必须按照以下步骤启用 Looker 作为 Databricks 数据库的自定义 OAuth 应用:
- 登录 Databricks 帐号控制台。
- 点击侧边栏中的设置图标。
- 点击 Settings 窗口中的 App Connections 标签页。
- 在 App Connections 标签页中,点击 Add connection。
在 Databricks 添加连接对话框中输入以下值:
- Application Name:提供描述性名称,如“Looker 集成”。
重定向网址:使用以下格式(将
example.looker.com
替换为您的 Looker 实例的网址)输入 Looker 网址,Databricks 将在成功授权后将用户重定向到其中:https://example.looker.com/external_oauth/redirect
访问权限范围:选择 SQL 以允许 Looker 通过 SQL 查询数据。
生成客户端密钥:启用此选项。
在 Databricks 添加连接对话框中点击添加。
复制并安全地存储 Databricks 生成的客户端 ID 和客户端密钥。
注册 OAuth 应用最多可能需要 30 分钟才能在 Databricks 数据库中完成处理。如需了解详情,请参阅官方 Databricks 文档。
在 Looker 中配置连接
在 Databricks 数据库中将 Looker 配置为自定义 OAuth 应用后,您可以配置使用 OAuth 的 Looker 与 Databricks 连接。
- 在 Looker 的管理部分中,选择连接,然后点击添加连接。
- 按照本页面的创建与数据库的 Looker 连接部分所述,填写连接详细信息。
- 在 Authentication(身份验证)字段中,选择 OAuth 选项。
- 选择 OAuth 选项后,Looker 会显示 OAuth 客户端 ID 和 OAuth 客户端密钥字段。对于这些值,请输入在 Databricks 中将 Looker 作为自定义 OAuth 应用启用时,Databricks 生成的客户端 ID 和客户端密钥。
- 选择 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 | 是 |
毫秒 | 是 |
微秒 | 是 |
具体化视图 | 否 |
非重复近似计数 | 否 |