繁体   English   中英

自动将RDS(MySQL)模式复制到AWS Redshift的最佳方法是什么?

[英]What is the best way to automate replication of RDS (MySQL) schema to AWS Redshift?

我们使用ruby脚本将数据从MySQL迁移到Redshift(PostgreSQL)。当前,我们使用YAML配置文件来维护架构信息(列名和类型)。因此,每当更改MySQL表时,我们都需要手动更改YAML文件。 ,我们正在考虑将YAML配置作为JSON对象移至数据库(PSQL)。 但是仍然需要手动更改架构配置,我们希望使流程自动化(最好使用Ruby)。

PS:我们使用bin-log增量更新AWS Redshift中的数据。

有两种可能的解决方案。

第一个是使用AWS Data Pipeline。 这是一项在不同的AWS计算和存储服务之间移动数据的服务。 https://aws.amazon.com/datapipeline/

另一种选择是使用数据集成工具,例如Alooma。 它可以近乎实时地将表从Amazon RDS上托管的MySQL数据库复制到AWS Redshift

它支持您正在使用的二进制日志复制方法。

请按照以下步骤复制数据:

为托管的MySQL设置bin-log:

要复制MySQL表,Alooma需要将基于行的复制设置为能够读取MySQL事件。

  1. 通过运行以下语句验证您的binlog是否已配置-返回的值应为ROW:

    mysql> SHOW GLOBAL VARIABLES LIKE 'binlog_format';

  2. 验证您的binlog行格式设置为FULL:

    mysql> SHOW GLOBAL VARIABLES LIKE 'binlog_row_image';

  3. 验证您的日志从属更新选项设置为“开”:

    mysql>显示全局变量,如“ log_slave_updates”;

如果您的MySQL当前未设置为基于行的复制,则需要对其进行设置。

  1. 在my.cnf文件中(在/ etc / mysql /下)包括以下行。 以下示例适用于“原始” MySQL 5.6安装:

    [mysqld] log-bin = mysql-bin服务器ID = 1 binlog_format = ROW log-slave-updates = true

  2. 确保重新启动MySQL服务器以获取更改。

  3. 创建一个Alooma用户,类似于MySQL从用户:

    mysql>创建用户'alooma'@'%'由'YOUR_PASSWORD'标识;

    mysql> GRANT REPLICATION SLAVE,SELECT,RELOAD,REPLICATION CLIENT,LOCK TABLES,EXECUTE ON 到'alooma'@'%';

    mysql>冲洗特权;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM