Athena에서 "입력 형식을 생성할 수 없음" 오류를 해결하려면 어떻게 해야 합니까?

2분 분량
0

Amazon Athena에서 쿼리를 실행할 때 "입력 형식을 생성할 수 없음" 오류가 발생합니다.

해결 방법

이 오류의 원인은 여러 가지가 있습니다. 다음은 몇 가지 일반적인 시나리오와 솔루션입니다.

AWS Glue 크롤러가 데이터 형식을 분류할 수 없습니다.

  • 데이터가 Amazon Simple Storage Service(Amazon S3)에 저장됩니다.
  • 기본 제공 분류자와 함께 AWS Glue 크롤러를 실행하여 테이블 스키마를 감지합니다. 크롤러는 UNKNOWN 분류를 반환합니다. 하나 이상의 열이 감지되었지만 스키마가 잘못되었습니다.
  • Athena에서 테이블을 쿼리하면 "HIVE_UNKNOWN_ERROR: 입력 형식을 생성할 수 없음" 오류와 함께 쿼리가 실패합니다.

이 오류를 해결하려면 기본 제공 분류자가 지원하는 데이터 형식을 사용합니다. 기본 제공 분류자가 분류할 수 없는 데이터 형식인 경우 사용자 지정 분류자 사용을 고려하십시오.

Athena는 데이터 형식을 지원하지 않습니다.

  • 데이터는 Amazon S3에 저장됩니다.
  • 크롤러를 실행하여 테이블을 생성합니다. 크롤러는 테이블을 Athena가 지원하지 않는 형식(예: ion 또는 xml)으로 분류합니다.
  • Athena에서 테이블을 쿼리하면 "HIVE_UNKNOWN_ERROR: 입력 형식을 생성할 수 없음" 오류와 함께 쿼리가 실패합니다.

이 오류를 해결하려면 Athena가 지원하는 데이터 형식을 사용합니다.

하나 이상의 AWS Glue 테이블 정의 속성이 비어 있습니다.

  • AWS Glue 테이블은 Athena 또는 AWS Glue 크롤러에 의해 생성되지 않습니다. 테이블은 다른 방법을 사용하여 생성됩니다. 예를 들어 테이블은 AWS Glue 콘솔에서 수동으로 생성됩니다.
  • Athena에서 테이블을 쿼리하면 "HIVE_UNKNOWN_ERROR: 입력 형식을 생성할 수 없음" 오류와 함께 쿼리가 실패합니다.

이 오류는 AWS Glue 테이블 정의에서 다음 속성 중 하나 이상이 비어 있기 때문에 발생합니다.

  • 입력 형식
  • 출력 형식
  • Serde 이름

SerDe 및 데이터 형식에 대해 이러한 속성이 올바르게 설정되었는지 확인합니다. 지정하는 SerDe가 테이블 스키마를 정의한다는 점에 유의하십시오. SerDe는 테이블을 생성할 때 Athena에서 지정하는 DDL 구성을 재정의할 수 있습니다.

테이블 정의 속성을 업데이트하려면 다음을 수행합니다.

  1. AWS Glue 콘솔을 엽니다.
  2. 업데이트할 테이블을 선택합니다.
  3. [작업(Action)]을 선택한 다음, [세부 정보 보기(View details)]를 선택합니다.
  4. [테이블 편집(Edit table)]을 선택합니다.
  5. [입력 형식], [출력 형식], 또는 [Serde 이름]에 대한 설정을 업데이트합니다.
  6. [적용(Apply)]을 선택합니다.

Athena 쿼리의 데이터 원본이 지원되지 않습니다.

Athena는 테이블이 Amazon S3에 저장된 경우에만 테이블 쿼리를 지원합니다. Athena에서 지원하지 않는 데이터 원본을 쿼리하면 ‘입력 형식을 생성할 수 없음’ 오류가 발생할 수 있습니다.

이 오류를 해결하려면 Athena Query Federation SDK를 사용하세요. SDK를 사용하면 Athena를 자체 코드로 사용자 지정할 수 있습니다. Athena Federation SDK를 사용하면 다양한 데이터 원본 및 독점 데이터 형식과 통합할 수 있습니다. 새 사용자 정의 함수를 작성할 수도 있습니다. 자세한 내용은 Amazon Athena의 새로운 연합 쿼리로 데이터 원본 쿼리를 참조하세요.


관련 정보

크롤러에 분류자 추가

SerDe 사용

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