¿Por qué el resultado TIMESTAMP está vacío cuando consulto una tabla en Amazon Athena?

2 minutos de lectura
0

Cuando consulto una columna de datos de TIMESTAMP en mi tabla de Amazon Athena, aparecen resultados vacíos o la consulta falla. Los datos existen en el archivo de entrada.

Descripción breve

Es posible que los datos TIMESTAMP tengan un formato incorrecto. Athena requiere el formato TIMESTAMP de Java:

YYYY-MM-DD HH:MM:SS.fffffffff

Para cambiar los datos TIMESTAMP al formato correcto:

  1. Defina la columna como STRING.
  2. Use las funciones de fecha y hora de Presto para leer la columna como DATE o TIMESTAMP en su consulta.

Resolución

Defina la columna como STRING

Ejecute un comando similar al siguiente:

CREATE EXTERNAL TABLE 'test' ('ts' STRING)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
LOCATION 's3://doc-example-bucket/path-to-data/'

Use las funciones de fecha y hora de Presto para leer la columna como DATE o TIMESTAMP en su consulta

Si los datos de entrada tienen el siguiente formato:

20200921T015005
20200923T095605

A continuación, utilice la función date_parse como se muestra en el siguiente ejemplo:

SELECT date_parse(ts,'%Y%m%dT%h%i%s') FROM timestamptestcsv3

**Nota:**El formato de la función date_parse(string,format) debe ser el formato TIMESTAMP que se utiliza en los datos.

Si los datos de entrada están en formato ISO 8601, como se muestra a continuación:

2020-11-14T02:34:48Z

A continuación, utilice la función from_iso8601_timestamp() para leer el campo ts como TIMESTAMP. Ejemplo:

SELECT from_iso8601_timestamp(ts) FROM timestamptestcsv3

Información relacionada

Tipos de datos en Amazon Athena

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años