JSONPATH

JSONPATH

JSONPATH 함수는 jsonField에서 'jsonPath'를 기반으로 객체 값을 추출하는 함수예요. 결과 타입은 JSON 값에 따라 추론돼요. 이 함수는 수집 변환 함수에서만 사용할 수 있어요.

출처: 문서

본문

jsonField에서 'jsonPath'를 기반으로 객체 값을 추출하고, 결과 타입은 JSON 값에 따라 추론돼요. 이 함수는 수집 변환 함수에서만 사용할 수 있어요.

시그니처 (Signature)

JSONPATH(jsonField, 'jsonPath')

Arguments Description
jsonField JSON 문서를 포함하는 Identifier/Expression
'jsonPath' JSON 문서에서 값을 읽기 위해 JsonPath 문법을 따름

'jsonPath'`은 리터럴이에요. Pinot은 이를 **식별자(identifier)**와 구분하기 위해 작은따옴표를 사용해요.

데이터를 가져오기 전에 JsonPath 테스터 도구를 사용해 JSON 표현식을 테스트할 수 있어요.

사용 예시 (Usage Examples)

다음 JSON 문서에서 필드를 추출하는 데 기반한 예시예요:

{
  "data": {
    "name": "Pete",
    "age": 24,
    "subjects": [
      {
        "name": "maths",
        "homework_grades": [80, 85, 90, 95, 100],
        "grade": "A",
        "score": 90
      },
      {
        "name": "english",
        "homework_grades": [60, 65, 70, 85, 90],
        "grade": "B",
        "score": 70
      }
    ]
  }
}
Expression Value
JSONPATH(data, '$.name') "Pete"
JSONPATH(data, '$.age') 24

이 함수는 아래와 같이 테이블 설정에서 name 속성을 name 컬럼으로, age 속성을 age 컬럼으로 추출하는 데 사용할 수 있어요:

{
   "tableConfig":{
      "ingestionConfig":{
         "transformConfigs":[
            {
               "columnName":"name",
               "transformFunction":"JSONPATHSTRING(data, '$.name')"
            },
            {
               "columnName":"age",
               "transformFunction":"JSONPATHSTRING(data, '$.age')"
            }
         ]
      }
   }
}

더 알아보기 (Learn more)