加密网络流量
对 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部分。
- 使用数据库账号 指定将用于连接到 Looker 的 Databricks 个人访问令牌(如需了解相关说明,请参阅创建 Looker 用户部分)。
- 启用 PDT:使用此切换开关启用永久性派生表。启用 PDT 后,连接 窗口会显示其他 PDT 设置和 PDT 替换 部分。 注意:对于使用 OAuth 的 Databricks 连接,不支持 PDT。
- 临时数据库:输入您要用于存储 PDT 的数据库。
- PDT 构建器连接数上限:指定此连接上可能同时进行的 PDT 构建数量。将此值设置得过高可能会对查询时间产生负面影响。如需了解详情,请参阅将 Looker 连接到数据库文档页面。
其他 JDBC 参数:添加任何其他 JDBC 参数。如需查看 Looker 支持的参数列表,请参阅本页面的支持的 JDBC 参数部分。
维护时间表:一个
如果您保留默认值,Looker 将每 5 分钟调用一次 Databricks 数据库。此频率可能会阻止 Databricks 集群关闭,从而导致意外费用。请考虑将默认值更改为频率较低的间隔,以避免产生这些费用。cron表达式,用于指示 Looker 何时应检查 数据组 和永久性派生表。如需详细了解此设置,请参阅维护时间表文档。SSL:选中此选项可使用 SSL 连接。
验证 SSL:选中此选项可强制执行严格的 SSL 证书验证。
每个节点的最大连接数:您可以先将此设置保留为默认值。如需详细了解此设置,请参阅每个节点的最大连接数部分的将 Looker 连接到数据库文档页面。
连接池超时:您可以先将此设置保留为默认值。如需详细了解此设置,请参阅连接池超时部分的将 Looker 连接到数据库文档页面。
SQL Runner 预缓存:如需让 SQL Runner 不预加载表信息,并且仅在选择表时加载表信息,请取消选中此复选框。如需详细了解此设置,请参阅 SQL Runner 预缓存 文档页面的 将 Looker 连接到数据库 部分。
数据库时区:指定要在数据库中使用的时区。如果您不想进行时区转换,请将此字段留空。如需了解详情,请参阅使用时区设置文档页面。
点击测试 以测试连接,并确保连接配置正确无误。如果您看到可以连接 ,请按连接 。这会运行其余的连接测试,以验证服务帐号是否已正确设置并具有适当的角色。如需了解问题排查信息,请参阅测试数据库连接文档页面。
Looker 功能与 Databricks Unity Catalog
Looker 支持连接到启用了 Unity Catalog 的 Databricks 数据库。您可以在创建 Looker 与数据库的连接时,或在修改与 Databricks 数据库的现有 Looker 连接时,在 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 用户都必须登录数据库,并使用自己的 OAuth 用户账号授权 Looker 在数据库上运行查询。
借助 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 访问令牌。如果用户的访问令牌已过期,管理员无法代表 sudo 用户创建新令牌。如需了解如何使用
sudo命令,请参阅 用户 文档页面。 - 当用户使用 OAuth 从 Looker 登录 Databricks 时,Looker 不会显示明确的用户同意对话框。通过使用 Looker 设置 OAuth,您即表示隐式同意 Looker 实例访问您的 Databricks 数据库。
- 如需对 Databricks 连接使用 OAuth,您必须拥有可用于 Looker 查询的 Databricks 用户或服务正文,并且必须为用户和服务正文提供 Looker 需要的 Databricks 权限,以便访问数据源并在 Databricks 中执行所需的操作。
如需使用 OAuth 创建 Looker 的 Databricks 连接,您必须执行以下一般步骤,这些步骤将在以下部分中详细介绍:
在 Databricks 中启用自定义 OAuth 应用
如需对 Looker 与 Databricks 的连接使用 OAuth,您必须按照以下步骤将 Looker 启用为 Databricks 数据库的自定义 OAuth 应用:
- 登录 Databricks 账号控制台。
- 点击侧边栏中的设置 图标。
- 在设置 窗口中,点击 App Connections (应用连接)标签页。
- 在 App Connections (应用连接)标签页中,点击添加连接 。
在 Databricks 添加连接 对话框中输入以下值:
- 应用名称:提供描述性名称,例如“Looker 集成”。
重定向网址:输入 Looker 网址,Databricks 将在此网址上重定向成功授权的用户,格式如下(将
example.looker.com替换为 Looker 实例的网址):https://example.looker.com/external_oauth/redirect访问权限范围:选择 SQL,以允许 Looker 通过 SQL 查询数据。
生成客户端密钥:启用此选项。
在 Databricks 添加连接 对话框中,点击添加 。
复制并安全存储 Databricks 生成的客户端 ID 和客户端密钥 。
在 Databricks 数据库上注册 OAuth 应用可能需要最多 30 分钟的处理时间。如需了解详情,请参阅官方 Databricks 文档。
在 Looker 中配置连接
在 Databricks 数据库上将 Looker 配置为自定义 OAuth 应用后,您可以配置使用 OAuth 的 Looker 与 Databricks 的连接。
- 在 Looker 的管理 部分中,选择连接 ,然后点击添加连接 。
- 填写连接详情,如本页面的创建 Looker 与数据库的连接部分中所述。
- 在身份验证字段中,选择OAuth选项。
- 选择 OAuth 选项后,Looker 会显示 OAuth 客户端 ID 和 OAuth 客户端密钥 字段。对于这些值,请输入您在 Databricks 中将 Looker 启用为自定义 OAuth 应用时由 Databricks 生成的客户端 ID和客户端密钥。
- 选择连接设置 页面底部的测试 按钮,确保 Looker 可以成功建立 OAuth 流程并连接到您的 Databricks 实例。
支持的 JDBC 参数
对于 Databricks,Looker 支持连接的其他 JDBC 参数 字段中的以下 JDBC 参数。如需了解这些参数,请参阅数据库的相关文档。
Auth_FlowAuthMechcatalogSchemaSwitchConnSchemahttpPathLogLevelOAuth2ClientIdOAuth2SecretPWDSocketTimeoutssltransportModeUIDUserAgentEntry
功能支持
如需让 Looker 支持某些功能,您的数据库方言也必须支持这些功能。
截至 Looker 26.6,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 | |
| 毫秒 | |
| 微秒 | |
| 具体化视图 | |
| 与前一时间段相比的指标 | |
| 近似计数不同 | |
| 自定义日历 |