해결된 질문
작성
·
230
1
json 형태의 로그를 수집 후
table a | parse json_parser(생성) 로 파싱을 하면 Key value가 정상적으로 파싱이 되는데 그 이후에 value들을 , 기준으로 짤라서 사용할 수 있을까요?? 이런 형태입니다. key(b): value(c,d,e)
답변 1
0
안녕하세요. 파싱 이후에 값을 재가공은 데이터 처리하는 데 있어 다양한 방식으로 빈번한 요구사항이 있습니다.
일단 파싱을하면 b라는 컬럼에 c,d,e라는 텍스트로 값이 들어가게 될 것인데요.
이 값을 split이라는 함수로 배열로 만들 수 있습니다. 그 이후 배열의 값을 문자열 함수를 사용하여 원하는 대로 가공할 수 있습니다.
1. 값을 하나씩 별도의 필드로 추출하는 방식
- 이는 valueof 라는 함수를 사용하여 배열의 값을 필드로 추출하는 방식입니다.
json "{ 'b' : 'c,d,e'}" | eval b2 = split(b, ","), b_c = valueof(b2, 0), b_d = valueof(b2, 2), b_e = valueof(b2, 2)
2. 배열의 값을 하나씩 행으로 생성하는 방식
- 이는 explode라는 쿼리를 사용하여 c, d, e를 각각의 행으로 만드는 방식입니다.
json "{ 'b' : 'c,d,e'}" | eval b2 = split(b, ",") | explode b2
함수를 가지고 배열 혹은 문자열 자체를 재가공 하실 수 있습니다.