3.5.4.3. S3 JSON 구문 분석


JSON 문서를 사용하면 제한 없이 개체 또는 배열 내에 값을 중첩할 수 있습니다. S3 선택 엔진의 JSON 문서의 특정 값을 쿼리할 때 값의 위치는 SELECT 문의 경로를 통해 지정됩니다.

JSON 문서의 일반 구조에는 CSV 및 Parquet와 같은 행 및 열 구조가 없습니다. 대신 JSON 문서를 쿼리할 때 행과 열을 정의하는 SQL 문 자체입니다.

S3 Select 엔진의 JSON 구문 분석기는 다음과 같이 S3 개체를 구문 분석합니다.

  • SELECT 문의 FROM 절은 행 경계를 정의합니다.
  • JSON 문서의 행은 CSV 개체에 대한 행을 정의하는 데 행 구분 기호를 사용하는 방법 및 Parquet 오브젝트에 대한 행을 정의하는 데 사용되는 방법과 유사합니다.
  • 다음 예제를 고려하십시오.

    {
        "firstName": "Joe",
        "lastName": "Jackson",
        "gender": "male",
        "age": "twenty"
    },
    
    {
        "firstName": "Joe_2",
        "lastName": "Jackson_2",
        "gender": "male",
        "age": 21
    },
    
    "phoneNumbers":
    [
        { "type": "home1", "number": "734928_1","addr": 11 },
        { "type": "home2", "number": "734928_2","addr": 22 }
    ],
    
    "key_after_array": "XXX",
    
    "description" :
    {
        "main_desc" : "value_1",
        "second_desc" : "value_2"
    }
    
    # the from-clause define a single row.
    # _1 points to root object level.
    # _1.age appears twice in Documnet-row, the last value is used for the operation.
    query = "select _1.firstname,_1.key_after_array,_1.age+4,_1.description.main_desc,_1.description.second_desc from s3object[*].aa.bb.cc;";
    
    expected_result = Joe_2,XXX,25,value_1,value_2

    • 이 설명은 리더에게 aa.bb.cc 경로를 검색하고 이 경로의 발생에 따라 행 경계를 정의하도록 지시합니다.
    • 행은 독자가 경로에 직면할 때 시작되고, 리더가 경로의 가장 내부 부분을 종료할 때 종료됩니다. 이 경우 오브젝트 cc 입니다.
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동