0

루비 스크립트를 사용하여 MySQL의 데이터를 Redshift (PostgreSQL)로 마이그레이션합니다. 현재 우리는 YAML 구성 파일을 사용하여 스키마 정보 (열 이름 및 유형)를 유지합니다. 따라서 MySQL 테이블이 변경 될 때마다 YAML 파일을 수동으로 변경해야합니다 이제 우리는 YAML 설정을 JSON 객체로 데이터베이스 (PSQL)로 옮길 생각이다. 그러나 우리는 수동으로 스키마 구성을 변경해야합니다. 우리는 프로세스를 자동화하고 싶습니다. (Ruby 사용이 바람직 함)RDS (MySQL) 스키마를 AWS Redshift로 자동 복제하는 가장 좋은 방법은 무엇입니까?

추 신 : 우리는 bin-log를 사용하여 AWS Redshift에서 데이터를 증분 업데이트합니다.

+0

AWS 데이터베이스 마이그레이션 서비스를 고려해 보셨습니까? – talentedmrjones

답변

0

몇 가지 가능한 해결책이 있습니다.

첫 번째는 AWS 데이터 파이프 라인을 사용하는 것입니다. 서로 다른 AWS 컴퓨팅 및 스토리지 서비스간에 데이터를 이동시키는 서비스입니다. (https://aws.amazon.com/datapipeline/)

또 다른 옵션은 Alooma와 같은 데이터 통합 ​​도구를 사용하는 것입니다. 거의 실시간으로 Amazon RDS to a AWS Redshift에 호스팅 된 MySQL 데이터베이스의 테이블을 복제 할 수 있습니다.

사용중인 bin-log 복제 방법을 지원합니다.

데이터를 복제하기 위해이 단계를 수행

는 MySQL의 테이블을 복제하려면 Alooma 읽을 수 있도록 설정해야 행 기반 복제를 필요로 :

호스팅 MySQL을위한 빈 - 로그 설정 MySQL 이벤트.

mysql> SHOW GLOBAL VARIABLES LIKE 'binlog_format';

  • 가 확인 귀하의 바이너리 로그 행 형식이 FULL로 설정되어 있는지 :

    -
    1. 이 바이너리 로그가 아래 문을 실행하여 구성되어 있는지 확인 값은 ROW해야한다 반환

      mysql> SHOW GLOBAL VARIABLES LIKE 'binlog_row_image';

    2. 로그 슬레이브 업데이트 옵션이 설정되어 있는지 확인하십시오. ~ ON :

      mysql> 같이 표시 전역 변수 'log_slave_updates';

    MySQL이 현재 행 기반 복제로 설정되지 않은 경우이를 설정해야합니다.

    1. my.cnf 파일 (/ etc/mysql/아래)에 다음 행을 추가하십시오.

      [mysqld를] 진정한 로그인 빈 = mysql을 - 빈 서버 ID = 1 binlog_format = ROW 로그 노예 업데이트 =

    2. : 아래의 샘플은 "바닐라"MySQL을 5.6 설치를 위해입니다

      변경 사항을 적용하려면 MySQL 서버를 다시 시작하십시오.

    3. MySQL의 노예 사용자 유사한 Alooma 사용자를 작성하십시오

      MySQL의> USER 'alooma'@ '%', '_ 암호'로 식별을 만들;

      mysql> GRANT REPLICATION SLAVE, SELECT, RELOAD, REPLICATION CLIENT, 잠김 테이블, 실행 . 대상 'alooma'@ '%';

      mysql> FLUSH PRIVILEGES;

  • 관련 문제