내용으로 건너뛰기

Athena에서 Apache Iceberg 테이블 오류를 해결하려면 어떻게 해야 합니까?

3분 분량
0

Amazon Athena에서 Apache Iceberg 테이블을 사용할 때 오류가 발생합니다.

해결 방법

발생한 오류에 대한 문제 해결 단계를 따릅니다.

지원되지 않는 테이블 속성 키

이 오류는 CREATE TABLE 또는 ALTER TABLE 문의 TBLPROPERTIES 절에서 지원되는 테이블 속성을 사용하지 않을 때 발생합니다. Iceberg 테이블을 생성하거나 수정할 때 Athena에서는 테이블 속성에 미리 정의된 키-값 쌍 목록만 허용합니다.

이 문제를 해결하려면 Iceberg 테이블에서 지원되는 테이블 속성을 사용해야 합니다.

테이블에 지원되지 않는 속성이 있어 Athena에서 CREATE TABLE 문을 생성할 수 없음

쿼리에서 SHOW CREATE TABLE DDL 문을 사용했기 때문에 Athena에서 테이블 구조를 재현할 수 없는 경우 ‘UNSUPPORTED’ 오류가 발생합니다. 대신 DESCRIBE FORMATTED DDL 문을 사용하여 테이블 속성을 표시하십시오.

“TABLE_REDIRECTION_ERROR” 오류

이 오류는 지원되지 않는 Iceberg 테이블 메타데이터를 사용하는 Athena SELECT 쿼리에서 발생합니다. Athena SELECT 쿼리에 지원되는 Query.Iceberg 테이블 메타데이터가 포함되어 있는지 확인하십시오.

“지원되지 않는 Hive 유형” 오류 발생

이 오류는 지원되지 않는 데이터 유형을 Iceberg 테이블에서 사용할 때 발생합니다. 예를 들어, Iceberg 테이블이 tinyint 또는 smallint Athena 데이터 유형을 지원하지 않기 때문에 “SHORT, use integer” 오류가 표시될 수 있습니다. 또는 Iceberg 테이블이 char Athena 데이터 유형을 지원하지 않기 때문에 “CHAR, use string” 오류가 표시될 수 있습니다.

이 문제를 해결하려면 Athena 쿼리가 Iceberg 테이블에 지원되는 데이터 유형을 사용하고 있는지 확인하십시오.

“ICEBERG_COMMIT_ERROR” 오류 발생

이 오류는 여러 명령문이 병렬 Iceberg 테이블 업데이트에서 실행되는 동일한 파일 세트를 수정하려고 할 때 발생할 수 있습니다. 여러 DELETE 문이 병렬로 실행되고 동일한 레코드 세트를 동시에 삭제하려고 할 때를 예로 들 수 있습니다.

이 문제를 방지하려면 다음 작업을 수행하십시오.

  • 병렬 데이터 처리를 피하려면 쿼리 업데이트를 순차적으로 실행해야 합니다.
  • Iceberg 테이블을 업데이트할 때 지수 백오프가 있는 재시도 메커니즘을 구현합니다.

참고: Athena는 AWS Glue 낙관적 잠금만 지원합니다. 다른 잠금 방법을 사용하여 Iceberg 테이블을 수정하면 데이터가 손실되고 트랜잭션이 중단될 수 있습니다. 자세한 내용은 Apache Iceberg 웹사이트에서 낙관적 잠금을 참조하십시오.

“NOT_SUPPORTED: Iceberg table updates require at least format version 2” 오류 발생

이 오류는 버전 1 Iceberg 테이블에서 DELETE 작업을 시도할 때 발생합니다. Athena는 버전 2 Iceberg 테이블에서만 생성 및 작동합니다. Iceberg 테이블이 Athena 엔진 버전 2를 사용하는지 확인하십시오. 다른 유형의 엔진을 사용하는 경우 행 수준 삭제를 허용하려면 format-version 테이블 속성을 2로 설정하십시오. 예를 들어 Iceberg 테이블을 작성하고 해당 테이블을 AWS Glue Data Catalog에 등록할 경우 버전 2를 사용하십시오. 자세한 내용은 Apache Iceberg 웹사이트에서 형식 삭제를 참조하십시오.

“GENERIC_INTERNAL_ERROR:” 오류 발생

다음 오류 메시지가 표시됩니다.

"GENERIC_INTERNAL_ERROR: com.amazonaws.trino.exceptions.UnrecoverableS3OperationException: com.amazonaws.services.s3.model.AmazonS3Exception: The specified key does not exist"

이 오류는 매니페스트 목록 또는 metadata.json과 같은 메타데이터 파일을 삭제할 때 발생합니다. 그러면 Athena 쿼리가 실패합니다. 파일을 성공적으로 복구할 수 없는 경우 테이블을 스냅샷 또는 타임스탬프로 롤백하십시오.

참고: Athena 쿼리 편집기가 아닌 AWS Glue 또는 Amazon EMR과 같은 Apache Spark 환경에서 테이블을 롤백해야 합니다.

테이블을 특정 스냅샷 ID로 롤백하려면 roll_to_snapshot Apache Iceberg 명령을 실행하십시오.

CALL catalog_name.system.rollback_to_snapshot('your-db.your-table', your-snapshot-id)

참고: your-db, your-tableyour-snapshot-id를 원하는 값으로 바꾸십시오.

테이블을 특정 타임스탬프로 롤백하려면 rollback_to_timestamp Apache Iceberg 명령을 실행하십시오.

CALL catalog_name.system.rollback_to_timestamp('your-db.your-table', TIMESTAMP 'yyyy-mm-dd hh:mm:ss')

참고: your-db, your-tableyyyy-mm-dd hh:mm:ss를 원하는 값으로 바꾸십시오.

자세한 내용은 Apache Iceberg 웹사이트에서 rollback_to_snapshotrollback_to_timestamp를 참조하십시오.

관련 정보

Athena의 문제 해결

Spark에서 교차 계정 AWS Glue Data Catalog와 함께 Apache Iceberg를 사용하려면 어떻게 해야 합니까?

Apache Iceberg 테이블 쿼리

AWS 공식업데이트됨 일 년 전