Ejemplos de extractores de rutas - Amazon Athena

Ejemplos de extractores de rutas

En los ejemplos siguientes de extractores de rutas se muestra cómo aplanar los campos y cambiarles el nombre o extraer datos como texto de Amazon Ion.

Aplanado y cambio de nombre de los campos

En el siguiente ejemplo, se muestra un conjunto de rutas de búsqueda que aplanan y cambian los nombres de los campos. En el ejemplo, se utilizan las rutas de búsqueda para hacer lo siguiente:

  • asignar la columna nickname al campo alias y

  • asignar la columna name al subcampo name ubicado en la estructura identification.

A continuación, se presenta el documento de Amazon Ion de ejemplo.

-- Example Amazon Ion Document { identification: { name: "John Smith", driver_license: "XXXX" }, alias: "Johnny" }

A continuación, se muestra la instrucción CREATE TABLE de ejemplo que define los extractores de rutas.

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

En el siguiente ejemplo, se muestran los datos extraídos.

-- Extracted Table | name | nickname | |--------------|--------------| | "John Smith" | "Johnny" |

Para obtener más información sobre las rutas de búsqueda y ejemplos de rutas de búsqueda adicionales, consulte Extracción de rutas Ion Java en GitHub.

Extracción de datos de vuelo en formato de texto

En el siguiente ejemplo, la consulta CREATE TABLE utiliza WITH SERDEPROPERTIES para agregar extractores de rutas con el objetivo de extraer datos de vuelo y especificar la codificación de salida como texto de Amazon Ion. En el ejemplo se utiliza la sintaxis 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/'