쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

JSON 데이터 쿼리

포커스 모드
JSON 데이터 쿼리 - Amazon Athena

Amazon Athena를 사용하면 JSON 인코딩된 데이터를 쿼리하고 중첩된 JSON에서 데이터를 추출하고, 값을 검색하고, JSON 어레이의 길이와 크기를 찾을 수 있습니다. Athena에서 JSON 데이터를 쿼리하는 방법에 대한 기본 정보를 알아보려면 다음 샘플 행성 데이터를 고려해 보세요.

{name:"Mercury",distanceFromSun:0.39,orbitalPeriod:0.24,dayLength:58.65} {name:"Venus",distanceFromSun:0.72,orbitalPeriod:0.62,dayLength:243.02} {name:"Earth",distanceFromSun:1.00,orbitalPeriod:1.00,dayLength:1.00} {name:"Mars",distanceFromSun:1.52,orbitalPeriod:1.88,dayLength:1.03}

각 레코드(기본적으로 테이블의 각 행)가 어떻게 별도의 줄에 있는지 확인하세요. JSON 데이터를 쿼리하려면 다음과 같은 간단한 CREATE TABLE 문을 사용할 수 있습니다.

CREATE EXTERNAL TABLE `planets_json`( `name` string, `distancefromsun` double, `orbitalperiod` double, `daylength` double) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat' LOCATION 's3://amzn-s3-demo-bucket/json/'

데이터를 쿼리하려면 다음 예제와 같은 간단한 SELECT 문을 사용할 수 있습니다.

SELECT * FROM planets_json

쿼리 결과는 다음과 같이 나타납니다.

# name distancefromsun orbitalperiod daylength
1 수성 0.39 0.24 58.65
2 금성 0.72 0.62 243.02
3 지구 1.0 1.0 1.0
4 화성 1.52 1.88 1.03

CREATE TABLE 문에서 각 JSON 레코드가 별도의 줄에 있을 것을 요구하는 OpenX JSON SerDe를 어떻게 사용하는지 확인하세요. JSON이 예쁜 인쇄 형식으로 되어 있거나 모든 레코드가 한 줄에 있는 경우 데이터를 제대로 읽을 수 없습니다.

예쁜 인쇄 형식의 JSON 데이터를 쿼리하려면 OpenX JSON SerDe 대신 Amazon Ion Hive SerDe를 사용할 수 있습니다. 이전 데이터가 예쁜 인쇄 형식으로 저장되어 있다고 가정해 보겠습니다.

{ name:"Mercury", distanceFromSun:0.39, orbitalPeriod:0.24, dayLength:58.65 } { name:"Venus", distanceFromSun:0.72, orbitalPeriod:0.62, dayLength:243.02 } { name:"Earth", distanceFromSun:1.00, orbitalPeriod:1.00, dayLength:1.00 } { name:"Mars", distanceFromSun:1.52, orbitalPeriod:1.88, dayLength:1.03 }

형식을 다시 지정하지 않고 이 데이터를 쿼리하려면 다음과 같은 CREATE TABLE 문을 사용할 수 있습니다. 이 문은 OpenX JSON SerDe를 지정하는 대신 STORED AS ION을 지정하는 것을 볼 수 있습니다.

CREATE EXTERNAL TABLE `planets_ion`( `name` string, `distancefromsun` DECIMAL(10, 2), `orbitalperiod` DECIMAL(10, 2), `daylength` DECIMAL(10, 2)) STORED AS ION LOCATION 's3://amzn-s3-demo-bucket/json-ion/'

쿼리 SELECT * FROM planets_ion은 이전과 동일한 결과를 생성합니다. Amazon Ion Hive Serde를 사용하여 이러한 방식으로 테이블을 생성하는 방법에 대한 자세한 내용은 Amazon Ion 테이블 생성 섹션을 참조하세요.

위의 예제 JSON 데이터에는 중첩된 배열 또는 구조체와 같은 복잡한 데이터 유형이 포함되어 있지 않습니다. 중첩된 JSON 데이터의 쿼리에 대한 자세한 내용은 예제: 중첩 JSON 역직렬화 섹션을 참조하세요.

프라이버시사이트 이용 약관쿠키 기본 설정
© 2024, Amazon Web Services, Inc. 또는 계열사. All rights reserved.