Amazon RDS for MySQL

加密网络流量

对 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
毫秒
微秒
具体化视图
与前一时间段相比的指标
近似计数不同