Perché il risultato TIMESTAMP è vuoto quando eseguo una query su una tabella in Amazon Athena?

2 minuti di lettura
0

Quando eseguo una query su una colonna di dati TIMESTAMP nella mia tabella Amazon Athena, ottengo risultati vuoti o la query ha esito negativo. I dati esistono nel file di input.

Breve descrizione

I dati TIMESTAMP potrebbero essere nel formato errato. Athena richiede il formato Java TIMESTAMP:

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

Per modificare i dati TIMESTAMP con il formato corretto:

  1. Definisci la colonna come STRING.
  2. Usa le funzioni di data e ora di Presto per leggere la colonna come DATE o TIMESTAMP nella tua query.

Risoluzione

Definisci la colonna come STRING

Esegui un comando simile al seguente:

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

Usa le funzioni di data e ora di Presto per leggere la colonna come DATE o TIMESTAMP nella tua query

Se i dati di input sono nel seguente formato:

20200921T015005
20200923T095605

utilizza la funzione date\ _parse come mostrato nell'esempio seguente:

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

**Nota:**il formato nella funzione date_parse(string,format) deve essere il formato TIMESTAMP utilizzato nei dati.

Se i dati di input sono nel formato ISO 8601, come di seguito:

2020-11-14T02:34:48Z

Usa la funzione from_iso8601_timestamp() per leggere il campo ts come TIMESTAMP. Esempio:

SELECT from_iso8601_timestamp(ts) FROM timestamptestcsv3

Informazioni correlate

Tipi di dati in Amazon Athena

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa