本页面介绍了如何将 Looker 连接到 PrestoDB 或 Trino。
对网络流量进行加密
最佳做法是对 Looker 应用和数据库之间的网络流量进行加密。请考虑启用安全的数据库访问文档页面中所述的选项之一。
正在创建与数据库的 Looker 连接
在 Looker 的管理部分中,选择连接,然后点击添加连接。
填写连接详情。大多数设置对大多数数据库方言都是通用的。如需了解详情,请参阅将 Looker 连接到您的数据库文档页面。部分设置如下所述:
方言:选择 PrestoDB 或 Trino。
PrestoSQL 已更名为 Trino。如果您使用的是低于 352 的 Trino 版本,请从 Looker 方言菜单中选择 PrestoSQL。
主机:数据库主机名。
端口:数据库端口。默认端口为 8080。
数据库:“目录”或“连接器”使用 Presto 术语定义。
用户名:将运行查询的用户的用户名。
只有在启用了 SSL 的情况下,此信息才会发送到数据库服务器。
密码:将运行查询的用户的密码。
只有在启用了 SSL 的情况下,此信息才会发送到数据库服务器。
架构:未指定架构时要使用的默认架构。
Authentication:选择数据库账号或 OAuth:
- 使用数据库账号指定将用于连接到 Looker 的数据库用户账号的用户名和密码。
- 如果要为连接配置 OAuth,请使用 OAuth。
启用 PDT:使用此切换开关可启用永久性派生表 (PDT)。系统会显示其他 PDT 字段以及连接的 PDT 覆盖部分。
临时数据库:用于写入 PDT 的架构。(版本 3.50 为 Presto 添加了 PDT 支持。如需详细了解如何配置 Presto 以支持 PDT,请参阅本页面中的为 PDT 配置 PrestoDB 或 Trino 部分)。
其他 JDBC 参数:PrestoDB JDBC 驱动程序、Trino JDBC 驱动程序或 Starburst JDBC 驱动程序的所有其他参数。
SSL:选中即可启用 SSL 连接。
Verify SSL:忽略此字段。所有 SSL 连接都将使用默认的 Java Truststore,除非另有指示,使用 PrestoDB JDBC 参数、Trino JDBC 驱动程序或 Starburst JDBC 驱动程序。在其他 JDBC 参数字段中输入这些参数。
如需验证连接是否成功,请点击测试。如需了解问题排查信息,请参阅测试数据库连接文档页面。
要保存这些设置,请点击连接。
如需详细了解连接设置,请参阅将 Looker 连接到您的数据库文档页面。
为 PDT 配置 PrestoDB 或 Trino
使用 OAuth 的连接不支持 PDT。
PDT 支持取决于您与 PrestoDB 或 Trino 搭配使用的连接器。本部分介绍了暂存数据库的必要配置设置。此示例假定您使用的连接器为 hive
。
Hive 目录属性文件应包含本部分介绍的几个配置属性。
以下是必需的,因为 Presto 会缓存 Hive Metastore 结果,而 Looker 需要能够立即查看这些表:
hive.metastore-cache-ttl = 0s
这两个属性是必需的,因为 Looker 需要能够删除和重命名 PDT:
hive.allow-rename-table=true
hive.allow-drop-table=true
作为参考,在我们的内部 Presto 测试服务器中,我们使用以下 hive.properties
文件,该文件用于所有 Hive 架构:
hive.s3.connect-timeout=1m
hive.s3.max-backoff-time=10m
hive.s3.max-error-retries=50
hive.metastore-cache-ttl = 0s
hive.metastore-refresh-interval = 5s
hive.s3.max-connections=500
hive.s3.max-client-retries=50
connector.name=hive-hadoop2
hive.s3.socket-timeout=2m
hive.s3.staging-directory=/mnt/tmp/
hive.s3.use-instance-credentials=true
hive.config.resources=/etc/hadoop/conf/core-site.xml,/etc/hadoop/conf/hdfs-site.xml
hive.parquet.use-column-names=true
hive.allow-drop-table=true
hive.metastore.uri=thrift://<metastore-server>:9083
hive.storage-format=ORC
hive.allow-rename-table=true
为 Trino 连接配置 OAuth
Looker 支持将 OAuth 用于 Trino 连接,这意味着每个 Looker 用户都会在数据库中进行身份验证,并授权 Looker 使用自己的 OAuth 用户账号在数据库上运行查询。
利用 OAuth,数据库管理员可以执行以下任务:
- 审核哪些 Looker 用户正在对数据库运行查询
- 使用数据库级权限实施基于角色的访问权限控制
- 为访问数据库的所有进程和操作使用 OAuth 令牌,而不是在多个位置嵌入数据库 ID 和密码
- 直接通过数据库撤消指定用户的授权
对于使用 OAuth 的 Trino 连接,用户必须定期在 OAuth 令牌过期后重新登录。
对于数据库级 OAuth 连接,请注意以下事项:
- 如果用户允许其 OAuth 令牌过期,则其拥有的任何时间表或提醒都会受到影响。为防止出现这种情况,Looker 会在当前有效的 OAuth 令牌到期之前,分别向每个时间表和每个提醒的所有者发送电子邮件通知。Looker 会在令牌过期前 14 天、7 天和 1 天发送这些电子邮件通知。用户可以前往 Looker 用户页面,重新授权 Looker 对数据库,以免其时间安排和提醒发生任何中断。有关详情,请参阅对用户账号设置进行个性化设置文档页面。
- 由于使用 OAuth 的数据库连接是“每个用户”的缓存政策也是针对每位用户的,而不仅仅是针对每个查询的。这意味着,当在缓存期内运行同一查询时,Looker 不会使用缓存的结果,而是仅当同一用户在缓存期间运行同一查询时才使用缓存的结果。如需详细了解缓存,请参阅缓存查询文档页面。
- 使用 OAuth 的 Trino 连接不支持永久性派生表 (PDT)。
- 当 Looker 管理员以 sudo 作为其他用户时,管理员将使用该用户的 OAuth 访问令牌。如果用户的访问令牌已过期,管理员将无法代表 sudoed 用户创建新令牌。如需了解如何使用
sudo
命令,请参阅用户文档页面。 - 使用 OAuth 从 Looker 登录 Azure AD 时,Looker 不会显示明确的用户意见征求对话框。设置 Looker OAuth,即表示您隐式同意 Looker 实例访问您的 Trino 数据。
注册应用
如需为 Trino 启用 OAuth,请先使用受支持的身份提供方注册应用。Looker 仅支持使用 Microsoft Entra ID(以前称为 Azure AD)使用 Trino 的 OAuth。
前提条件
- 您必须拥有 Azure 订阅。
- 您必须在 Microsoft Entra ID 中拥有管理员权限。
如需注册应用,请按以下步骤操作:
- 转到 Azure 门户并使用您的凭据登录。
- 在 Azure 门户搜索栏中,搜索“Microsoft Entra ID”并从结果中选择它
- 在 Microsoft Entra ID 服务中,点击管理类别的应用注册部分中的新注册。
- 请按以下步骤填写注册表单:
<ph type="x-smartling-placeholder">
- </ph>
- Name:为应用提供描述性名称,例如
Looker Trino Connection
。 - 支持的账号类型:根据您所需的访问权限限制方式选择相应的选项。对于内部用例,您可以选择仅限此组织目录中的账号。
- 重定向 URI:选择网页平台,然后输入您的 Looker 重定向 URI。它应类似于
https://YOUR_LOOKER_HOSTNAME/external_oath/redirect
。
- Name:为应用提供描述性名称,例如
- 点击注册。
- 收集客户端 ID、租户 ID 和客户端密钥,以便稍后输入到 Looker 关联中。
- 您可以在概览页面中找到客户端 ID 和租户 ID。
- 如果您不知道自己的客户端密钥,则需要创建一个新的客户端密钥。点击证书和Secrets(位于管理部分),然后点击New client secret。
- 点击管理部分中的公开 API。
- 点击应用 ID URI 旁边的添加。
- 输入您的客户端 ID。它应采用以下格式:
api://CLIENT_ID
。
接下来,在 Azure 门户中按照以下步骤创建一个用于 Looker 的新范围:
- 在此 API 定义的范围部分中点击添加范围。
为新范围添加范围名称。Looker 预计您的范围名称为:
TrinoUsers.Read.All
。名称
TrinoUsers.Read.All
表示只读权限,但名称本身并不会实际设置或强制执行任何权限。请务必将范围设置为只允许对数据库进行读取访问。添加显示名称和说明。
在谁可以选择同意?选择器中,选择管理员和用户。
点击添加范围。
在已获授权的客户端应用部分中,点击添加客户端应用。
输入您的客户端 ID 和新创建的范围。
点击 Add Application(添加应用)。
接下来,如需向 Looker 授予必要的 API 权限,请按以下步骤操作:
- 在管理部分,点击 API 权限。
- 点击添加权限。
- 选择顶部的我的 API 标签页。
- 在应用注册列表中,选择您刚刚创建的注册,例如
Looker Trino Connection
。 - 选中委托的权限复选框。
- 选中 TrinoUsers.Read.All 复选框。
- 选择添加权限。
配置数据库以使用 OAuth
接下来,如需将 Trino 数据库配置为使用 OAuth,请将以下行添加到 Trino config.properties
文件中。(将前五行大写变量替换为您自己的值。)
YOUR_HTTPS_PORT
PATH_TO_YOUR_SSL_CERTIFICATE
YOUR_TENANT_ID
YOUR_CLIENT_ID
YOUR_SHARED_SECRET
# enable SSL for OAuth
http-server.https.enabled=true
http-server.https.port=YOUR_HTTPS_PORT
http-server.https.keystore.path=PATH_TO_YOUR_SSL_CERTIFICATE
# enable OAuth 2.0
http-server.authentication.type=oauth2
http-server.authentication.oauth2.issuer=https://sts.windows.net/YOUR_TENANT_ID/
http-server.authentication.oauth2.client-id=NA_required_but_not_used
http-server.authentication.oauth2.client-secret=NA_required_but_not_used
# turn off oidc discovery - Trino will inspect tokens locally instead
http-server.authentication.oauth2.oidc.discovery=false
# URLs that Trino requires for OAuth
http-server.authentication.oauth2.jwks-url=https://login.microsoftonline.com/common/discovery/v2.0/keys
http-server.authentication.oauth2.auth-url=NA_required_but_not_used
http-server.authentication.oauth2.token-url=NA_required_but_not_used
# add audience that matches the Azure AD's Application ID URI
http-server.authentication.oauth2.additional-audiences=api://YOUR_CLIENT_ID
# set shared-secret required for internal Trino communication when authentication is enabled, see: https://github.com/trinodb/trino/issues/12397
# can be generated with the following Linux command: openssl rand 512 | base64
internal-communication.shared-secret=YOUR_SHARED_SECRET
# optionally, allow some insecure http traffic
# http-server.authentication.allow-insecure-over-http=true
登录以运行查询
将数据库连接设置为使用 OAuth 后,系统会提示用户登录 Microsoft Entra ID,然后您才能运行查询。这包括来自探索、信息中心、Look 和 SQL Runner 的查询。
用户也可以从账号页面上的 OAuth 连接凭据部分登录 Microsoft Entra ID。
如需使用 Looker 登录 Microsoft Entra ID,请执行以下操作:
- 点击 Looker 用户菜单。
- 选择账号。
- 在 Account(账号)页面上,点击 OAuth Connection Credentials(OAuth 连接凭据)部分中的 Log In(登录)。
此操作将显示登录对话框。输入您的 Microsoft Entra ID 凭据,然后选择登录,以授予 Looker 对您的数据库账号的访问权限。
通过 Looker 登录 Microsoft Entra ID 后,您可以随时通过账号页面退出或重新授权凭据,如个性化您的用户账号文档页面中所述。
参考
如需详细了解如何配置 Hive 连接器,请参阅 PrestoDB Hive Connector、Trino Hive Connector 或 Starburst Hive 连接器。
功能支持
要让 Looker 支持某些功能,您的数据库方言也必须支持这些功能。
从 Looker 24.12 开始,PrestoDB 支持以下功能:
特征 | 是否支持? |
---|---|
支持级别 | 受支持 |
Looker (Google Cloud Core) | 是 |
对称汇总 | 是 |
派生表 | 是 |
永久性 SQL 派生表 | 是 |
永久性原生派生表 | 是 |
稳定视图 | 是 |
终止查询 | 是 |
基于 SQL 的数据透视 | 是 |
时区 | 是 |
SSL | 是 |
小计 | 是 |
JDBC 其他参数 | 是 |
区分大小写 | 是 |
位置类型 | 是 |
名单类型 | 是 |
百分位 | 是 |
不同百分位 | 否 |
SQL Runner 显示进程 | 是 |
SQL Runner 描述表 | 是 |
SQL Runner 显示索引 | 否 |
SQL Runner 选择 10 | 是 |
SQL 运行程序数量 | 是 |
SQL 说明 | 是 |
OAuth 凭据 | 否 |
上下文注释 | 是 |
连接池 | 否 |
HLL 素描 | 是 |
聚合感知 | 是 |
增量 PDT | 否 |
毫秒 | 是 |
微秒 | 否 |
具体化视图 | 否 |
非重复近似计数 | 是 |
从 Looker 24.12 开始,Trino 支持以下功能:
特征 | 是否支持? |
---|---|
支持级别 | 受支持 |
Looker (Google Cloud Core) | 是 |
对称汇总 | 是 |
派生表 | 是 |
永久性 SQL 派生表 | 是 |
永久性原生派生表 | 是 |
稳定视图 | 否 |
终止查询 | 是 |
基于 SQL 的数据透视 | 是 |
时区 | 是 |
SSL | 是 |
小计 | 是 |
JDBC 其他参数 | 是 |
区分大小写 | 是 |
位置类型 | 是 |
名单类型 | 是 |
百分位 | 是 |
不同百分位 | 否 |
SQL Runner 显示进程 | 是 |
SQL Runner 描述表 | 是 |
SQL Runner 显示索引 | 否 |
SQL Runner 选择 10 | 是 |
SQL 运行程序数量 | 是 |
SQL 说明 | 是 |
OAuth 凭据 | 是 |
上下文注释 | 是 |
连接池 | 否 |
HLL 素描 | 是 |
聚合感知 | 是 |
增量 PDT | 否 |
毫秒 | 是 |
微秒 | 否 |
具体化视图 | 否 |
非重复近似计数 | 是 |
后续步骤
将数据库连接到 Looker 后,请为用户配置登录选项。