728x90
반응형
상황
회사에서 테이블 신규 요청이 오면 엑셀로 요청이 온다.
그런데 요청 온 엑셀은 가지각색이라 우리의 엑셀 형태에 맞춰서 다시 작성한 뒤 파이썬으로 Hql 파일을 생성한다.
평상 시에 잘 사용하던 스크립트였는데, 오늘 실패가 되어 확인해보니 처음 마주했던 에러였다.
line 1:8: mismatched input 'external'. expecting: 'or', 'schema', 'table', 'view’
원인 파악
우리가 생성하는 테이블은 Glue에서 생성하고 location은 S3로 되어있다.
그래서 external을 사용한다.
external 키워드를 뺄 문제가 아니다.
그러면 무엇이 문제일까?
사용자에게 받은 엑셀에서 컬럼명, 컬럼 타입, 컬럼설명은 그대로 붙혀넣었기 때문에 이 3가지를 중점으로 먼저 체크했다.
체크할 부분
- 각 row 별 ,(콤마)가 빠져있는지
- COMMENT 부분을 싱글 쿼테이션으로 감싸는데, 중간에 들어간 값이 있는지
결과
1번은 해당사항이 없었다.
2번에서 추출이 되었는데, 컬럼설명 안에 '부가내용'이 들어있었다.
회사 테이블이라서 대략적인 형태를 보인다면 아래와 같았다.
`rowId` string comment 'row'행'의 id',
해당 부분은 삭제를 해도되어 삭제를 하였다.
추가 에러
될 줄 알았는데, 컬럼 설명은 255자를 넘을 수 없다며, 에러가 발생하였고 해당 부분은 글자수 줄여서 조치를 했다.
느낀점
매번 자주하던 작업이였지만, 해당 에러는 처음 접했다.
사용자에게는 어떠한 변칙적인 데이터가 올지 모른다고 생각했다.
방어로직이 필요하다고 생각했다.
728x90
반응형
'개발기록 > AWS' 카테고리의 다른 글
glue schema와 다른 데이터가 왔을 때 조치한 썰 (3) | 2024.11.14 |
---|