쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

파티션이 있는 테이블의 업데이트

포커스 모드

이 페이지에서

파티션이 있는 테이블의 업데이트 - Amazon Athena

Athena에서 테이블과 그 파티션은 동일한 데이터 형식을 사용해야 하지만 스키마는 다를 수 있습니다. 새 파티션을 만들면 파티션은 보통 테이블의 스키마를 상속합니다. 시간이 지남에 따라 스키마는 달라지기 시작할 수 있습니다. 이유는 다음과 같습니다.

  • 테이블의 스키마가 변경되더라도 파티션의 스키마는 테이블의 스키마와 동기화 상태를 유지하도록 업데이트되지 않습니다.

  • AWS Glue 크롤러를 사용하여 다른 스키마가 있는 파티션의 데이터를 검색할 수 있습니다. 즉 AWS Glue로 Athena에 테이블을 만든다면 크롤러가 처리를 마친 후 테이블과 그 파티션의 스키마가 다를 수 있습니다.

  • AWS API를 사용하여 파티션을 직접 추가하는 경우

파티션이 있는 테이블이 다음 제약을 충족하면 Athena는 이를 처리합니다. 이러한 제약을 충족하지 않는다면 Athena는 HIVE_PARTITION_SCHEMA_MISMATCH 오류를 표시합니다.

  • 각 파티션의 스키마가 테이블의 스키마와 호환됩니다.

  • 테이블의 데이터 형식이 수행하려는 업데이트 유형(예: 열 추가, 삭제, 재정렬 또는 열의 데이터 형식 변경)을 허용합니다.

    예를 들어 CSV 및 TSV 형식의 경우 열 이름을 바꾸고, 테이블 끝에 새 열을 추가하고, 형식이 호환되는 경우 열의 데이터 형식을 변경할 수 있으나, 열을 제거할 수는 없습니다. 다른 형식의 경우 열을 추가 또는 제거하거나 형식이 호환되는 경우 열의 데이터 형식을 다른 형식으로 변경할 수 있습니다. 자세한 정보는 요약: Athena의 업데이트 및 데이터 형식을 참조하세요.

파티션이 있는 테이블의 스키마 불일치 오류 방지

쿼리 실행을 시작할 때 Athena는 각 열 데이터 형식이 테이블과 파티션 간에 호환되는지 확인하여 테이블의 스키마를 검증합니다.

  • Parquet 및 ORC 데이터 스토리지 형식의 경우 Athena는 열 이름을 토대로 이를 열 이름 기반 스키마 검증에 사용합니다. 이렇게 하여 Parquet 및 ORC에 파티션이 있는 테이블의 HIVE_PARTITION_SCHEMA_MISMATCH 오류를 제거합니다. (SerDe 속성이 이름을 기준으로 인덱스에 액세스하도록 설정된 경우(orc.column.index.access=FALSE) 이 사항은 ORC에 해당됩니다. Parquet은 기본적으로 이름을 기준으로 인덱스를 읽습니다.)

  • CSV, JSON 및 Avro의 경우 Athena는 인덱스 기반 스키마 검증을 사용합니다. 즉, 스키마 불일치 오류가 발생한다면 Athena가 실패하지 않고 쿼리할 수 있도록 스키마 불일치를 발생시키는 파티션을 삭제하고 다시 생성해야 합니다.

Athena는 테이블의 스키마를 파티션의 스키마와 비교합니다. AWS Glue 크롤러로 Athena의 CSV, JSON 및 AVRO에 테이블을 만들 경우 크롤러가 처리를 마친 후 테이블과 그 파티션의 스키마가 다를 수 있습니다. 테이블의 스키마와 파티션 스키마 간에 불일치가 있으면 다음과 유사한 스키마 검증 오류로 인해 Athena에서 쿼리가 실패합니다. 'crawler_test.click_avro'는 '문자열' 형식으로 선언되었는데, 'partition_0=2017-01-17' 파티션은 'col68'열을 'double' 형식으로 선언했습니다."

그러한 오류의 일반적인 해결 방법은 오류를 발생시키는 파티션을 삭제하고 다시 생성하는 것입니다. 자세한 내용은 ALTER TABLE DROP PARTITIONALTER TABLE ADD PARTITION 단원을 참조하세요.

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.