Amazon Redshift가 구성된 Amazon RDS 제로 ETL 통합 문제 해결 - Amazon Relational Database Service

Amazon Redshift가 구성된 Amazon RDS 제로 ETL 통합 문제 해결

Amazon Redshift에서 SVV_INTEGRATION 시스템 테이블을 쿼리하여 제로 ETL 통합의 상태를 확인할 수 있습니다. state 열의 값이 ErrorState면 문제가 있다는 뜻입니다. 자세한 내용은 시스템 테이블을 사용한 통합 모니터링 단원을 참조하십시오.

다음 정보를 사용하여 Amazon Redshift가 구성된 Amazon RDS 제로 ETL 통합과 관련된 일반적인 문제를 해결하세요.

제로 ETL 통합을 생성할 수 없습니다

제로 ETL 통합을 생성할 수 없는 경우 소스 데이터베이스에 대해 다음 사항이 올바른지 확인하세요.

또한 대상 데이터 웨어하우스에 대해 다음 사항이 올바른지 확인하세요.

내 통합이 Syncing 상태에서 멈췄습니다.

필수 DB 클러스터 파라미터 중 하나의 값을 변경하면 통합에서 Syncing 상태가 일관되게 표시될 수 있습니다.

이 문제를 해결하려면 소스 데이터베이스와 연결된 파라미터 그룹의 파라미터 값을 살펴보고, 필수 값과 일치하는지 확인하세요. 자세한 내용은 1단계: 사용자 지정 DB 파라미터 그룹 생성 단원을 참조하십시오.

파라미터를 수정할 경우 데이터베이스를 재부팅하여 변경 사항을 적용해야 합니다.

내 테이블이 Amazon Redshift에 복제되지 않는 경우

Amazon Redshift에 하나 이상의 표가 반영되지 않는 경우 다음 명령을 실행하여 표를 다시 동기화할 수 있습니다.

ALTER DATABASE dbname INTEGRATION REFRESH TABLES table1, table2;

자세한 내용은 Amazon Redshift SQL 참조의 ALTER DATABASE를 참조하세요.

하나 이상의 원본 테이블에 프라이머리 키가 없어 데이터가 복제되지 않을 수 있습니다. Amazon Redshift의 모니터링 대시보드에는 이러한 테이블의 상태가 Failed로 표시되고 전체 제로 ETL 통합 상태는 Needs attention으로 변경됩니다. 이 문제를 해결하려면 테이블에서 프라이머리 키가 될 수 있는 기존 키를 식별하거나 가상 프라이머리 키를 추가할 수 있습니다. 자세한 해결 방법은 Amazon Redshift를 사용해 Amazon Aurora MySQL 또는 Amazon RDS for MySQL 제로 ETL 통합을 생성하는 동안 프라이머리 키가 없는 테이블 처리를 참조하세요.

Amazon Redshift 테이블 중 하나 이상을 재동기화해야 합니다

소스 데이터베이스에서 특정 명령을 실행하려면 테이블을 재동기화해야 할 수 있습니다. 이러한 경우 SVV_INTEGRATION_TABLE_STATE 시스템 뷰에 ResyncRequired의 table_state가 표시됩니다. MySQL의 해당 테이블에서 Amazon Redshift로 데이터를 완전히 다시 로드해야 한다는 의미입니다.

테이블이 재동기화되기 시작하면 Syncing 상태가 됩니다. 테이블을 재동기화하기 위해 수동 작업을 수행할 필요가 없습니다. 테이블 데이터가 재동기화되는 동안에는 Amazon Redshift에서 액세스하지 못할 수도 있습니다.

다음은 테이블을 ResyncRequired 상태로 전환할 수 있는 몇 가지 예제 작업과 고려할 수 있는 대안입니다.

Operation 대안
특정 위치에 열 추가
ALTER TABLE table_name ADD COLUMN column_name INTEGER NOT NULL first;
Amazon Redshift는 first 또는 after 키워드를 사용하여 특정 위치에 열을 추가하는 것을 지원하지 않습니다. 대상 테이블의 열 순서가 중요하지 않은 경우 다음과 같은 간단한 명령을 사용하여 테이블 끝에 열을 추가합니다.
ALTER TABLE table_name ADD COLUMN column_name column_type;
기본값 CURRENT_TIMESTAMP로 타임스탬프 열 추가
ALTER TABLE table_name ADD COLUMN column_name TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
기존 표 행의 CURRENT_TIMESTAMP 값은 RDS for MySQL에서 계산되며, 전체 표 데이터를 재동기화하지 않고는 Amazon Redshift에서 시뮬레이션할 수 없습니다.

가능하면 기본값을 리터럴 상수(예: 2023-01-01 00:00:15)로 전환하여 테이블 가용성에 지연 시간이 생기지 않도록 하세요.

단일 명령 내에서 여러 열 작업 수행
ALTER TABLE table_name ADD COLUMN column_1, RENAME COLUMN column_2 TO column_3;
명령을 2개의 개별 작업(ADDRENAME)으로 분할하여 재동기화할 필요가 없도록 하는 것이 좋습니다.