Ottimizza l'uso del servizio - 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à.

Ottimizza l'uso del servizio

Le considerazioni sul livello di servizio includono il numero di carichi di lavoro eseguiti per account, le quote di servizio non solo per Athena, ma per tutti i servizi e la riflessione su come ridurre gli errori di «esaurimento delle risorse».

Gestisci più carichi di lavoro all'interno dello stesso account

Athena utilizza le quote per limitare la concorrenza delle query e i tassi di richiesta API a livello di account. Il superamento di queste quote può causare il fallimento delle query durante l'esecuzione o al momento dell'invio. Per ulteriori informazioni su queste quote, consulta Service Quotas (Quote di Servizio).

Se gestisci più carichi di lavoro all'interno dello stesso AWS account, i tuoi carichi di lavoro competono per la stessa quota a livello di account. Ad esempio, se in un carico di lavoro si verifica un'esplosione imprevista di query, è possibile che si verifichi una limitazione dell'invio delle query o tempi di coda elevati.

Ti consigliamo di CloudWatch utilizzarlo per monitorare l'utilizzo del servizio tramite grafici e dashboard. Puoi anche configurare CloudWatch allarmi che ti avvisino quando l'utilizzo si avvicina alla quota di servizio per le query simultanee, consentendoti di intervenire prima di raggiungere i limiti di quota. Per ulteriori informazioni, consulta Monitora le metriche di utilizzo di Athena con CloudWatch.

Per controllare la concomitanza delle query e isolare i carichi di lavoro all'interno del tuo account, utilizza le prenotazioni di capacità. Le prenotazioni di capacità forniscono una capacità dedicata di elaborazione delle query all'interno di un singolo account. La capacità viene misurata in unità di elaborazione dati (DPUs) e può essere aggiunta o rimossa rispettivamente per aumentare o diminuire la concomitanza delle query. Le prenotazioni di capacità consentono di isolare i carichi di lavoro all'interno dell'account l'uno dall'altro assegnando la capacità a uno o più gruppi di lavoro. Per ulteriori informazioni, consulta Gestire la capacità di elaborazione delle query.

Sebbene la separazione dei carichi di lavoro in diversi AWS account possa essere utile per scopi organizzativi (come isolare lo sviluppo dagli ambienti di produzione), questo approccio non fornisce un modo scalabile per aumentare la concorrenza delle query. Utilizza invece le prenotazioni di capacità per gestire e scalare le esigenze di elaborazione delle query all'interno di un unico account.

Prendi in considerazione le quote in altri servizi

Quando Athena esegue una query, può chiamare altri servizi che applicano le quote. Durante l'esecuzione delle query, Athena può effettuare chiamate API verso Amazon S3 e AWS altri servizi come IAM e. AWS Glue Data Catalog AWS KMS Se si utilizzano interrogazioni federate, viene chiamata anche Athena. AWS Lambda Tutti questi servizi hanno rispettivi limiti e quote che possono essere superati. L'esecuzione di una query, quando rileva errori dovuti a questi servizi, non va a buon fine e include l'errore del servizio di origine. Gli errori rimediabili vengono ritentati, ma le query possono comunque avere esito negativo se il problema non si risolve automaticamente in tempo. Assicurati di leggere attentamente i messaggi degli errori per comprendere se questi provengono da Athena o da un altro servizio. Alcuni degli errori rilevanti sono trattati in questa sezione sull'ottimizzazione delle prestazioni.

Per ulteriori informazioni su come rimediare agli errori provocati dalle service quotas di Amazon S3, consulta Come evitare di avere un numero eccessivo di file più avanti in questo documento. Per ulteriori informazioni sull'ottimizzazione delle prestazioni di Amazon S3, consulta Modelli di concezione delle best practice: ottimizzazione delle prestazioni di Amazon S3 nella Guida per l'utente di Amazon S3.

Riduci gli errori di «esaurimento delle risorse»

Athena esegue le query in un motore di query distribuito. Quando invii una query, il pianificatore di query del motore Athena stima la capacità di calcolo richiesta per l’esecuzione della query e prepara di conseguenza un cluster di nodi di calcolo. Alcune query, come le query DDL, sono eseguite su un solo nodo. Le query complesse su set di dati di grandi dimensioni sono eseguite su cluster molto più grandi. I nodi sono uniformi, con le stesse configurazioni di memoria, CPU e disco. Athena si dimensiona orizzontalmente, non verticalmente, per elaborare query più impegnative.

Talvolta le richieste di una query superano le risorse disponibili al cluster che esegue la query. Quando ciò accade, la query non va a buon fine e viene visualizzato l'errore La query ha esaurito le risorse con questo fattore di scala.

La risorsa più comunemente esaurita è la memoria, ma in rari casi anche lo spazio su disco può essere esaurito. In genere si presentano errori di memoria quando il motore esegue una funzione join o finestra, ma possono presentarsi anche durante conteggi e aggregazioni distinti.

Una query, che non sia riuscita e abbia presentato l'errore di "risorse esaurite", potrebbe avere esito positivo quando la esegui nuovamente. L'esecuzione delle query non è deterministica. Fattori quali il tempo necessario al caricamento di dati e il modo di distribuzione sui nodi di set di dati intermedi possono comportare un diverso utilizzo delle risorse. Ad esempio, immagina una query che unisce due tabelle e che presenta una forte asimmetria nella distribuzione dei valori per la condizione di join. Una query di questo tipo può avere esito positivo per la maggior parte del tempo, ma talvolta può non riuscire quando i valori più comuni risultano essere elaborati dallo stesso nodo.

Per evitare che le query superino le risorse disponibili, segui i consigli per ottimizzare le prestazioni cui si è accennato in questo documento. In particolare, relativamente ai consigli sulle modalità di ottimizzazione delle query che esauriscono le risorse disponibili, consulta Ottimizza i join, Riduci l'ambito delle funzioni delle finestre o rimuovile e Ottimizza le query utilizzando approssimazioni.