Uso de un SerDe
Un SerDe (serializador/deserializador) es un método que Athena emplea para interactuar con datos en varios formatos.
Es el SerDe especificado, y no el DDL, el que define el esquema de la tabla. En otras palabras, el SerDe puede anular la configuración de DDL que ha especificado en Athena al crear la tabla.
Para utilizar un SerDe en consultas
Para utilizar un SerDe al crear una tabla en Athena, utilice uno de los métodos a continuación:
-
Especifique
ROW FORMAT DELIMITED
y, a continuación, utilice instrucciones DDL para especificar delimitadores de campo, como en el ejemplo siguiente. Cuando especifiqueROW FORMAT DELIMITED
, Athena utiliza LazySimpleSerDe de forma predeterminada.ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' ESCAPED BY '\\' COLLECTION ITEMS TERMINATED BY '|' MAP KEYS TERMINATED BY ':'
Para ver ejemplos de
ROW FORMAT DELIMITED
, consulte los siguientes temas:LazySimpleSerDe para CSV, TSV y archivos con delimitación personalizada
Consultas de registros de Amazon CloudFront
Consultas de los registros de Amazon EMR
-
Utilice
ROW FORMAT SERDE
para especificar explícitamente el tipo de SerDe que Athena debe usar al leer y escribir datos en la tabla. En el ejemplo siguiente, se especifica LazySimpleSerDe. Para especificar los delimitadores, utiliceWITH SERDEPROPERTIES
. Las propiedades especificadas porWITH SERDEPROPERTIES
corresponden a las declaraciones separadas (comoFIELDS TERMINATED BY
) en el ejemploROW FORMAT DELIMITED
.ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' WITH SERDEPROPERTIES ( 'serialization.format' = ',', 'field.delim' = ',', 'collection.delim' = '|', 'mapkey.delim' = ':', 'escape.delim' = '\\' )
Para ver ejemplos de
ROW FORMAT SERDE
, consulte los siguientes temas: