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 l'idea di come ridurre gli errori di «esaurimento delle risorse».
Argomenti
Esegui un carico di lavoro per account per evitare i limiti delle quote di servizio
Athena impone quote per metriche come il tempo di esecuzione delle query, il numero di query simultanee in un account e la frequenza delle richieste. API Per ulteriori informazioni su queste quote, consulta Service Quotas (Quote di Servizio). Il superamento di queste quote comporta l'esito negativo di una query, al momento dell'invio o durante l'esecuzione della query.
Molti dei suggerimenti per l'ottimizzazione delle prestazioni contenuti in questa pagina possono contribuire a ridurre il tempo di esecuzione delle query. L'ottimizzazione libera spazio in modo da consentire l'esecuzione di più query entro la quota di simultaneità e impedisce che le query vengano annullate perché in esecuzione da troppo tempo.
Le quote relative al numero di query e richieste simultanee si intendono per e. API Account AWS Regione AWS Ti consigliamo di eseguire un carico di lavoro per Account AWS (o di utilizzare prenotazioni di capacità assegnate separatamente) per evitare che i carichi di lavoro competano per la stessa quota.
Se esegui due carichi di lavoro nello stesso account, uno dei carichi di lavoro può eseguire un picco di query. Ciò può comportare la limitazione o il blocco dell'esecuzione delle query del carico di lavoro rimanente. Per evitare ciò, puoi spostare i carichi di lavoro in account separati per assegnare a ciascun carico di lavoro una relativa quota di simultaneità. La creazione di una prenotazione della capacità assegnata uno o entrambi i carichi di lavoro consente di raggiungere lo stesso obiettivo.
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 API chiamate verso Amazon S3 e AWS altri servizi come e. AWS Glue Data Catalog IAM 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 vengono eseguite su un DDL 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 e disco. CPU 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.