경로 추출기 예제 - Amazon Athena

경로 추출기 예제

다음 경로 추출기 예제는 필드를 평면화하고 이름을 바꾸는 방법 또는 데이터를 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(Ion Java 경로 추출) 페이지를 참조하세요.

비행 데이터를 텍스트 형식으로 추출

다음 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/'