오류 “실패: SemanticException 테이블이 분할되지 않았지만 Athena에 분할 사양이 존재합니까”를 해결하려면 어떻게 해야 하나요?

2분 분량
0

Amazon Athena에서 ALTER 테이블 추가 파티션을 실행하면 다음 오류가 발생합니다. “실패: SemanticException 테이블은 분할되지 않았지만 분할 사양이 존재합니다.”

해결 방법

이 오류는 CREATE TABLE 문에서 파티션을 정의하지 않은 경우 발생합니다. 이 오류를 해결하려면 다음 작업 중 하나를 수행하세요.

  • 테이블을 다시 만들고 PARTIONDED BY를 사용하여 파티션 키를 정의합니다.
  • 테이블 스키마를 편집합니다.

테이블 다시 만들기

테이블을 다시 생성하고 PARTITIONDED BY를 사용하여 파티션 키를 정의합니다. 예제는 테이블 만들기를 참조하세요. 파티션을 정의한 후 테이블 수정 파티션 추가를 사용하여 파티션을 더 추가할 수 있습니다.

예를 들어 다음과 같은 DDL(데이터 정의어)을 사용하여 연도, 월, 일에 대해 세 개의 파티션이 있는 테이블을 만드는 경우를 예로 들어 보겠습니다.

CREATE EXTERNAL TABLE test (
requestBeginTime string,
adId string,
...)
PARTITIONED BY (
year string,
month string,
day string
)
ROW FORMAT serde 'org.apache.hive.hcatalog.data.JsonSerDe'
LOCATION 's3://.../' ;

그런 다음, 다음 파티션과 비슷한 파티션을 추가합니다.

ALTER TABLE impressions ADD
PARTITION (year = '2016', month = '05', day='04') LOCATION 's3://mystorage/path/to/data\_14\_May\_2016/';

테이블 스키마 편집하기

AWS Glue에서 테이블 스키마를 편집하려면 다음 단계를 완료하세요.

  1. AWS Glue 콘솔을 엽니다.
  2. 목록에서 테이블 이름을 선택한 다음 스키마 편집을 선택합니다.
  3. 컬럼 추가를 선택합니다.
  4. 열 이름, 유형 및 번호를 입력합니다. 그런 다음 파티션 키 상자를 선택합니다.
  5. 추가를 선택합니다.

자세한 내용은 테이블 세부 정보 보기 및 편집을 참조하세요.

AWS 공식
AWS 공식업데이트됨 일 년 전