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

问题描述:

我们使用Ruby脚本从MySQL数据迁移到红移(PostgreSQL系统)。目前我们使用YAML配置文件来维护架构信息(列名和类型)。所以,每当一个MySQL表被改变,我们需要手动更改YAML文件。现在,我们正在考虑将YAML配置作为JSON对象移动到数据库(PSQL)。但是我们仍然需要手动更改架构configurations.We要自动运行的过程中(最好是用Ruby)将RDS(MySQL)模式复制到AWS Redshift的最佳方式是什么?

PS:我们用彬登录逐步更新在AWS红移数据。

+0

您是否考虑过AWS数据库迁移服务? – talentedmrjones

有几种可能的解决方案给你。

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

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

它支持您所使用的Bin日志复制方法。

按照此步骤,以复制数据:

建立斌日志托管的MySQL:

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

  1. 验证您的二进制日志是通过运行下面的语句配置 - 返回的值应该是ROW:

    mysql> SHOW GLOBAL VARIABLES LIKE 'binlog_format';

  2. 确认您的二进制日志记录格式设置为FULL:

    mysql> SHOW GLOBAL VARIABLES LIKE 'binlog_row_image';

  3. 确认您的日志从属更新选项已设置为ON:

    的MySQL> SHOW GLOBAL VARIABLES LIKE 'log_slave_updates';

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

  1. 在my.cnf文件(在/ etc/mysql /下)中包含以下行。下面的示例为 “香草” 的MySQL 5.6安装:

    的[mysqld] 日志斌= MySQL的宾 服务器ID = 1个 binlog_format = ROW 数从属更新=真

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

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

    的MySQL>创建用户 'alooma' @ '%' IDENTIFIED BY 'YOUR_PASSWORD';

    mysql> GRANT REPLICATION SLAVE,SELECT,RELOAD,REPLICATION CLIENT, 锁表,执行 TO'alooma'@'%';

    mysql> FLUSH PRIVILEGES;