加密网络流量
对 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 you'll use with Looker
service-<project number>@gcp-sa-looker.iam.gserviceaccount.com。如果服务帐号用户名以 .gserviceaccount.com 结尾,请移除用户名的 .gserviceaccount.com 部分。截断后,用户名将类似于 service-<project number>@gcp-sa-looker.iam.
创建 Looker 与数据库的连接
请按照以下步骤创建从 Looker 到数据库的连接:
- 在 Looker 的管理 部分中,选择连接 ,然后点击添加连接 。
- 从方言 下拉菜单中,选择 Google Cloud PostgreSQL 。
- 填写连接详情。这些设置中的大多数设置对于大多数数据库方言都是通用的。如需了解相关信息,请参阅将 Looker 连接到数据库文档页面。
- 如需验证连接是否成功,请点击测试 。如需了解问题排查信息,请参阅测试数据库连接文档页面。
- 如需保存这些设置,请点击连接 。
功能支持
如需让 Looker 支持某些功能,您的数据库方言也必须支持这些功能。
截至 Looker 26.0,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 | |
| 毫秒 | |
| 微秒 | |
| 具体化视图 | |
| 与前一时间段相比的指标 | |
| 近似计数不同 |