Amazon Redshift를 사용하여 페더레이션 데이터에 액세스할 때의 고려 사항 - Amazon Redshift

Amazon Redshift를 사용하여 페더레이션 데이터에 액세스할 때의 고려 사항

일부 Amazon Redshift 기능은 연합 데이터에 대한 액세스를 지원하지 않습니다. 다음과 같은 관련 제한 사항 및 고려 사항을 찾을 수 있습니다.

Amazon Redshift에서 연합 쿼리를 사용할 때 제한 사항과 고려 사항은 다음과 같습니다.

  • 연합 쿼리는 외부 데이터 원본에 대한 읽기 액세스를 지원합니다. 외부 데이터 원본에서 데이터베이스 객체를 작성하거나 생성할 수 없습니다.

  • 경우에 따라 Amazon Redshift 이외 AWS 리전에서 Amazon RDS 또는 Aurora DB 클러스터 데이터베이스에 액세스할 수 있습니다. 이러한 경우 일반적으로 AWS 리전 간 데이터 전송에 대한 네트워크 지연 및 청구 요금이 발생합니다. Amazon Redshift 클러스터와 동일한 AWS 리전에 로컬 엔드포인트가 있는 Aurora 글로벌 데이터베이스를 사용하는 것이 좋습니다. Aurora 글로벌 데이터베이스는 두 AWS 리전 간 스토리지 기반 복제에 전용 인프라를 사용하며 일반적인 지연 시간은 1초 미만입니다.

  • Amazon RDS 또는 Aurora DB 클러스터 액세스 비용을 고려하세요. 예를 들어 이 기능을 사용하여 Aurora DB 클러스터에 액세스할 경우 Aurora DB 클러스터 요금은 IOPS를 기준으로 부과됩니다.

  • 페더레이션 쿼리는 RDS 또는 Aurora DB 클러스터에서 Amazon Redshift에 대한 액세스를 사용하지 않습니다.

  • 페더레이션 쿼리는 Amazon Redshift와 Amazon RDS 또는 Aurora DB 클러스터 둘 다 사용할 수 있는 AWS 리전에서만 사용할 수 있습니다.

  • 연합 쿼리는 현재 ALTER SCHEMA을(를) 지원하지 않습니다. 스키마를 변경하려면 DROP을(를) 사용한 다음 CREATE EXTERNAL SCHEMA을(를) 사용합니다.

  • 연합 쿼리는 동시성 확장과 함께 작동하지 않습니다.

  • 연합 쿼리는 현재 PostgreSQL 외부 데이터 래퍼를 통한 액세스를 지원하지 않습니다.

  • RDS MySQL 또는 Aurora MySQL에 대한 연합 쿼리는 READ COMMITTED 수준에서 트랜잭션 격리를 지원합니다.

  • 지정하지 않으면 Amazon Redshift는 포트 3306에서 RDS for MySQL 또는 Aurora MySQL에 연결합니다. MySQL용 외부 스키마를 생성하기 전에 MySQL 포트 번호를 확인합니다.

  • 지정하지 않으면 Amazon Redshift는 포트 5432에서 RDS PostgreSQL 또는 Aurora PostgreSQL에 연결합니다. PostgreSQL용 외부 스키마를 생성하기 전에 PostgreSQL 포트 번호를 확인합니다.

  • MySQL에서 TIMESTAMP 및 DATE 데이터 유형을 가져올 때 0 값은 NULL로 처리됩니다.

  • Aurora DB 클러스터 데이터베이스 리더 엔드포인트를 사용하는 경우 ‘잘못된 스냅샷’ 오류가 발생할 수 있습니다. 다음 방법 중 하나를 사용하여 이를 방지할 수 있습니다.

    • Aurora DB 클러스터 엔드포인트를 사용하는 대신 특정 Aurora DB 클러스터 인스턴스 엔드포인트를 사용합니다. 이 메서드는 PostgreSQL 데이터베이스의 결과에 대해 REPEATABLE READ 트랜잭션 격리를 사용합니다.

    • Aurora DB 클러스터 리더 엔드포인트를 사용하고 세션에 대해 pg_federation_repeatable_read를 false로 설정합니다. 이 메서드는 PostgreSQL 데이터베이스의 결과에 대해 READ COMMITTED 트랜잭션 격리를 사용합니다. Aurora DB 클러스터 리더 엔드포인트에 대한 자세한 내용은 Amazon Aurora 사용 설명서의 Aurora DB 클러스터 엔드포인트의 유형을 참조하세요. pg_federation_repeatable_read에 대한 자세한 내용은 pg_federation_repeatable_read 섹션을 참조하십시오.

다음은 PostgreSQL 데이터베이스에 대한 연합 쿼리로 작업할 때 트랜잭션에 대한 고려 사항입니다.

  • 쿼리가 연합 테이블로 구성된 경우 리더 노드는 원격 데이터베이스에서 READ ONLY REPEATABLE READ 트랜잭션을 시작합니다. 이 트랜잭션은 Amazon Redshift 트랜잭션 기간 동안 유지됩니다.

  • 리더 노드는 pg_export_snapshot을(를) 호출하여 원격 데이터베이스의 스냅샷을 생성하고 영향을 받는 테이블에 대한 읽기 잠금을 만듭니다.

  • 컴퓨팅 노드는 트랜잭션을 시작하고 리더 노드에서 생성된 스냅샷을 사용하여 원격 데이터베이스에 쿼리를 실행합니다.

지원되는 페더레이션된 데이터베이스 버전

Amazon Redshift 외부 스키마는 외부 RDS PostgreSQL 또는 Aurora PostgreSQL에서 데이터베이스를 참조할 수 있습니다. 이 경우 다음과 같은 제한 사항이 적용됩니다.

  • Aurora DB 클러스터를 참조하는 외부 스키마를 생성할 때 Aurora PostgreSQL 데이터베이스의 버전은 9.6 이상이어야 합니다.

  • Amazon RDS를 참조하는 외부 스키마를 생성할 때 Amazon RDS PostgreSQL 데이터베이스의 버전은 9.6 이상이어야 합니다.

Amazon Redshift 외부 스키마는 외부 RDS MySQL 또는 Aurora MySQL에서 데이터베이스를 참조할 수 있습니다. 이 경우 다음과 같은 제한 사항이 적용됩니다.

  • Aurora DB 클러스터를 참조하는 외부 스키마를 생성할 때 Aurora MySQL 데이터베이스의 버전은 5.6 이상이어야 합니다.

  • Amazon RDS를 참조하는 외부 스키마를 생성할 때 RDS MySQL 데이터베이스의 버전이 5.6 이상이어야 합니다.