Gluw crawler 는 s3 데이터를 분석하여 글루 데이터 카탈로그 스키마를 만들어 내는 서비스 이다.
문제점
gtm 수집 쪽에서 스키마를 변경할 경우 s3 에 기존 데이터와 스키마가 혼재되어 아테나 쿼리할 때 에러가 발생한다.
- 필드의 데이터 타입을 변경 하였을 때 크롤러를 돌려도 변경감지가 안돼고 기존의 데이터 타입으로 인식한다.
이를 해결하고 정책 수립
- 한 테이블에서 혼재된 스키마 활용가능한지
- 한 테이블에서 사용하지 못한다면 대체 방법 ?
1. 연구 1 : 스키마가 혼재 되어 있을 때 기존 테이블에서 인식하여 한 테이블로 처리가 가능한지 확인
1.1 먼저 데이터 타입을 변경한 것이 반영되지 않는 것을 해결해본다.
1.1.1 크롤러 옵션 변경을 통해 시도
crawl new folders only -> crawl all folder
변경사항을 무시하고 데이터 카탈로그에서 테이블 업데이트 안 함 -> 데이터 카탈로그에서 테이블 정의 업데이트
데이터 카 탈로그에서 테이블과 파티션을 삭제합니다. -> 데이터 카탈로그에서 해당 테이블을 사용중지로 표시
위와 같은 변경 사항에도 새로운 데이터 타입을 인식하지 못한다.
1.1.2 스키마 변경 전 데이터와 스키마 변경 후 데이터를 분리하여 디렉토리에 각각 넣은 후 각각 크롤러 생성 하여 조회 되는지 확인 → 확인 결과 데이터의 디렉토리 위치 변경하면 정상적인 스키마 크롤링이 되었다.
1.1.3 증분 크롤링이라는 것이 있다. 혹시 변경된 스키마를 감지하는 것인가 했는데 안정적인 스키마에서 새로운 파티션 인식에 쓰이는 듯 하다.
1.1.4 aws 기술지원에 문의 시 글루 크롤러는 멀티플 스키마를 지원하지 않는다 라는 대답을 들었다고 한다. (https://stackoverflow.com/questions /52181722/suggested-json-structure-for-mixed-schema-events-to-be-crawled-by-glue)
-> 결론 mixed 스키마를 가진 디렉토리에 크롤러를 돌리면 하나의 아테나 테이블에서 조회가 되지 않는다. 따라서 칼럼 하나에 스키마 버전을 표기하여 수정때 해당 버전을 올려서 파티셔닝 되게 한 후 크롤러는 각각의 테이블을 만들도록 세팅한다.
'일 > aws' 카테고리의 다른 글
AWS Glue 활용기 #4 :: Glue Crawler 트러블 슈팅 2/2 (0) | 2022.05.01 |
---|---|
AWS Glue 활용기 #3 :: Glue workflow (0) | 2022.03.27 |
AWS Glue 활용기 #2 :: Glue job 개발 (0) | 2022.03.27 |
AWS Glue 활용기 #1 :: Architect (0) | 2022.03.27 |
Amazon EMR 구축 #2 :: 프로비저닝 (0) | 2022.02.01 |