Looker 支持连接到 Cloud SQL for PostgreSQL,这是一项全代管式数据库服务,可帮助您在 Google Cloud上设置、维护、管理和控制 PostgreSQL 关系型数据库。
本页面提供有关如何从 Looker 连接到 Cloud SQL for PostgreSQL 的说明。
加密网络流量
对 Looker 应用与数据库之间的网络流量进行加密是一种最佳实践。可以考虑启用安全的数据库访问文档页面上介绍的某个选项。
如果您有兴趣使用 SSL 加密,请参阅 PostgreSQL 文档。
使用应用默认凭证 (ADC) 建立连接
对于 Looker (Google Cloud Core) 实例,应用默认凭证 (ADC) 可用作 Google Cloud SQL for PostgreSQL 的身份验证方法。为 Google Cloud SQL for PostgreSQL 设置 ADC 时,您必须执行以下步骤:
如需了解完整流程,请参阅 Looker (Google Cloud Core) 文档。
用户和安全性
为了对数据库执行操作,Looker 需要在您的数据库中有一个用户账号。
如果您使用的是 Looker (Google Cloud Core) 实例,并且想要使用 ADC,请使用您添加到 Cloud SQL 数据库的模拟服务账号用户名。服务账号用户名将采用 service-<project number>@gcp-sa-looker.iam.gserviceaccount.com 格式。如果您的服务账号用户名以 .gserviceaccount.com 结尾,请移除用户名中的 .gserviceaccount.com 部分。截断后,用户名将显示为 service-<project number>@gcp-sa-looker.iam。
如需配置供 Looker 使用的数据库用户,请在数据库中执行以下步骤:
创建数据库用户和密码。
CREATE USER USERNAME WITH ENCRYPTED PASSWORD 'PASSWORD';向数据库用户授予权限,以便 Looker 可以对您的数据库执行操作:
GRANT CONNECT ON DATABASE DATABASE_NAME to USERNAME; \c DATABASE_NAME GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO USERNAME; GRANT SELECT ON ALL TABLES IN SCHEMA public TO USERNAME;如果您使用的不是
public架构,请运行以下命令,向 Looker 授予使用权限:GRANT USAGE ON SCHEMA SCHEMA_NAME TO USERNAME;为确保您日后添加到公共架构中的表也可供 Looker 用户使用,请运行以下命令:
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON tables TO USERNAME; ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON sequences TO USERNAME;
根据您的设置,可能需要更改上述命令。如果其他用户或角色正在创建 Looker 用户日后需要权限的表,您必须指定一个目标角色或用户,以便将 Looker 用户的权限授予对象应用到该目标角色或用户:
ALTER DEFAULT PRIVILEGES FOR USER ANOTHER_USERNAME IN SCHEMA SCHEMA_NAME GRANT SELECT ON tables TO USERNAME;
ALTER DEFAULT PRIVILEGES FOR ROLE TARGET_ROLE IN SCHEMA SCHEMA_NAME GRANT SELECT ON sequences TO USERNAME;
例如,如果 web_app 用户创建了表,而您希望 looker 用户能够使用这些表,则必须运行 GRANT 语句,以向 looker 用户授予对 web_app 用户创建的表的权限。在这种情况下,目标角色或用户是 web_app 用户,这意味着您要更改 web_app 创建的表的权限,以便 looker 用户可以拥有读取表的权限。示例如下:
ALTER DEFAULT PRIVILEGES FOR USER web_app IN SCHEMA public GRANT SELECT ON tables TO looker;
如需了解详情,请访问 PostgreSQL 网站,参阅 ALTER DEFAULT PRIVILEGES。
临时架构设置
创建底层存储架构:
CREATE SCHEMA SCHEMA_NAME;
授予管理员用户用户角色的成员身份:
GRANT USERNAME TO ADMIN_USER;
将底层存储架构的所有权更改为 Looker 用户:
ALTER SCHEMA SCHEMA_NAME OWNER TO USERNAME;
设置 search_path
在将 Looker 连接到数据库之前,您应设置适当的 search_path,以便 Looker SQL Runner 可以使用该权限从数据库中检索某些元数据:
ALTER USER USERNAME SET search_path TO '$user',SCHEMA_NAME,SCHEMA_NAME_2,SCHEMA_NAME_3
^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^
include a comma-separated list of
all schemas that you'll use with Looker
创建 Looker 与数据库的连接
请按照以下步骤创建从 Looker 到数据库的连接:
执行以下任一操作,打开将数据库连接到 Looker 页面:
- 点击 主菜单图标,选择管理,然后从管理面板的数据库部分选择连接。在连接页面上,点击添加连接按钮。
- 点击主导航菜单中的创建按钮,然后选择连接菜单项。
从方言下拉菜单中,选择 Google Cloud PostgreSQL。
填写连接详情。大多数设置对于大多数数据库方言都是通用的。如需了解详情,请参阅将 Looker 连接到数据库文档页面。
如需验证连接是否成功,请点击测试。如需了解问题排查信息,请参阅测试数据库连接文档页面。
如需保存这些设置,请点击连接。
功能支持
为了让 Looker 支持某些功能,您的数据库方言也必须支持这些功能。
截至 Looker 26.4,Google Cloud PostgreSQL 支持以下功能:
| 功能 | 是否支持? |
|---|---|
| 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 | |
| 毫秒 | |
| 微秒 | |
| 具体化视图 | |
| 与前一时间段相比的指标 | |
| 近似计数不同 |