Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Aggiorna tabelle con partizioni
In Athena, una tabella e le relative partizioni devono utilizzare gli stessi formati di dati, tuttavia i loro schemi possono differire. Quando si crea una nuova partizione, questa in genere eredita lo schema della tabella. Nel corso del tempo, gli schemi possono iniziare a differire. I motivi includono:
-
Se lo schema della tua tabella cambia, gli schemi delle partizioni non vengono aggiornati per mantenere la sincronizzazione con lo schema della tabella.
-
Il AWS Glue Crawler consente di scoprire dati in partizioni con schemi diversi. Ciò significa che se si crea una tabella in Athena con AWS Glue, dopo che il crawler ha terminato l'elaborazione, gli schemi per la tabella e le relative partizioni potrebbero essere diversi.
-
Se si aggiungono partizioni direttamente utilizzando un. AWS API
Athena elabora correttamente le tabelle con partizioni se soddisfano i seguenti vincoli. Se questi vincoli non vengono soddisfatti, Athena emette un errore HIVE_ _ _ PARTITION
. SCHEMA MISMATCH
-
Ciascuno schema di partizione è compatibile con lo schema della tabella.
-
Il formato di dati della tabella consente il tipo di aggiornamento che si desidera eseguire: aggiunta, eliminazione, riordinamento o modifica del tipo di dati di una colonna.
Ad esempio, per CSV i TSV formati, puoi rinominare le colonne, aggiungere nuove colonne alla fine della tabella e modificare il tipo di dati di una colonna se i tipi sono compatibili, ma non puoi rimuovere colonne. Per altri formati, è possibile aggiungere o rimuovere colonne oppure modificare il tipo di dati di una colonna in un altro tipo se i tipi sono compatibili. Per ulteriori informazioni, consulta il Riepilogo: aggiornamenti e formati di dati in Athena.
Evita gli errori di mancata corrispondenza dello schema per le tabelle con partizioni
All'inizio dell'esecuzione di una query, Athena verifica lo schema della tabella controllando che ogni tipo di dati colonna sia compatibile tra la tabella e la partizione.
-
Per Parquet e ORC i tipi di archiviazione dei dati, Athena si affida ai nomi delle colonne e li utilizza per la verifica dello schema basato sui nomi delle colonne. In questo modo si eliminano
HIVE_PARTITION_SCHEMA_MISMATCH
gli errori per le tabelle con partizioni in Parquet e. ORC (Questo è vero ORC se la SerDe proprietà è impostata per accedere all'indice per nome:orc.column.index.access=FALSE
. Per impostazione predefinita, Parquet legge l'indice per nome). -
PerCSV, e AvroJSON, Athena utilizza una verifica dello schema basata su indici. Questo significa che, se si verifica un errore di mancata corrispondenza di schema, è necessario eliminare la partizione che provoca tale differenza e ricrearla, in modo che Athena possa eseguire le query senza errori.
Athena confronta lo schema della tabella con gli schemi della partizione. Se create una tabella in CSVJSON, e AVRO in Athena con AWS Glue Crawler, dopo che il Crawler ha terminato l'elaborazione, gli schemi per la tabella e le relative partizioni potrebbero essere diversi. Se non c'è corrispondenza tra lo schema della tabella e gli schemi delle partizioni, le query falliranno in Athena a causa dell'errore di verifica dello schema simile a questo: 'crawler_test.click_avro' è dichiarato come tipo "string", ma la partizione "partition_0 = 2017-01-17" ha dichiarato la colonna "col68" come tipo "doppio"'.
Una tipica soluzione per questi errori è eliminare la partizione che provoca l'errore e ricrearla. Per ulteriori informazioni, consulta ALTER TABLE DROP PARTITION e ALTER TABLE ADD PARTITION.