Utilizzo dell'ottimizzatore basato sui costi - 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à.

Utilizzo dell'ottimizzatore basato sui costi

Per ottimizzare le tue query, puoi utilizzare la funzionalità di ottimizzazione basata sui costi (CBO) di Athena SQL. Facoltativamente, puoi richiedere che Athena raccolga statistiche a livello di tabella o colonna per una delle tue tabelle in AWS Glue. Se tutte le tabelle della query contengono statistiche, Athena utilizza le statistiche per creare un piano di esecuzione che ritiene essere il più performante. L'ottimizzatore di query calcola i piani alternativi sulla base di un modello statistico e quindi seleziona quello che sarà probabilmente il più veloce per eseguire la query.

Le statistiche sulle AWS Glue tabelle vengono raccolte e archiviate in AWS Glue Data Catalog e rese disponibili ad Athena per migliorare la pianificazione e l'esecuzione delle query. Queste statistiche sono statistiche a livello di colonna, ad esempio il numero di valori distinti, il numero di valori nulli, massimi e minimi su tipi di file come Parquet, ORC, JSON, ION, CSV e XML. Amazon Athena utilizza queste statistiche per ottimizzare le query applicando i filtri più restrittivi il prima possibile nell'elaborazione delle query. Questo filtro limita l'utilizzo della memoria e il numero di record da leggere per fornire i risultati delle query.

Oltre a CBO, Athena utilizza una funzionalità chiamata ottimizzatore basato su regole (RBO). L'RBO applica meccanicamente delle regole che dovrebbero migliorare le prestazioni delle query. L'RBO di solito è utile perché le sue trasformazioni mirano a semplificare il piano di interrogazione. Tuttavia, poiché l'RBO non esegue calcoli dei costi o confronti tra piani, le query più complicate rendono difficile la creazione di un piano ottimale.

Per questo motivo, per ottimizzare le query Athena utilizza sia RBO che CBO. Dopo aver identificato le opportunità per migliorare l'esecuzione delle query, Athena crea un piano ottimale. Per ulteriori informazioni sui dettagli del piano di esecuzione, consulta Visualizzazione dei piani di esecuzione per query SQL. Per una discussione dettagliata su come funziona CBO, consulta Accelerare le query con l'ottimizzatore basato sui costi di Amazon Athena nel blog Big Data. AWS

Per generare statistiche per le tabelle AWS Glue del catalogo, puoi utilizzare la console Athena, la AWS Glue Console o AWS Glue le API. Poiché Athena è integrato con AWS Glue Catalog, ottieni automaticamente i corrispondenti miglioramenti delle prestazioni delle query quando esegui query da Amazon Athena.

Considerazioni e limitazioni

  • Tipi di tabelle: al momento, la funzionalità CBO di Athena supporta solo le tabelle Hive presenti nel AWS Glue Data Catalog.

  • Athena per Spark: la funzionalità CBO non è disponibile in Athena per Spark.

  • Prezzi: per informazioni sui prezzi, consulta la pagina dei prezzi di AWS Glue.

Generazione di statistiche sulle tabelle tramite la console Athena

In questa sezione viene descritto come usare la console Athena per generare statistiche a livello di tabella o colonna per una tabella in AWS Glue. Per informazioni sull'utilizzo per AWS Glue generare statistiche sulle tabelle, consulta Lavorare con le statistiche delle colonne nella Guida per gli AWS Glue sviluppatori.

Generazione di statistiche per una tabella tramite la console Athena
  1. Aprire la console Athena all'indirizzo https://console.aws.amazon.com/athena/.

  2. Nell'elenco Tabelle dell'editor di query Athena, scegli i tre punti verticali per la tabella desiderata, quindi scegli Genera statistiche.

    Menu contestuale per una tabella nell'editor di query Athena.
  3. Nella finestra di dialogo Genera statistiche, scegli Tutte le colonne per generare le statistiche per tutte le colonne della tabella oppure Colonne selezionate per selezionare colonne specifiche. L'impostazione predefinita è Tutte le colonne.

    La finestra di dialogo Genera statistiche.
  4. Per il ruolo di AWS Glue servizio, crea o seleziona un ruolo di servizio esistente per AWS Glue autorizzare la generazione di statistiche. Il ruolo di servizio AWS Glue richiede anche le autorizzazioni S3:GetObject per il bucket Amazon S3 che contiene i dati della tabella.

    Scelta di un ruolo AWS Glue di servizio.
  5. Scegli Genera statistiche. Un banner di notifica Generazione di statistiche per nome_tabella mostra lo stato dell'attività.

    Il banner di notifica Generazione di statistiche.
  6. Per visualizzare i dettagli nella AWS Glue console, scegli Visualizza in Glue.

    Per informazioni sulla visualizzazione delle statistiche nella AWS Glue console, consulta Visualizzazione delle statistiche delle colonne nella Guida per gli AWS Glue sviluppatori.

  7. Dopo la generazione delle statistiche, le tabelle e le colonne che contengono le statistiche mostrano la parola Statistiche tra parentesi, come nell'immagine seguente.

    Una tabella che mostra le icone statistiche nell'editor di query Athena.

Ora, quando esegui le tue query, Athena eseguirà l'ottimizzazione in base ai costi delle tabelle e delle colonne per le quali sono state generate le statistiche.

Risorse aggiuntive

Per ulteriori informazioni, consulta la seguente risorsa.

Enhance query performance using AWS Glue Data Catalog statistics (AWS YouTube channel)