카테고리 없음

[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"}

 

 

 

반응형