카테고리 없음
[SQL] JSON함수 | json_extract_scalar 함수(redash)
쥬니어헬퍼
2023. 2. 25. 17:34
반응형
마케팅 레벨의 데이터 분석을 하면서 유저의 로그를 다루다보면 json친구를 만날 수 있게 되는데요, 언뜻보면 굉장히 복잡해보이는 친구이지만 사실은 쉬운 함수랍니다. SQL 에서 JSON함수를 사용해서 다음 작업을 수행할 수 있습니다.
JSON 함수는 왜 쓰나요? (잘은 모르지만)
자세히는 모르겠으나 제가 이해한 개념으로는 JSON이란 데이터를 저장하거나 전송할때 데이터 용량을 줄일 수 있는 데이터 포맷입니다.
서버와 클라이언트 간의 교류에서 일반적으로 사용된다고 해서, 유저의 이벤트 로그를 저장해두는 테이블에서 심심찮게 보게 되더라구요.
보통 이런식의 데이터 포맷으로 한 컬럼의 값으로 들어가 잇는데요, 이 중 하나의 속성을 추출하고 싶을때 JSON 함수를 사용하면 됩니다.
{"Path":"/page/01","product_id":"5f55a6c0000e10000ab6d10","language":"kr","userId":"donmoosae","product_title":"돈무새 상품1","category_title":"뷰티","category_id":"604f1c00000"}
JSON 함수는 어떻게 쓰나요?
함수는 이렇게 사용합니다.
json_extract_scalar(json컬럼명, '$.속성명')
json_extract_scalar(properties, '$.product_id')
[예시]
SELECT
유저 아이디,
json_extract_scalar(properties, '$.product_title'),
json_extract_scalar(properties, '$.amount')
From 테이블1
[반환값]
donmoosae1, 돈무새 상품1, 10000
donmoosae2, 돈무새 상품1, 10000
[테이블 1]
유저 아이디 | event | timestamp_date | properties |
donmoosae1 | Product_Viewed | 2023-02-25 00:00:00 | {"Path":"/page/01","product_id":"5f55a6c0000e10000ab6d10","language":"kr","userId":"donmoosae","product_title":"돈무새 상품1","category_title":"뷰티","category_id":"604f1c00000","amount":"10000"} |
donmoosae2 | Product_Viewed | 2023-02-25 00:00:00 | {"Path":"/page/01","product_id":"5f55a6c0000e10000ab6d10","language":"kr","userId":"donmoosae","product_title":"돈무새 상품1","category_title":"뷰티","category_id":"604f1c00000","amount":"10000"} |
반응형