Risolvi i problemi in Athena - Amazon Athena

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à.

Risolvi i problemi in Athena

Il team Athena ha raccolto le seguenti informazioni sulla risoluzione dei problemi dei clienti. Sebbene non siano complete, includono consigli su alcuni problemi comuni relativi a prestazioni, timeout e memoria esaurita.

CREATETABLEAS () SELECT CTAS

I dati duplicati si verificano con istruzioni simultanee CTAS

Athena non mantiene la convalida simultanea per. CTAS Assicurati che non vi siano CTAS dichiarazioni duplicate per la stessa posizione nello stesso momento. Anche se un'INSERTINTOistruzione CTAS or ha esito negativo, i dati orfani possono essere lasciati nella posizione dei dati specificata nell'istruzione.

HIVE_TOO_MANY_OPEN_PARTITIONS

Quando si utilizza un'CTASistruzione per creare una tabella con più di 100 partizioni, è possibile che venga visualizzato l'errore HIVE_ _ _ TOO MANY OPEN _PARTITIONS: Superato il limite di 100 open writer per partizioni/bucket. Per ovviare a questa limitazione, è possibile utilizzare un'CTASistruzione e una serie di INSERT INTO istruzioni che creano o inseriscono fino a 100 partizioni ciascuna. Per ulteriori informazioni, consulta Utilizzare CTAS e INSERT INTO aggirare il limite di 100 partizioni.

Problemi con i file di dati

Athena non riesce a leggere i file nascosti

Athena considera i file sorgente che iniziano con un trattino basso (_) o un punto (.) come nascosti. Per aggirare questa limitazione, rinominare i file.

Athena legge i file che ho escluso dal crawler AWS Glue

Athena non riconosce i pattern di esclusione specificati in un AWS Glue crawler. Ad esempio, se disponi di un bucket Amazon S3 che contiene i file .csv e .json ed escludi i file .json dal crawler, Athena esegue query su entrambi i gruppi di file. Per evitare ciò, posizionare i file che si desidera escludere in una posizione diversa.

HIVE_ BAD _DATA: errore durante l'analisi del valore del campo

Questo errore può verificarsi nei seguenti scenari:

HIVE_ _ CANNOT OPEN _SPLIT: errore durante l'apertura di Hive split s3://amzn-s3-demo-bucket

Questo errore può verificarsi quando si esegue una query su un prefisso bucket Amazon S3 con un numero elevato di oggetti. Per ulteriori informazioni, vedi Come posso risolvere l'errore "HIVE_ _ _ CANNOT OPEN _SPLIT: Errore nell'apertura di Hive split s3://amzn-s3-demo-bucket/: Slow down» in Athena? nel AWS Knowledge Center.

HIVE_ CURSOR _ERROR: com.amazonaws.services.s3.model.amazonS3Exception: la chiave specificata non esiste

Questo errore si verifica in genere quando un file viene rimosso quando una query è in esecuzione. Eseguire di nuovo la query o controllare il flusso di lavoro per verificare se un altro processo o processo sta modificando i file durante l'esecuzione della query.

HIVECURSOR_ _ERROR: Fine inaspettata del flusso di input

Questo messaggio indica che il file è danneggiato o vuoto. Verificare l'integrità del file ed eseguire di nuovo la query.

HIVE_ FILESYSTEM _ERROR: errato fileSize 1234567 per file

Questo messaggio viene visualizzato quando un file cambia tra la pianificazione e l'esecuzione della query. Di solito ciò si verifica quando un file su Amazon S3 viene sostituito sul posto (ad esempio, viene eseguito PUT su una chiave in cui esiste già un oggetto). Athena non supporta l'eliminazione o la sostituzione del contenuto di un file durante l'esecuzione di una query. Per evitare questo errore, pianificare i processi che sovrascrivono o eliminano i file quando le query non vengono eseguite o scrivono solo dati su nuovi file o partizioni.

HIVE_ UNKNOWN _ERROR: impossibile creare il formato di input

Questo errore può essere dovuto a problemi di questo tipo:

  • Il AWS Glue crawler non è stato in grado di classificare il formato dei dati

  • Alcune proprietà di definizione AWS Glue delle tabelle sono vuote

  • Athena non supporta il formato dati dei file in Amazon S3

Per ulteriori informazioni, consulta Come faccio a risolvere l'errore "Impossibile creare il formato di input" in Athena? nel Portale del sapere AWS o guarda il video nel Knowledge Center.

Il percorso S3 fornito per salvare i risultati della query non è valido.

Verificare che sia stato specificato un percorso S3 valido per i risultati della query. Per ulteriori informazioni, consulta Specificare la posizione dei risultati della query nell'argomento Utilizzare i risultati delle query e le query recenti.

Tabelle Delta Lake di Linux Foundation

Lo schema della tabella Delta Lake non è sincronizzato

Quando esegui una query su una tabella Delta Lake AWS Glue che contiene uno schema obsoleto, puoi ricevere il seguente messaggio di errore:

INVALID_GLUE_SCHEMA: Delta Lake table schema in Glue does not match the most recent schema of the Delta Lake transaction log. Please ensure that you have the correct schema defined in Glue.

Lo schema può diventare obsoleto se viene modificato AWS Glue dopo essere stato aggiunto ad Athena. Per aggiornare lo schema, completa una delle seguenti operazioni:

Query federate

Timeout durante la chiamata ListTableMetadata

Una chiamata al ListTableMetadataAPIcan timeout se ci sono molte tabelle nell'origine dati, se l'origine dati è lenta o se la rete è lenta. Per risolvere questo problema, provare a eseguire le seguenti operazioni.

  • Controlla il numero di tabelle: se hai più di 1.000 tabelle, prova a ridurne il numero. Per una risposta ListTableMetadata più rapida, è consigliabile avere meno di 1000 tabelle per catalogo.

  • Controlla la configurazione Lambda: il monitoraggio del comportamento della funzione Lambda è fondamentale. Quando utilizzi cataloghi federati, assicurati di esaminare i log di esecuzione della funzione Lambda. In base ai risultati, regola di conseguenza i valori di memoria e timeout. Per identificare eventuali problemi con i timeout, riesamina la configurazione Lambda. Per ulteriori informazioni, consulta Configurazione timeout (console) di funzione nella Guida per gli sviluppatori di AWS Lambda .

  • Controlla i log delle origini dati federate: esamina i log e i messaggi di errore delle origine dati federate per vedere se ci sono problemi o errori. I log possono fornire informazioni preziose sulla causa del timeout.

  • Utilizza StartQueryExecution per recuperare i metadati: se disponi di più di 1.000 tabelle, il recupero dei metadati tramite il connettore federato può richiedere più tempo del previsto. Poiché la natura asincrona di garantisce StartQueryExecutionche Athena esegua la query nel modo più ottimale, prendi in considerazione l'utilizzo StartQueryExecution come alternativa a. ListTableMetadata AWS CLI Gli esempi seguenti mostrano come StartQueryExecution può essere utilizzato anziché per ListTableMetadata ottenere tutti i metadati delle tabelle nel catalogo dati.

    Innanzitutto, esegui una query che ottenga tutte le tabelle, come nell'esempio seguente.

    aws athena start-query-execution --region us-east-1 \ --query-string "SELECT table_name FROM information_schema.tables LIMIT 50" \ --work-group "your-work-group-name"

    Quindi, recupera i metadati di una singola tabella, come nell'esempio seguente.

    aws athena start-query-execution --region us-east-1 \ --query-string "SELECT * FROM information_schema.columns \ WHERE table_name = 'your-table-name' AND \ table_catalog = 'your-catalog-name'" \ --work-group "your-work-group-name"

    Il tempo impiegato per ottenere i risultati dipende dal numero di tabelle nel catalogo.

Per ulteriori informazioni sulla risoluzione dei problemi delle query federate, vedere Common_Problems nella aws-athena-query-federation sezione awslabs/ di o consultare la documentazione per i singoli GitHub connettori di origine dati Athena.

NULLo errori di dati errati durante il tentativo di lettura JSON dei dati

NULLoppure errori di dati errati quando si tenta di leggere JSON i dati possono essere dovuti a diverse cause. Per identificare le righe che causano errori durante l'utilizzo di OpenX SerDe, impostate suignore.malformed.json. true I record in formato non valido verranno restituiti come. NULL Per ulteriori informazioni, consulta Ricevo errori quando cerco di leggere JSON i dati in Amazon Athena nel AWS Knowledge Center o guarda il video del Knowledge Center.

HIVE_ BAD _DATA: Errore nell'analisi del valore del campo per il campo 0: java.lang.String non può essere trasmesso a org.openx.data.jsonserde.json. JSONObject

OpenX JSON SerDe genera questo errore quando non riesce a analizzare una colonna in una query Athena. Ciò può accadere se definisci una colonna come map o struct, ma i dati sottostanti sono in realtà string, int o altro tipo primitivo.

HIVE_ CURSOR _ERROR: La riga non è un JSON oggetto valido -JSONException: Chiave duplicata

Questo errore si verifica quando si utilizza Athena per interrogare AWS Config risorse che hanno più tag con lo stesso nome in maiuscole e minuscole. La soluzione consiste nell'eseguire CREATE TABLE utilizzando WITH SERDEPROPERTIES 'case.insensitive'='false' e mappare quindi i nomi. Per ulteriori informazioni su case.insensitive e sulla mappatura, consulta JSON SerDe biblioteche. Per ulteriori informazioni, vedi Come posso risolvere "HIVE_ CURSOR _ERROR: Row is not a valid JSON object -JSONException: Duplicate key» durante la lettura di file da AWS Config Athena? nel AWS Knowledge Center.

HIVE_ CURSOR _ ERROR messaggi con caratteri ben stampati JSON

Le OpenX JSON SerDe librerie alveare JSON SerDe and si aspettano che ogni JSON documento si trovi su una singola riga di testo senza caratteri di terminazione di riga che separano i campi del record. Se il JSON testo è in un formato di stampa piuttosto carino, potresti ricevere un messaggio di errore del tipo HIVE_ CURSOR _ERROR: Row is not a valid JSON Object o HIVE CURSOR _ERROR:: Unexpected JsonParseException end-of-input: un indicatore di chiusura previsto per OBJECT quando tenti di interrogare la tabella dopo averla creata. Per ulteriori informazioni, consulta i file di JSON dati nella SerDe documentazione di OpenX su. GitHub

Più JSON record restituiscono un valore pari a SELECT COUNT 1

Se usi OpenX JSON SerDe, assicurati che i registri siano separati da un carattere di a capo. Per ulteriori informazioni, consulta La SELECT COUNT query in Amazon Athena restituisce un solo record anche se il JSON file di input contiene più record nel AWS Knowledge Center.

Impossibile interrogare una tabella creata da un AWS Glue crawler che utilizza un classificatore personalizzato JSON

Il motore Athena non supporta classificatori personalizzati JSON. Per risolvere il problema, è necessario creare una nuova tabella senza classificatore personalizzato. Per trasformareJSON, puoi usare CTAS o creare una vista. Ad esempio, se si lavora con gli array, è possibile utilizzare l'UNNESTopzione per appiattire il. JSON Un'altra opzione è utilizzare un AWS Glue ETL processo che supporti il classificatore personalizzato, convertire i dati in parquet in Amazon S3 e quindi interrogarli in Athena.

MSCK REPAIR TABLE

Per informazioni sui problemi MSCK REPAIR TABLE correlati, consulta le Risoluzione dei problemi sezioni Considerazioni e limitazioni e le sezioni della pagina. MSCK REPAIR TABLE

Problemi con l'output

Impossibile verificare/creare il bucket di output

Questo errore può verificarsi se il percorso del risultato della query specificato non esiste o se le autorizzazioni corrette non sono presenti. Per ulteriori informazioni, consulta Come posso risolvere l'errore «impossibile verificare/creare un bucket di output» in Amazon Athena? nel Knowledge Center. AWS

TIMESTAMPil risultato è vuoto

Athena richiede il formato JavaTIMESTAMP. Per ulteriori informazioni, consulta Quando eseguo una query su una tabella in Amazon Athena, il TIMESTAMP risultato è vuoto nel AWS Knowledge Center.

Memorizza l'output della query Athena in un formato diverso da CSV

Per impostazione predefinita, Athena emette i file solo in CSV formato. Per produrre i risultati di una query SELECT in un formato diverso, è possibile utilizzare l'istruzione UNLOAD. Per ulteriori informazioni, consulta UNLOAD. È inoltre possibile utilizzare una CTAS query che utilizza la proprietà format table per configurare il formato di output. Al contrarioUNLOAD, la CTAS tecnica richiede la creazione di una tabella. Per ulteriori informazioni, consulta Come posso memorizzare l'output di una query Athena in un formato diverso daCSV, ad esempio un formato compresso? nel AWS Knowledge Center.

Il percorso S3 fornito per salvare i risultati della query non è valido

È possibile ricevere questo messaggio di errore se la posizione del bucket di output non si trova nella stessa Regione della Regione in cui si esegue la query. Per evitare ciò, specificare una posizione dei risultati della query nella Regione in cui si esegue la query. Per le fasi, consulta Specificare la posizione dei risultati della query.

Problemi con il parquet

org.apache.parquet.io. GroupColumnNon è possibile eseguire il cast di IO su org.apache.parquet.io. PrimitiveColumnIO

Questo errore è causato da una mancata corrispondenza dello schema Parquet. Una colonna con un tipo non primitivo (ad esempio array) è stato dichiarata come tipo primitivo (ad esempio, string) in AWS Glue. Per risolvere questo problema, controllare lo schema dei dati nei file e confrontarlo con lo schema dichiarato in AWS Glue.

Problemi relativi alle statistiche del parquet

Quando leggi i dati di Parquet, potresti ricevere messaggi di errore simili a quelli che seguono:

HIVE_CANNOT_OPEN_SPLIT: Index x out of bounds for length y HIVE_CURSOR_ERROR: Failed to read x bytes HIVE_CURSOR_ERROR: FailureException at Malformed input: offset=x HIVE_CURSOR_ERROR: FailureException at java.io.IOException: can not read class org.apache.parquet.format.PageHeader: Socket is closed by peer.

Per risolvere questo problema, utilizzate l'ALTER TABLE SET TBLPROPERTIESistruzione CREATE TABLE or per impostare la SerDe parquet.ignore.statistics proprietà Parquet sutrue, come illustrato negli esempi seguenti.

CREATETABLEesempio

... ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' WITH SERDEPROPERTIES ('parquet.ignore.statistics'='true') STORED AS PARQUET ...

ALTERTABLEesempio

ALTER TABLE ... SET TBLPROPERTIES ('parquet.ignore.statistics'='true')

Per ulteriori informazioni su Parquet Hive SerDe, vedereParquet SerDe.

Problemi di partizionamento

MSCKREPAIRTABLEnon rimuove le partizioni obsolete

Se elimini una partizione manualmente in Amazon S3 e poi la MSCK REPAIR TABLE esegui, potresti ricevere il messaggio di errore Partitions missing from filesystem. Ciò si verifica perché MSCK REPAIR TABLE non rimuove le partizioni obsolete dai metadati delle tabelle. Utilizza ALTER TABLE DROP PARTITION per rimuovere manualmente le partizioni obsolete. Per ulteriori informazioni, consulta la sezione "Risoluzione dei problemi" dell'argomento MSCK REPAIR TABLE.

MSCKREPAIRTABLEfallimento

Quando una grande quantità di partizioni (ad esempio, più di 100.000) è associata a una tabella particolare, MSCK REPAIR TABLE può avere esito negativo a causa delle limitazioni della memoria. Per risolvere il limite, usa invece ALTER TABLE ADD PARTITION.

MSCKREPAIRTABLErileva le partizioni ma non le aggiunge AWS Glue

Questo problema può verificarsi se un percorso Amazon S3 è in maiuscolo anziché in minuscolo o se una IAM policy non consente l'azione. glue:BatchCreatePartition Per ulteriori informazioni, consulta MSCKREPAIRTABLERileva le partizioni in Athena ma non le aggiunge AWS Glue Data Catalog nel Knowledge Center. AWS

Gli intervalli di proiezione delle partizioni con il formato data di gg-MM-aaaa-HH-mm-ss o aaaa-MM-gg non funzionano

Per funzionare correttamente, il formato della data deve essere impostato su yyyy-MM-dd HH:00:00. Per ulteriori informazioni, consulta il post Stack Overflow La proiezione della partizione Athena non funziona come previsto.

PARTITIONBY non supporta il tipo BIGINT

Converti il tipo di dati in string e riprova.

Nessuna partizione significativa disponibile

Questo messaggio di errore in genere indica che le impostazioni della partizione sono state danneggiate. Per risolvere questo problema, eliminare la tabella e creare una tabella con nuove partizioni.

La proiezione delle partizioni non funziona in combinazione con le partizioni di intervallo

Verificate la proiezione dell'unità di misura dell'intervallo di tempo.<columnName>.interval.unit corrisponde al delimitatore per le partizioni. Ad esempio, se le partizioni sono delimitate da giorni, l'unità di un intervallo di ore non funzionerà.

Errore di proiezione della partizione quando l'intervallo è specificato da un trattino

Specificando la proprietà della range tabella con un trattino anziché una virgola si ottiene un errore del tipo _ _: Per la stringa di input:» INVALID TABLE PROPERTYnumber-number«. Assicurati che i valori dell'intervallo siano separati da una virgola, non da un trattino. Per ulteriori informazioni, consulta Tipo intero.

HIVE_ UNKNOWN _ERROR: impossibile creare il formato di input

Una o più partizioni Glue sono dichiarate in un formato diverso poiché ogni partizione Glue ha il proprio formato di input specifico in modo indipendente. Controllate come sono definite le vostre partizioni in AWS Glue.

HIVE_PARTITION_SCHEMA_MISMATCH

Se lo schema di una partizione è diverso dallo schema della tabella, una query può fallire con il messaggio di errore HIVE_ _ _ PARTITION. SCHEMA MISMATCH

Per ogni tabella all'interno del AWS Glue Data Catalog con colonne di partizione, lo schema viene memorizzato a livello di tabella e per ogni singola partizione all'interno della tabella. Lo schema per le partizioni viene popolato da un AWS Glue crawler basato sul campione di dati che legge all'interno della partizione.

Quando Athena esegue una query, convalida lo schema della tabella e lo schema qualsiasi partizione necessaria per la query. La convalida confronta i tipi di dati di colonna in ordine e verifica che corrispondano per le colonne che si sovrappongono. Ciò impedisce operazioni inattese, come l'aggiunta o la rimozione di colonne dal centro di una tabella. Se Athena rileva che lo schema di una partizione differisce dallo schema della tabella, Athena potrebbe non essere in grado di elaborare la query e restituisce l'errore HIVE_PARTITION_SCHEMA_MISMATCH.

Vi sono vari modi per risolvere questo problema. In primo luogo, se i dati sono stati aggiunti accidentalmente, è possibile eliminare i file di dati che generano la differenza tra gli schemi, eliminare la partizione e ripetere il crawling dei dati. In secondo luogo, è possibile eliminare la singola partizione ed eseguire quindi MSCK REPAIR all'interno di Athena per ricreare la partizione impiegando lo schema della tabella. Questa seconda opzione funziona solo se si è certi che lo schema applicato continuerà a leggere i dati correttamente.

SemanticException la tabella non è partizionata ma esistono le specifiche della partizione

Questo errore può verificarsi in presenza di partizioni definite nell'istruzione CREATE TABLE. Per ulteriori informazioni, vedi Come posso risolvere l'errore "FAILED: la SemanticException tabella non è partizionata ma le specifiche della partizione esistono» in Athena? AWS nel Knowledge Center.

File _$folder$ di zero byte

Se esegui un'istruzione ALTER TABLE ADD PARTITION e specifichi erroneamente una partizione già esistente e una posizione Amazon S3 errata, vengono creati in Amazon S3 i file segnaposto di zero byte del formato partition_value_$folder$. È necessario rimuovere questi file manualmente.

Per evitare che ciò accada, utilizzare la sintassi ADD IF NOT EXISTS nell'istruzione ALTER TABLE ADD PARTITION, nel modo seguente:

ALTER TABLE table_name ADD IF NOT EXISTS PARTITIION […]

Zero registri restituiti dai dati partizionati

Questo problema può verificarsi per una serie di motivi. Per possibili cause e soluzioni, vedi Ho creato una tabella in Amazon Athena con partizioni definite, ma quando eseguo una query sulla tabella, nel AWS Knowledge Center non vengono restituiti record.

Consulta anche HIVE_TOO_MANY_OPEN_PARTITIONS.

Autorizzazioni

Errore di accesso negato durante l'esecuzione di query su Amazon S3

Ciò può verificarsi quando non si dispone dell'autorizzazione per leggere i dati nel bucket o l'autorizzazione a scrivere nel bucket dei risultati oppure il percorso Amazon S3 contiene un endpoint della Regione come us-east-1.amazonaws.com. Per ulteriori informazioni, consulta Quando eseguo una query Athena, ottengo un errore "Accesso negato" nel Portale del sapere AWS .

Accesso negato con codice di stato: errore 403 durante l'esecuzione di DDL query su dati crittografati in Amazon S3

Quando potresti ricevere il messaggio di errore Accesso negato (Servizio: Amazon S3; Codice di stato: 403; Codice di errore:; ID richiesta: AccessDenied <request_id>) se sono vere le seguenti condizioni:

  1. Esegui una DDL query come ALTER TABLE ADD PARTITION oMSCK REPAIR TABLE.

  2. Hai un bucket con crittografia predefinita configurata per utilizzare SSE-S3.

  3. Il bucket ha anche una policy del bucket come la seguente che forza le richieste PutObject per indicare gli header PUT come "s3:x-amz-server-side-encryption": "true" e "s3:x-amz-server-side-encryption": "AES256".

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::<resource-name>/*", "Condition": { "Null": { "s3:x-amz-server-side-encryption": "true" } } }, { "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::<resource-name>/*", "Condition": { "StringNotEquals": { "s3:x-amz-server-side-encryption": "AES256" } } } ] }

In un caso come questo, la soluzione consigliata è rimuovere la policy del bucket come quella sopra, dato che la crittografia predefinita del bucket è già presente.

Accesso negato con codice di stato 403 quando si esegue una query su un bucket Amazon S3 in un altro account

Questo errore può verificarsi quando si tenta di interrogare i log scritti da un altro account Servizio AWS e il secondo account è il proprietario del bucket ma non possiede gli oggetti nel bucket. Per ulteriori informazioni, consulta Ricevo l'eccezione Amazon S3 «accesso negato con codice di stato: 403" in Amazon Athena quando eseguo una query su un bucket in un altro account nel Knowledge Center o guardo il video del AWS Knowledge Center.

Usa le credenziali del IAM ruolo per connetterti al driver Athena JDBC

Puoi recuperare le credenziali temporanee di un ruolo per autenticare la JDBC connessione ad Athena. Le credenziali temporanee hanno una durata massima di 12 ore. Per ulteriori informazioni, vedi Come posso usare le mie credenziali di IAM ruolo o passare a un altro IAM ruolo quando mi connetto ad Athena tramite JDBC il driver? nel AWS Knowledge Center.

Problemi sintassi delle query

FAILED: NullPointerException il nome è nullo

Se si utilizza l' AWS Glue CreateTableAPIoperazione o il AWS CloudFormation AWS::Glue::Tablemodello per creare una tabella da utilizzare in Athena senza specificare la TableType proprietà e quindi si esegue una DDL query come SHOW CREATE TABLE oMSCK REPAIR TABLE, è possibile ricevere il messaggio di errore FAILED: NullPointerException Name is null.

Per risolvere l'errore, specifica un valore per l'TableInputTableTypeattributo come parte della AWS GlueCreateTable API chiamata o del modello.AWS CloudFormation I valori possibili per TableType includono EXTERNAL_TABLE o VIRTUAL_VIEW.

Questo requisito si applica solo quando si crea una tabella utilizzando l' AWS Glue CreateTableAPIoperazione o il AWS::Glue::Table modello. Se si crea una tabella per Athena utilizzando un'DDListruzione o un AWS Glue crawler, la TableType proprietà viene definita automaticamente.

Funzione non registrata

Questo errore si verifica quando si tenta di utilizzare una funzione che Athena non supporta. Per un elenco delle funzioni supportate da Athena, consulta Funzioni in Amazon Athena oppure esegui l'istruzione SHOW FUNCTIONS nell'editor di query. Puoi anche scrivere la tua funzione definita dall'utente (). UDF Per ulteriori informazioni, consulta Come faccio a risolvere l'errore di sintassi "funzione non registrata" in Athena? nel Portale del sapere AWS .

GENERIC_ INTERNAL _ ERROR eccezioni

Le eccezioni GENERIC_INTERNAL_ERROR possono avere diverse cause, tra cui le seguenti:

  • GENERIC_ INTERNAL _ERROR: Null: è possibile che questa eccezione venga visualizzata in una delle seguenti condizioni:

    • È presente una mancata corrispondenza dello schema tra il tipo di dati di una colonna nella definizione di tabella e il tipo di dati effettivo del set di dati.

    • Stai eseguendo una query CREATE TABLE AS SELECT (CTAS) con una sintassi imprecisa.

  • GENERIC_ INTERNAL _ERROR: Parent builder è nullo: potresti vedere questa eccezione quando esegui una query su una tabella con colonne di tipo array di dati e stai utilizzando la libreria O De. penCSVSer Il penCSVSerde formato O non supporta il tipo di array dati.

  • GENERIC_ INTERNAL _ERROR: Il valore supera MAX _ INT - Potresti vedere questa eccezione quando la colonna di dati di origine è definita con il tipo di dati INT e ha un valore numerico maggiore di 2.147.483.647.

  • GENERIC_ INTERNAL _ERROR: Il valore supera MAX _ BYTE - Potresti vedere questa eccezione quando la colonna di dati di origine ha un valore numerico che supera la dimensione consentita per il tipo di dati. BYTE Il tipo di dati BYTE equivale a TINYINT. TINYINT è un valore intero firmato a 8 bit in formato a due complementi con un valore minimo pari a -128 e un valore massimo pari a 127.

  • GENERIC_ INTERNAL _ERROR: Il numero di valori delle partizioni non corrisponde al numero di filtri: potresti vedere questa eccezione se hai partizioni incoerenti sui dati di Amazon Simple Storage Service (Amazon S3). È possibile che vi siano partizioni non coerenti in una delle seguenti condizioni:

    • Le partizioni su Amazon S3 sono cambiate (ad esempio, sono state aggiunte nuove partizioni).

    • Il numero di colonne di partizione nella tabella non corrisponde a quello dei metadati della partizione.

Per informazioni più dettagliate su ciascuno di questi errori, vedi Come posso risolvere l'errore "GENERIC_ INTERNAL _ERROR" quando eseguo una query su una tabella in Amazon Athena? nel AWS Knowledge Center.

Il numero di gruppi corrispondenti non corrisponde al numero di colonne

Questo errore si verifica quando si utilizza l'CREATETABLEistruzione Regex SerDe in e il numero di gruppi corrispondenti alle espressioni regolari non corrisponde al numero di colonne specificato per la tabella. Per ulteriori informazioni, consulta Come posso risolvere l' RegexSerDe errore «il numero di gruppi corrispondenti non corrisponde al numero di colonne» in Amazon Athena? nel AWS Knowledge Center.

queryString non è riuscito a soddisfare il vincolo: il membro deve avere una lunghezza inferiore o uguale a 262144

La lunghezza massima della stringa di query in Athena (262.144 byte) non è una quota regolabile. AWS Support non puoi aumentare la quota per te, ma puoi risolvere il problema suddividendo le query lunghe in query più piccole. Per ulteriori informazioni, consulta Come faccio ad aumentare la lunghezza massima della stringa di query in Athena? nel Portale del sapere di AWS .

SYNTAX_ERROR: La colonna non può essere risolta

Questo errore può verificarsi quando si esegue una query su una tabella creata da un AWS Glue crawler a partire da un CSV file con codifica UTF -8 che ha un ordine dei byte (). BOM AWS Glue non li riconosce BOMs e li trasforma in punti interrogativi, che Amazon Athena non riconosce. La soluzione è rimuovere il punto interrogativo in Athena o in AWS Glue.

Troppi argomenti per la chiamata di funzione

Nella versione 3 del motore Athena, le funzioni non possono accettare più di 127 argomenti. Questa limitazione è di progettazione. Se si utilizza una funzione con più di 127 parametri, viene visualizzato un messaggio di errore come il seguente:

TOO_ MANY _ARGUMENTS: riga nnn:nn: Troppi argomenti per la chiamata di funzione function_name().

Per risolvere questo problema, utilizzare un numero inferiore di parametri per chiamata di funzione.

Problemi di timeout delle query

Se riscontri errori di timeout con le tue query su Athena, controlla i log. CloudTrail Le query possono scadere a causa del throttling di o Lake AWS Glue Formation. APIs Quando si verificano questi errori, i messaggi di errore corrispondenti possono indicare un problema di timeout delle query anziché un problema di limitazione (della larghezza di banda della rete). Per risolvere il problema, puoi controllare i registri prima di contattarci. CloudTrail AWS Support Per ulteriori informazioni, consulta AWS CloudTrail Registri delle interrogazioni e Registra le chiamate Amazon Athena API con AWS CloudTrail.

Per informazioni sui problemi di timeout delle query con le query federate quando si chiama il, vedere. ListTableMetadata API Timeout durante la chiamata ListTableMetadata

Problemi di limitazione

Se le tue richieste superano i limiti dei servizi dipendenti come Amazon S3 AWS KMS,, AWS Lambda o AWS Glue, è possibile che vengano visualizzati i seguenti messaggi. Per risolvere questi problemi, ridurre il numero di chiamate simultanee provenienti dallo stesso account.

Servizio Messaggio di errore
AWS Glue AWSGlueException: Frequenza superata.
AWS KMS Hai superato la velocità alla quale puoi chiamare. KMS Riduci la frequenza delle tue chiamate.
AWS Lambda

Velocità superata

TooManyRequestsException

Amazon S3 Amazons3Exception: riduci la frequenza delle richieste.

Per informazioni sui modi per prevenire la limitazione (della larghezza di banda della rete) di Amazon S3 quando usi Athena, consulta Impedisci la limitazione di Amazon S3.

Visualizzazioni

Le viste create nella struttura di Apache Hive non funzionano in Athena

A causa delle loro implementazioni fondamentalmente diverse, le viste create nella struttura di Apache Hive non sono compatibili con Athena. Per risolvere il problema, ricrea le viste in Athena.

La vista è obsoleta; deve essere ricreata

È possibile ricevere questo errore se la tabella che si trova sotto una vista è stata modificata o eliminata. La risoluzione consiste nel ricreare la vista. Per ulteriori informazioni, vedi Come posso risolvere l'errore «la vista è obsoleta; deve essere ricreata» in Athena? nel Knowledge Center. AWS

Gruppi di lavoro

Per informazioni sulla risoluzione dei problemi dei gruppi di lavoro, consulta la sezione Risolvi gli errori del gruppo di lavoro.

Risorse aggiuntive

Le pagine seguenti forniscono ulteriori informazioni per la risoluzione dei problemi relativi ad Amazon Athena.

Anche le seguenti AWS risorse possono essere di aiuto:

La risoluzione dei problemi richiede spesso query iterative e scoperta da parte di un esperto o di una community di aiutanti. Se continui a riscontrare problemi dopo aver provato i suggerimenti in questa pagina, contatta AWS Support (nella sezione, fai clic su Support, Support Center) o fai una domanda su AWS re:post utilizzando il tag Amazon Athena. AWS Management Console