Utilizzo di Spark ottimizzatore basato sui costi - AWS Guida prescrittiva

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 di Spark ottimizzatore basato sui costi

Spark la versione 2.09 e successive possono utilizzare un ottimizzatore basato sui costi (CBO). Il CBO seleziona il piano di esecuzione più economico per una query in base a varie statistiche tabellari. CBO cerca di ottimizzare l'esecuzione della query per quanto riguarda l'utilizzo della CPU e l'I/O, restituendola così il più rapidamente possibile. Tuttavia, nella maggior parte dei casi, le statistiche sui dati sono generalmente assenti, soprattutto quando la raccolta delle statistiche è ancora più costosa dell'elaborazione dei dati. Anche se le statistiche sono disponibili, probabilmente non sono aggiornate. Di seguito sono riportate le migliori pratiche per l'utilizzo del CBO:

  • Raccogli statistiche su tutte le colonne utilizzate in operazioni quali join, filtri e raggruppamenti. Questo aiuta l'ottimizzatore a prendere decisioni migliori. Utilizzato ANALYZE TABLE per raccogliere statistiche.

  • Aumenta la frequenza della raccolta delle statistiche se i dati cambiano rapidamente. Le statistiche obsolete possono portare a piani non ottimizzati.

  • Inizia con i parametri CBO predefiniti e ottimizzali solo se necessario. Le ottimizzazioni aggressive possono aumentare i tempi di esecuzione.

  • Verifica se CBO sta scegliendo i piani ottimali forzando il piano ottimizzato e confrontando le prestazioni. Abilita la registrazione dell'ottimizzatore per confrontare i piani.

  • Per ottimizzazioni migliori, usa CBO in combinazione con suggerimenti per il partizionamento, il bucketing e la distorsione dei dati. Il partizionamento può aiutare CBO a scalare.

  • Per rilevare tempestivamente le regressioni del piano, monitora continuamente le prestazioni delle query dopo aver abilitato CBO.