MySQL에서 redshift로 복제 서버를 만들려고합니다.이를 위해 MySQL binlog를 구문 분석하고 있습니다. 초기 복제의 경우, mysql 테이블의 덤프를 CSV 파일로 변환하고 S3에 업로드 한 다음 redshift copy 명령을 사용합니다. 이를 위해 성능이 효율적입니다.mysql에서 redshift 복제까지 느린 삽입 및 업데이트 명령
초기 복제 후, binlog를 읽을 때 연속 동기화를 위해 삽입 및 업데이트가 매우 느리게 실행되어야합니다.
성능 향상을 위해 수행 할 수있는 작업이 있습니까?
내가 생각할 수있는 가능한 솔루션은 여러 개의 네트워크 호출을 피하기 위해 트랜잭션에서 명령문을 랩핑 한 다음 트랜잭션을 한 번에 보내는 것입니다. 그러나 이는 적색 변속의 단일 업데이트 및 삽입 문이 매우 느리게 실행되는 문제를 해결하지 못합니다. 단일 업데이트 진술은 6 초가 걸립니다. 적색 변이의 한계를 아는 것 (그것은 원주 형 데이터베이스이고 단일 행 삽입은 느릴 것입니다) 이러한 한계를 극복하기 위해 할 수있는 일은 무엇입니까?
편집 1 : 에 관한 DMS : 그냥 우리의 MYSQL 지속적으로, 내가 MySQL의에서 170 개 + 테이블이 있기 때문에 데이터를 denormalise하지 않으 복제하는웨어 하우징 솔루션으로 적색 편이를 사용하고 싶습니다. 진행중인 복제 중에 DMS는 하루에 여러 번 오류를 많이 보이고 하루나 이틀 후에 완전히 오류를 일으키며 DMS 오류 로그를 해독하기가 매우 어렵습니다. 또한 테이블을 삭제하고 다시로드하면 redshift에서 기존 테이블을 삭제하고 새 테이블을 만든 다음 데이터를 삽입하여 내 경우에 중단 시간을 초래합니다. 내가 원하는 것은 이전 테이블 여기
코드를 직접 작성 했습니까? binlog를 s3으로 스트리밍 한 다음 미니 배치 스크립트와 같은 것을 작성해야합니다. 또는 당신을 위해 모든 것을하는 aws DMS를 사용하십시오! –
삽입/업데이트/삭제 문을 사용하면 안됩니다. 모든 상황에서 너무 느립니다! –
이전에는 aws dms 만 사용했지만 성능은 만족스럽지 않았습니다. 오류가 발생할 때마다 테이블을 삭제하고 다시로드해야합니다. 또한이 –