Snowflake Connector for MySQL 特征

备注

使用 Snowflake Connector for MySQL 需遵守 Connector 条款

版本支持

我们的一般策略是 Snowflake Connector for MySQL 支持任何官方支持的 MySQL 长期支持 (LTS) 版本。随着用户迁移到更新版本,我们将逐步停止对较旧版本的支持,并将在新版本发布时宣布对新版本的支持。

虽然连接器支持许多 MySQL 云版本,但其中一些需要额外设置。请参阅 Snowflake Connector for MySQL 数据源的先决条件

下表列出了经过测试和官方支持的版本。

官方支持的 PostgreSQL 版本的列表

8.0

8.4

Standard (https://www.mysql.com/)

AWS RDS (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html)

Amazon Aurora (https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/Welcome.html)

是,与版本 3 相同

GCP Cloud SQL (https://cloud.google.com/sql/mysql?hl=en)

Azure Database (https://azure.microsoft.com/en-us/products/mysql/)

服务器设置

要使连接器正常工作,请查看并调整 MySQL 服务器上的以下设置。

log_bin

设置为 on

这将启用记录结构和数据更改的二进制日志。

binlog_format

设置为 row

该连接器仅支持基于行的复制。MySQL 8.x 版本可能是最后一个支持此设置的版本,将来的版本将仅支持基于行的复制。

不适用于 GCP Cloud SQL,会固定在正确的值。

binlog_row_metadata

设置为 full

连接器需要所有行元数据才能运行,最重要的是,列名称和主键信息。

binlog_row_image

设置为 full

连接器要求将所有列写入二进制日志。

不适用于 Amazon Aurora,会固定在正确的值。

binlog_row_value_options

留空。

此选项仅影响 JSON 列,在这些列中可以设置为仅包含 JSON 文档中针对 UPDATE 语句修改过的部分。连接器要求将完整文档写入二进制日志。

binlog_expire_logs_seconds

设置为 至少 几个小时或更长时间,以确保数据库代理可以在长时间暂停或停机后继续增量复制。

如果您使用的是计划复制,则该值需要长于配置的计划。

二进制日志

MySQL 的二进制日志启用后,就会从给定实例中的 所有 表中收集变更。无法排除表或列。因此,连接器将接收来自数据库中所有表的变更,并且数据库代理将处理您为复制配置的表中的变更,但丢弃对所有其他表的变更。

每个变更都需要首先由数据库代理加载,对于某些 特别大的变更,例如 BLOB 列,即使它们是在未配置复制的表上创建的,这些列也可能会耗尽数据库代理的内存并导致其崩溃。如果在数据库中的任何位置存储特别大的值,请确保为数据库代理及其容器配置足够的内存。

事务大小 由 MySQL 的复制限值 (https://dev.mysql.com/doc/refman/8.4/en/group-replication-limitations.html#group-replication-limitations-transaction-size) 限制为 4 GB 以下。超过限制的事务将导致受影响表的复制永久失败。

代理身份验证

当前唯一支持的身份验证方法是用户名和密码。数据库代理配置中的每个数据源条目都包含其自己的一组凭据,并且每个数据源的凭据可能不同。

数据库代理的用户必须具有以下授权:

  • 所有架构和表的 REPLICATION SLAVE

  • 所有架构和表的 REPLICATION CLIENT

  • 所有架构和所有表的 SELECT

有关如何为数据库代理创建用户的说明,请参阅 创建所需的用户

语言: 中文