Amazon Athena에서 쿼리를 실행할 때 "unable to create input format."라는 오류 메시지가 나타납니다.
간략한 설명
“unable to create input format” 오류가 발생하는 이유는 다음과 같습니다.
- Athena 쿼리의 데이터 소스가 지원되지 않음
- Athena가 데이터 형식을 지원하지 않음
- AWS Glue 크롤러가 데이터 형식을 분류할 수 없음
- 하나 이상의 AWS Glue 테이블 정의 속성이 비어 있음
해결 방법
Athena 쿼리의 데이터 소스가 지원되지 않음
Athena는 Amazon Simple Storage Service(Amazon S3)에 저장된 테이블만 쿼리할 수 있습니다. S3에 저장되지 않은 데이터 소스를 쿼리하면 “unable to create input format” 오류가 발생합니다.
이 오류를 해결하려면 Athena Query Federation SDK를 사용하십시오. 이 SDK를 사용하면 자체 코드로 Athena를 사용자 지정할 수 있습니다. Athena Federation SDK를 사용하면 다양한 데이터 소스 및 독점 데이터 형식과 통합할 수 있습니다. 새 사용자 정의 함수를 빌드할 수도 있습니다. 자세한 내용은 Amazon Athena의 새로운 연동 쿼리로 모든 데이터 소스를 쿼리를 참조하십시오.
Athena가 데이터 형식을 지원하지 않음
AWS Glue 크롤러를 실행하여 S3의 파일에서 Athena에 테이블을 생성할 수 있지만 일부 파일 유형은 Athena에서 지원하지 않습니다. 예를 들어 Athena는**.ion** 또는 .xml과 같은 파일 유형을 지원하지 않습니다.
지원되지 않는 파일 유형에서 Athena의 테이블을 쿼리하면 "HIVE_UNKNOWN_ERROR: Unable to create input format" 오류가 발생합니다. 이 오류를 해결하려면 Athena가 지원하는 데이터 형식을 사용하십시오.
AWS Glue 크롤러가 데이터 형식을 분류할 수 없음
AWS Glue 크롤러가 테이블 스키마의 열 데이터 유형을 인식하지 못하는 경우 크롤러는 해당 열을 UNKNOWN으로 분류합니다. "HIVE_UNKNOWN_ERROR: Unable to create input format"오류가 발생하며 이는 UNKNOWN 데이터 유형 열이 있는 Athena 테이블을 쿼리한 경우입니다. 이 분류 오류는 스키마의 데이터 유형을 인식하지 못하는 Glue 크롤러용 내장 분류기를 사용할 때 발생합니다.
이 오류를 해결하려면 내장 분류기에서 지원하는 데이터 유형을 사용하십시오. 내장 분류기로 데이터 형식을 분류할 수 없는 경우 사용자 지정 분류기를 고려해 보십시오.
하나 이상의 AWS Glue 테이블 정의 속성이 비어 있음
AWS Glue에서 생성하지 않은 Athena의 테이블을 쿼리할 때도 입력 형식 오류가 발생할 수 있습니다. 예를 들어, AWS Glue 콘솔에서 테이블을 수동으로 생성하면 오류가 발생할 수 있습니다. AWS Glue 테이블 정의에서 다음 속성 중 하나가 비어 있으면 “HIVE_UNKNOWN_ERROR: Unable to create input format" 오류가 발생합니다.
SerDe 및 데이터 형식에 대해 이러한 속성이 올바르게 설정되었는지 확인합니다. 지정한 SerDe가 테이블 스키마를 정의한다는 점에 유의하십시오. SerDe는 테이블을 생성할 때 Athena에서 지정한 DDL 구성을 재정의할 수 있습니다.
테이블 정의 속성을 업데이트하려면 다음 단계를 완료하십시오.
- AWS Glue 콘솔을 엽니다.
- 업데이트하려는 테이블을 선택합니다.
- 작업을 선택한 다음, 세부 정보 보기를 선택합니다.
- 표 편집을 선택합니다.
- 입력 형식, 출력 형식 또는 SerDe 이름에 대한 설정을 업데이트합니다.
- 적용을 선택합니다.
관련 정보
분류자 정의 및 관리
SerDe 사용
데이터 소스에 연결
Amazon Athena Federated Query 사용