Glue Crawlers가 Ion 데이터를 올바르게 인식하지 못함 - 해결 방법은 다음과 같습니다.

3622 단어
Amazon Ion은 DynamoDB에서 S3로 데이터를 내보낼 때 사용할 수 있는 데이터 직렬화 형식 중 하나입니다. 최근에 Glue Crawler를 사용하여 스키마와 테이블을 생성한 후 Athena로 이러한 내보내기 중 하나에서 데이터를 선택하려고 했습니다. 작동하지 않았고 이상한 오류 메시지가 표시되었습니다. 이번 포스팅에서는 그 문제를 해결하는 방법을 알려드리겠습니다. 아직 Ion에 익숙하지 않은 경우 자세한 내용을 소개합니다.

먼저 내가 이 일을 하고 싶은 이유를 설명해야 합니다. DynamoDB는 상대적으로 정적인 액세스 패턴을 가진 데이터에 적합한 NoSQL 데이터베이스입니다. 예측 가능한 대기 시간으로 방대한 양의 데이터를 쉽게 처리합니다. 이는 OLTP 워크로드에 적합하지만 분석 워크로드에는 일반적으로 정적 액세스 패턴 외에는 아무것도 없습니다. 그 때문에 데이터를 S3로 내보내고 분석 쿼리를 수행하기 위해 S3의 데이터에 대해 SQL을 던질 수 있는 서비스인 Athena를 사용하기로 결정했습니다.

Athena가 데이터를 읽을 수 있으려면 열 및 데이터 구조에 대한 정보와 스토리지 위치 및 데이터를 읽거나 쓰는 방법에 대한 정보를 포함하는 Glue 데이터 카탈로그의 테이블이 필요합니다. 모든 정보를 수동으로 채우고 싶지 않다면 크롤러를 사용하여 S3의 데이터를 선별하고 이를 기반으로 테이블을 생성할 수 있습니다. 그게 내가하려고 한 것입니다. 나는 나를 위해 테이블을 설정하는 크롤러를 배포하고 실행했습니다. 모든 것이 언뜻보기에 훌륭해 보였습니다.

Athena에서 데이터를 쿼리했을 때 다음과 같은 아름다운 오류 메시지로 응답했습니다.

HIVE_UNSUPPORTED_FORMAT: Unable to create input format





당연히 Athena의 테이블에서 무슨 일이 일어나고 있는지 보려고 했지만 그다지 도움이 되지는 않았습니다. create table 문도 표시되지 않습니다.

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. java.lang.NullPointerException





이때 조금 짜증이 났습니다. Glue의 테이블을 보고 혼란스러워졌습니다. 크롤러 모자가 데이터 형식을 인식하는 것처럼 보이는 "분류: 이온"레이블을 보았습니다. 아래 스키마에서도 파일의 열과 데이터 유형을 올바르게 식별했습니다.



어떤 이유로든 필수 정보가 누락되었지만 Serde(Serializer/Deserializer)가 구성되어 있지 않아 데이터를 읽을 수 있는 방법을 시스템에 알릴 수 있습니다. documentation을 간략히 살펴보면 직렬 변환기 정보가 정적이고 계산되지 않는 세 개의 키-값 쌍으로 구성되어 있음을 알 수 있습니다. 크롤러가 추가하지 못한 이유를 모르겠습니다.

이 문제를 해결하려면 Glue의 "표 편집"대화 상자에 값을 추가하기만 하면 다음과 같이 표시됩니다.



복사하여 붙여넣기 가능한 버전은 다음과 같습니다.

Input Format:
com.amazon.ionhiveserde.formats.IonInputFormat

Output Format:
com.amazon.ionhiveserde.formats.IonOutputFormat

Serde serialization lib
com.amazon.ionhiveserde.IonHiveSerDe


그런 다음 원래 문을 다시 실행할 수 있으며 이제 Athena에서 데이터를 볼 수 있습니다.



크롤러가 왜 이런 기본 정보를 추가하지 않는지 이해가 안 되지만, AWS 지원팀과 이야기를 해보니 알려진 오류인 것 같고, 서비스 팀에서도 이를 인지하고 있습니다. 그들이 그것을 고칠 경우 또는 언제 - 평소와 같이 ETA가 없습니다.

이 게시물에서 무언가를 배웠기를 바랍니다. 질문, 피드백 또는 우려 사항이 있으면 언제든지 환영합니다.

— 모리스

제목 Photo by Torbjørn Helgesen on Unsplash

좋은 웹페이지 즐겨찾기