경로 추출기 예제
다음 경로 추출기 예제는 필드를 평면화하고 이름을 바꾸는 방법 또는 데이터를 Amazon Ion 텍스트로 추출하는 방법을 보여줍니다.
필드 평면화 및 이름 바꾸기
다음 예제에서는 필드를 평면화하고 이름을 바꾸는 검색 경로 집합을 보여 줍니다. 이 예제에서는 검색 경로를 사용하여 다음을 수행합니다.
-
nickname열을alias필드로 매핑 -
name열을identification구조체에 위치한name하위 필드로 매핑.
다음은 Amazon Ion 문서의 예입니다.
-- Example Amazon Ion Document { identification: { name: "John Smith", driver_license: "XXXX" }, alias: "Johnny" }
다음은 경로 추출기를 정의하는 CREATE TABLE 문의 예입니다.
-- Example DDL Query CREATE EXTERNAL TABLE example_schema2 ( name STRING, nickname STRING ) ROW FORMAT SERDE 'com.amazon.ionhiveserde.IonHiveSerDe' WITH SERDEPROPERTIES ( 'ion.nickname.path_extractor' = '(alias)', 'ion.name.path_extractor' = '(identification name)' ) STORED AS ION LOCATION 's3://amzn-s3-demo-bucket/path_extraction2/'
다음 예제에서는 추출된 데이터를 보여줍니다.
-- Extracted Table | name | nickname | |--------------|--------------| | "John Smith" | "Johnny" |
검색 경로 및 추가 검색 경로 예제에 대한 자세한 내용은 GitHub의 Ion Java Path Extraction
비행 데이터를 텍스트 형식으로 추출
다음 CREATE TABLE 쿼리 예제는 WITH
SERDEPROPERTIES를 사용하여 비행 데이터를 추출하기 위한 경로 추출기를 추가하고 출력 인코딩을 Amazon Ion 텍스트로 지정합니다. 이 예제에서는 STORED AS
ION 구문을 사용합니다.
CREATE EXTERNAL TABLE flights_ion ( yr INT, quarter INT, month INT, dayofmonth INT, dayofweek INT, flightdate STRING, uniquecarrier STRING, airlineid INT, ) ROW FORMAT SERDE 'com.amazon.ionhiveserde.IonHiveSerDe' WITH SERDEPROPERTIES ( 'ion.encoding' = 'TEXT', 'ion.yr.path_extractor'='(year)', 'ion.quarter.path_extractor'='(results quarter)', 'ion.month.path_extractor'='(date month)') STORED AS ION LOCATION 's3://amzn-s3-demo-bucket/'