JSONPATHARRAY
JSONPATHARRAY
JSONPATHARRAY 함수는 jsonField에서 'jsonPath'를 기반으로 배열을 추출하는 함수예요. 결과 타입은 JSON 값에 따라 추론돼요. 이 함수는 수집 변환 함수에서만 사용할 수 있어요.
출처: 문서
본문
jsonField에서 'jsonPath'를 기반으로 배열을 추출하고, 결과 타입은 JSON 값에 따라 추론돼요. 이 함수는 수집 변환 함수에서만 사용할 수 있어요.
시그니처 (Signature)
JSONPATHARRAY(jsonField, 'jsonPath')
| Arguments | Description |
|---|---|
jsonField |
JSON 문서를 포함하는 Identifier/Expression |
'jsonPath' |
JSON 문서에서 값을 읽기 위해 JsonPath 문법을 따름 |
'jsonPath'`은 리터럴이에요. Pinot은 이를 **식별자(identifier)**와 구분하기 위해 작은따옴표를 사용해요.
데이터를 가져오기 전에 Jayway JsonPath Evaluator Tool을 사용해 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 |
|---|---|
JSONPATHARRAY(myJsonRecord, '$.subjects[*].name') |
["maths", "english"] |
JSONPATHARRAY(myJsonRecord, '$.subjects[*].score') |
[90, 70] |
JSONPATHARRAY(myJsonRecord, '$.subjects[*].homework_grades[1]') |
[85, 65] |
이 함수는 아래와 같이 테이블 설정에서 name, score, 그리고 homework_grades의 두 번째 값을 각각의 컬럼으로 추출하는 데 사용할 수 있어요:
{
"tableConfig":{
"ingestionConfig":{
"transformConfigs":[
{
"columnName":"names",
"transformFunction":"JSONPATHARRAY(data, '$.subjects[*].name')"
},
{
"columnName":"ages",
"transformFunction":"JSONPATHARRAY(data, '$.subjects[*].score')"
},
{
"columnName":"homeworkGrades",
"transformFunction":"JSONPATHARRAY(data, '$.subjects[*].homework_grades[1]')"
}
]
}
}
}