Amazon Redshift와 함께 Apache Iceberg 테이블 사용
이 주제에서는 Redshift Spectrum 또는 Redshift Serverless에서 Apache Iceberg 형식의 테이블을 사용하는 방법을 설명합니다. Apache Iceberg는 대규모 분석 테이블을 위한 고성능 형식입니다.
Redshift Spectrum 또는 Redshift Serverless를 사용하여 AWS Glue Data Catalog에 카탈로그화된 Apache Iceberg 테이블을 쿼리할 수 있습니다. Apache Iceberg는 데이터 레이크를 위한 오픈 소스 테이블 형식입니다. 자세한 내용은 공식 Apache Iceberg 설명서의 Apache Iceberg
Amazon Redshift는 Apache Iceberg 테이블 쿼리를 위한 트랜잭션 일관성을 제공합니다. Amazon Redshift를 사용하여 쿼리를 실행하는 동안 Amazon Athena 및 Amazon EMR과 같은 ACID(원자성, 일관성, 격리, 내구성) 호환 서비스를 사용하여 테이블의 데이터를 조작할 수 있습니다. Amazon Redshift는 Apache Iceberg 메타데이터에 저장된 테이블 통계를 사용하여 쿼리 계획을 최적화하고 쿼리 처리 중에 파일 스캔을 줄일 수 있습니다. Amazon Redshift SQL을 사용하면 Redshift 테이블을 데이터 레이크 테이블과 조인할 수 있습니다.
Amazon Redshift와 함께 Iceberg 테이블 사용을 시작하려면 다음을 수행하세요.
Amazon Athena 또는 Amazon EMR과 같은 호환되는 서비스를 사용하여 AWS Glue Data Catalog 데이터베이스에 Apache Iceberg 테이블을 만듭니다. Athena를 사용하여 Iceberg 테이블을 생성하려면 Amazon Athena 사용 설명서에서 Apache Iceberg 테이블 사용을 참조하세요.
데이터 레이크에 대한 액세스를 허용하는 연결된 IAM 역할이 있는 Amazon Redshift 클러스터 또는 Redshift Serverless 작업 그룹을 만듭니다. 클러스터 또는 작업 그룹을 만드는 방법에 대한 자세한 내용은 Amazon Redshift 시작 안내서에서 Amazon Redshift 프로비저닝된 데이터 웨어하우스 시작하기 및 Amazon Redshift Serverless를 참조하세요.
쿼리 에디터 v2 또는 타사 SQL 클라이언트를 사용하여 클러스터 또는 작업 그룹에 연결합니다. 쿼리 에디터 v2를 사용하여 연결하는 방법에 대한 자세한 내용은 Amazon Redshift 관리 안내서에서 SQL 클라이언트 도구를 사용하여 Amazon Redshift 데이터 웨어하우스에 연결 단원을 참조하세요.
Iceberg 테이블을 포함하는 특정 데이터 카탈로그 데이터베이스에 대한 외부 스키마를 Amazon Redshift 데이터베이스에 생성합니다. 외부 스키마 생성에 대한 자세한 내용은 Amazon Redshift Spectrum의 외부 스키마를 참조하세요.
SQL 쿼리를 실행하여 생성한 외부 스키마의 Iceberg 테이블에 액세스합니다.
Amazon Redshift와 함께 Apache Iceberg 테이블을 사용할 때 고려 사항
Iceberg 테이블과 함께 Amazon Redshift를 사용할 때는 다음 사항을 고려하세요.
-
Iceberg 버전 지원 - Amazon Redshift는 다음 버전의 Iceberg 테이블에 대한 쿼리 실행을 지원합니다.
버전 1은 변경 불가능한 데이터 파일을 사용하여 대규모 분석 테이블을 관리하는 방법을 정의합니다.
버전 2는 기존 데이터 파일을 변경하지 않은 채로 행 수준 업데이트 및 삭제를 지원하고 삭제 파일을 사용하여 테이블 데이터 변경을 처리하는 기능을 추가합니다.
버전 1과 버전 2 테이블의 차이점에 대해서는 Apache Iceberg 설명서에서 형식 버전 변경
을 참조하세요. -
쿼리만 지원 - Amazon Redshift는 Apache Iceberg 테이블에 대한 읽기 전용 액세스를 지원합니다. 트랜잭션의 일관된 선택 쿼리를 지원합니다. Amazon Athena와 같은 서비스를 사용하여 AWS Glue Data Catalog에서 Iceberg 테이블의 스키마를 정의하고 업데이트할 수 있습니다.
-
파티션 추가 - Apache Iceberg 테이블에 대한 파티션을 수동으로 추가할 필요가 없습니다. Apache Iceberg 테이블의 새 파티션은 Amazon Redshift에 의해 자동으로 감지되며 테이블 정의에서 파티션을 업데이트하기 위해 수동 작업이 필요하지 않습니다. 파티션 사양의 모든 변경 사항도 사용자 개입 없이 쿼리에 자동으로 적용됩니다.
-
Iceberg 데이터를 Amazon Redshift로 수집 - INSERT INTO 또는 CREATE TABLE AS 명령을 사용하여 Iceberg 테이블의 데이터를 로컬 Amazon Redshift 테이블로 가져올 수 있습니다. 현재 COPY 명령을 사용하여 Apache Iceberg 테이블의 콘텐츠를 로컬 Amazon Redshift 테이블로 수집할 수 없습니다.
-
구체화된 뷰 - Amazon Redshift의 다른 외부 테이블과 마찬가지로 Apache Iceberg 테이블에서 구체화된 뷰를 만들 수 있습니다. 다른 데이터 레이크 테이블 형식에 대한 동일한 고려 사항이 Apache Iceberg 테이블에도 적용됩니다. 데이터 레이크 테이블의 증분 업데이트, 자동 새로 고침, 자동 쿼리 재작성 및 자동 MV는 현재 지원되지 않습니다.
-
AWS Lake Formation의 세분화된 액세스 제어 - Amazon Redshift는 Apache Iceberg 테이블에서 AWS Lake Formation의 세분화된 액세스 제어를 지원합니다.
-
사용자 정의 데이터 처리 파라미터 - Amazon Redshift는 Apache Iceberg 테이블에서 사용자 정의 데이터 처리 파라미터를 지원합니다. 기존 파일에 사용자 정의 데이터 처리 파라미터를 사용하여 외부 테이블에서 쿼리되는 데이터를 조정하여 스캔 오류를 방지할 수 있습니다. 이러한 파라미터는 테이블 스키마와 파일의 실제 데이터 간의 불일치를 처리하는 기능을 제공합니다. 사용자 정의 데이터 처리 파라미터를 Apache Iceberg 테이블에서도 사용할 수 있습니다.
-
시간 이동 쿼리- 시간 이동 쿼리는 현재 Apache Iceberg 테이블에서 지원되지 않습니다.
-
요금 - 클러스터에서 Iceberg 테이블에 액세스하면 Redshift Spectrum 요금이 청구됩니다. 작업 그룹에서 Iceberg 테이블에 액세스하는 경우 Redshift Serverless 요금이 청구됩니다. Redshift Spectrum 및 Redshift Serverless 요금에 대한 자세한 내용은 Amazon Redshift 요금
을 참조하세요.