본문 바로가기

aws athena 쿼리 저장

(4)
athena test table 적당히 테스트값을 입력하고 함수를 실행해볼 테이블을 만든다 select cast(splited_str as int) as number_column from unnest(split('1,2,3,4', ',')) s(splited_str)
remove accents in athena query 연관검색어 생성 로직을 만들면서 athena와 mysql을 섞어썼는데, 과정에서 생각하지 못한 에러가 발생했다. mysql varchar에서 영어 accent를 구분하지 않아서, athena에서 가져온 값과 어긋나는 것이었다. 연관검색어를 추천할때 알파벳에 accent가 붙어 있는지 없는지는 중요하지 않았기 때문에 accent는 없애기로 했다. accent를 없애면서 normalize라는 것을 알게됐는데, 이것은 한글을 초성,중성,종성으로 분리하는데에도 써먹을 수 있었다. SELECT NORMALIZE(REGEXP_REPLACE(NORMALIZE('á, é, í, ó, ú, ü, ñ', NFD), '[\u0300-\u036f]', ''), NFC)
[athena] split string into array string to array SELECT regexp_split('abcd', '') array to string SELECT array_join(regexp_split('abcd', ''), ' ')
[ATHENA Query] url parameter 타입 체크하기 할일 get request에서 정수가 들어있어야 하는 부분 Valid체크 필요한 함수 TRY_CAST: varchar -> integer로 타입변환 URL_EXTRACT_PARAMETER: parameter에서 필요한 값을 추출 CONCAT: query_string에 물음표(?)를 붙여줘야 URL_EXTRACT_PARAMETER가 작동한다 SELECT * FROM "디비"."테이블" WHERE year = '1993' AND month = '02' AND day = '05' AND uri = 'localhost:유알엘' AND TRY_CAST ( URL_EXTRACT_PARAMETER(CONCAT('?', URL_DECODE(query_string)), 'integer가 들어있어야 하는 필드') AS I..