1. 문제 상황

- AWS Athena에서 s3에 저장된 parquet 파일로 table을 만들었다.

- 생성은 문제없이 됐으나 "TYPE_MISMATCH: Unable to read parquet data. This is most likely caused by a mismatch between the parquet and metastore schema'"라는 에러 메세지가 발생

 

2. 해결 방법

- CREATE TABLE 관련 AWS 문서를 확인했다.

https://docs.aws.amazon.com/ko_kr/athena/latest/ug/create-table.html

 

CREATE TABLE - Amazon Athena

비 문자열 데이터 유형은 Athena에서 string으로 캐스팅할 수 없습니다. 대신 varchar로 캐스팅합니다.

docs.aws.amazon.com

- date 항목에 아래와 같은 내용이 있었다.

- parquet에 1970-01-01 보다 작은 날짜가 있는지 확인하고 그보다 작은 날짜는 수정했다.

parquet파일을 열어 확인해보니 birth_date에 1970년 보다 작은 날짜가 있다

 

3. 결론

- 날짜 형식을 쓰려면 1970-01-01보다 작은 날짜가 있는지 확인해야 한다.

- timestamp 형식을 쓰는 경우 1970-01-01 보다 큰 날짜 값만 사용하는 것을 상정해야 한다.

- 그보다 작은 날짜를 쓸 일이 있다면 string을 사용하여 날짜를 저장하고 사용하는 것이 좋을 것으로 보인다.

- 예를 들어 string으로 하는 경우 20230810 같은 방식으로 저장하면 된다.

'AWS 문제 해결 기록 > Athena' 카테고리의 다른 글

Only one sql statement is allowed.  (0) 2023.08.23

+ Recent posts