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')"
}
]
}
}
}