Salta al contenuto

Perché l'esecuzione delle query su Amazon Athena richiede molto tempo?

4 minuti di lettura
0

L'esecuzione delle query su Amazon Athena richiede molto tempo e i tempi di coda delle query sono elevati.

Soluzione

Le query di Athena potrebbero essere temporaneamente messe in coda prima di essere eseguite. L'esecuzione delle query potrebbe richiedere molto tempo a causa dell'elevato tempo di coda o di elaborazione del motore.

Chiama l'API GetQueryExecution per l'ID query. Questa API restituisce informazioni su una singola query elaborata. È possibile visualizzare queste informazioni nel parametro QueryExecutionStatistics della risposta API. È inoltre possibile utilizzare l'editor di query Athena per visualizzare statistiche e dettagli relativi alle query completate.

Tempo di coda più elevato

Il tempo di coda delle query potrebbe essere maggiore a causa dell'elevato utilizzo di risorse nel backend. Il tempo di coda in Athena dipende dall'allocazione delle risorse. Dopo avere inviato le query ad Athena, l’assegnazione delle risorse e l’elaborazione delle query rispondono ai seguenti criteri:

  • Carico complessivo del servizio
  • Numero di nuove richieste

Se le query hanno un tempo di coda elevato, esegui queste azioni per migliorare le prestazioni:

  • Distribuisci le query lungo un dato periodo di tempo. Se invii le query in batch, invia batch di piccole dimensioni più frequentemente anziché batch di grandi dimensioni con minore frequenza. In questo modo, ridurrai il tempo in cui una query rimane nello stato IN CODA.
  • Esegui una combinazione di query semplici e complesse invece di eseguire una serie di query complesse contemporaneamente. Invia prima le query semplici e poi quelle complesse. Poiché le query semplici vengono elaborate rapidamente, sarà possibile allocare risorse alle query complesse senza tempi di coda elevati.
  • Per le query programmate, evita gli intervalli di tempo all'inizio dell'ora e 30 minuti dopo l'ora. La maggior parte degli script e dei processi cron automatici vengono eseguiti in questi intervalli di tempo. Il carico del servizio è generalmente elevato in questi periodi e può comportare un aumento dei tempi di coda.
  • Se il tuo caso d'uso lo consente, esegui le query in più regioni AWS per distribuire il carico e acquisire più risorse di backend.

Importante: potresti ricevere addebiti in più regioni per Amazon Simple Storage Service (Amazon S3).

Tempo di pianificazione più elevato

Se partizioni eccessivamente la tabella, il tempo di pianificazione potrebbe aumentare. Le tabelle con centinaia o migliaia di partizioni possono rallentare l'elaborazione delle query. Per migliorare le prestazioni delle query, esegui una delle seguenti azioni:

  • Riduci il numero di partizioni.
  • Esegui una query su una partizione alla volta e unisci i risultati.
  • Utilizza la proiezione delle partizioni per velocizzare l'elaborazione delle query di tabelle altamente partizionate e automatizzare la gestione delle partizioni.

Tempo di elaborazione più elevato

Se le query hanno un tempo di elaborazione del motore più elevato, esegui le seguenti azioni per migliorare le prestazioni delle query:

  • Esegui la partizione delle tabelle per limitare la quantità di dati analizzati da ogni query. Per ulteriori informazioni, consulta Partitioning data in Athena.
  • Se il file Amazon S3 di cui esegui la query è di piccole dimensioni (generalmente inferiore a 128 MB), il tempo di elaborazione della query potrebbe essere più elevato. L'aumento del tempo è dovuto all'aumento delle attività, ad esempio quando si apre il file S3, si elencano le directory e si imposta il trasferimento dei dati. Utilizza l'utilità S3DistCp su Amazon EMR per combinare file S3 più piccoli in oggetti più grandi. Gli oggetti più grandi necessitano di meno richieste Amazon S3, il che riduce i tempi di elaborazione delle query.
  • Esegui altre ottimizzazioni dello spazio di archiviazione e delle query.

Nota: puoi inviare più query ad Athena contemporaneamente in base alle quote predefinite relative alle query nella tua regione. Athena assegna le risorse in base al carico complessivo del servizio e al numero di nuove richieste di elaborazione di query. Pertanto, è possibile che tutte le query inviate non vengano eseguite contemporaneamente.

Informazioni correlate

Performance tuning in Athena

AWS UFFICIALEAggiornata 2 anni fa