加密网络流量
对 Looker 应用与数据库之间的网络流量进行加密是一种最佳实践。可以考虑启用安全的数据库访问文档页面上介绍的某个选项。
如果您有兴趣使用 SSL 加密,请参阅 MySQL RDS 文档。
选项
出于性能方面的考虑,通常会使用只读副本数据库(也称为读取副本)搭配 Looker。这样,生产数据库就可以执行其主要功能,而不会因任何查询而可能变慢。
本文档介绍了如何执行以下任一操作:
- 修改现有副本数据库以搭配 Looker 使用
- 创建新的读取副本数据库并将其配置为搭配 Looker 使用
修改现有副本
用户和安全性
将 <some_password_here> 更改为唯一的安全密码:
CREATE USER looker;
SET PASSWORD FOR looker = PASSWORD ('<some_password_here>');
GRANT SELECT ON database_name.* TO 'looker'@'%';
RDS 和临时表
默认情况下,RDS 读取副本会启用只读标志,以防止 Looker 写入临时表。Looker 实际上从不更改现有数据,但 MySQL 仍需要写入权限才能使用临时表。您可以通过更改 RDS 中的标志来解决此问题。请参阅 RDS 常见问题解答:
问:我的读取副本是否只能接受数据库读取操作?
读取副本旨在处理读取流量。不过,在某些用例中,高级用户可能希望针对读取副本完成数据定义语言 (DDL) SQL 语句。例如,向用于业务报告的读取副本添加数据库索引,而无需向相应的源数据库实例添加相同的索引。
您可以将 Amazon RDS for MySQL 配置为允许针对读取副本执行 DDL SQL 语句。如果您希望为给定的读取副本启用读取以外的操作,请修改读取副本的有效 数据库参数组,将 read_only 参数设置为 0。
Amazon RDS for PostgreSQL 目前不支持针对读取副本执行 DDL SQL 语句。
如果您更改了数据库参数组,则需要重启读取副本,更改才会生效。
创建数据库并授予权限
创建一个临时数据库,并向 looker 用户授予向该数据库写入的权限。MySQL 中的 CREATE TEMPORARY 语句需要与数据库关联,以用于权限目的。
CREATE SCHEMA looker_tmp;
GRANT
SELECT,
INDEX,
INSERT,
UPDATE,
DELETE,
CREATE,
DROP,
ALTER,
CREATE TEMPORARY TABLES
ON looker_tmp.* TO 'looker'@'%';
创建新副本
请注意,AWS RDS 只能使用已激活备份保留 功能的数据库实例创建读取副本。
AWS 之前的步骤
第 1 步
mysql 进入将成为主数据库实例的数据库:
mysql -h hostname.uid.region.rds.amazonaws.com -P 3306 -u root -p
第 2 步
创建一个名为 looker 的用户(将 <some_password_here> 替换为唯一的安全密码):
CREATE USER looker IDENTIFIED BY '<some_password_here>';
第 3 步
创建一个临时数据库,并向 Looker 授予对其他数据库和表的读取权限。Looker 通常不会写入 looker_tmp 数据库,但会使用该数据库执行 CREATE TEMPORARY TABLE 命令。
CREATE SCHEMA looker_tmp;
GRANT
SELECT,
INDEX,
INSERT,
UPDATE,
DELETE,
CREATE,
DROP,
ALTER,
CREATE TEMPORARY TABLES
ON looker_tmp.* TO 'looker'@'%';
GRANT
SELECT,
SHOW DATABASES
ON *.* TO 'looker'@'%';
第 4 步
刷新权限:
FLUSH PRIVILEGES;
AWS 步骤
第 1 步
登录并前往 AWS 信息中心。在数据库 部分中,选择 RDS 。

第 2 步
在 RDS 信息中心内,选择要指定为主数据库的数据库实例。选择实例操作 ,然后选择创建读取副本 。

第 3 步
在创建读取副本数据库实例 弹出式窗口中,配置读取副本数据库,然后选择是,创建读取副本 。

第 4 步
在等待创建读取副本数据库期间,您可以设置数据库参数组,其中将包含应用于读取副本数据库实例的引擎配置值。在边栏中选择数据库参数组 页面,然后选择创建数据库参数组 按钮。

第 5 步
选择数据库参数组系列 和数据库参数组名称 ,然后输入数据库参数组说明 。然后选择是,创建 。
第 6 步
选择包含读取副本数据库参数组的行中的放大镜图标,或者选择该行,然后选择修改参数 。
第 7 步
在参数 下的过滤条件 字段中,搜索“read_only”。将参数值更改为 0。然后选择保存更改 。
第 8 步
读取副本创建完成后,从数据库实例列表中选择该副本,选择实例操作 按钮,然后在实例操作中选择修改 。
第 9 步
在修改数据库实例 弹出式窗口中,将数据库实例参数组 更改为新的读取副本参数组。然后选中立即应用 框,选择继续 ,然后选择修改数据库实例 。
第 10 步
使用 MySQL 客户端,以 looker 身份连接到读取副本数据库实例,并进行测试以查看是否可以访问数据。
创建 Looker 与数据库的连接
在 Looker 的管理 部分中,选择连接 ,然后点击添加连接 。
填写连接详情。大多数设置对于大多数数据库方言都是通用的。如需了解相关信息,请参阅将 Looker 连接到您的数据库文档页面。
如需验证连接是否成功,请点击测试 。如需了解问题排查信息,请参阅测试数据库连接文档页面。
如需保存这些设置,请点击连接 。
功能支持
如需让 Looker 支持某些功能,您的数据库方言也必须支持这些功能。
截至 Looker 26.2,MySQL 支持以下功能:
| 功能 | 是否支持? |
|---|---|
| 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 | |
| 毫秒 | |
| 微秒 | |
| 具体化视图 | |
| 与前一时间段相比的指标 | |
| 近似计数不同 |