Considerazioni e limitazioni
Considerare i seguenti punti quando si utilizzano funzioni definite dall'utente (UDF) in Athena.
-
Funzioni Athena integrate: le funzioni integrate in Athena sono progettate per essere altamente performanti. Ti consigliamo di utilizzare funzioni incorporate anziché funzioni definite dall'utente quando possibile. Per ulteriori informazioni sulle funzioni incorporate, consulta Funzioni in Amazon Athena.
-
Solo UDF scalari — Athena supporta solo le UDF scalari, che elaborano una riga alla volta e restituiscono un singolo valore di colonna. Athena passa un batch di righe, potenzialmente in parallelo, all'UDF ogni volta che invoca Lambda. Durante la progettazione di funzioni definite dall'utente e query, sii consapevole del potenziale impatto sul traffico di rete di questo processo.
-
Le funzioni del gestore UDF utilizzano un formato abbreviato: usa il formato abbreviato (non il formato completo) per le funzioni UDF (ad esempio,
package.Classanzichépackage.Class::method). -
I metodi UDF devono essere scritti in lettere minuscole: i metodi UDF devono essere scritti in lettere minuscole; la notazione a cammello non è consentita.
-
I metodi UDF richiedono parametri: i metodi UDF devono avere almeno un parametro di input. Il tentativo di richiamare un file UDF definito senza parametri di input comporta un'eccezione di runtime. Le UDF sono concepite per eseguire funzioni su record di dati, ma una UDF senza argomenti non accetta dati, quindi si verifica un'eccezione.
-
Supporto per Java Runtime— Attualmente, le UDF Athena supportano Java Runtime 8, 11 e 17 per Lambda. Per ulteriori informazioni, consulta Creazione di funzioni Lambda con Java nella Guida per gli sviluppatori di AWS Lambda.
Nota
Per Java 17, bisogna impostare il valore della variabile di ambiente
JAVA_TOOL_OPTIONScome--add-opens=java.base/java.nio=ALL-UNNAMEDin Lambda. -
Autorizzazioni IAM — Per eseguire e creare istruzioni di query UDF in Athena, l'entità principale IAM che esegue la query deve essere autorizzata a eseguire operazioni in aggiunta alle funzioni Athena. Per ulteriori informazioni, consulta Consenti l'accesso alle UDF Athena: policy di esempio.
-
Quote di Lambda — Le quote lambda si applicano alle UDF. Per ulteriori informazioni, consulta la sezione Quote Lambda nella Guida per gli sviluppatori di AWS Lambda.
-
Filtraggio a livello di riga: il filtro a livello di riga di Lake Formation non è supportato per le UDF.
-
Visualizzazioni: non è possibile utilizzare le visualizzazioni con UDF.
-
Problemi noti - Per l'elenco più aggiornato dei problemi noti, consulta Limitazioni e Problemi
nella sezione awslabs/aws-athena-query-federation di GitHub.