Attivazione della modalità rigorosa Presto - Amazon EMR

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à.

Attivazione della modalità rigorosa Presto

In alcune situazioni, le query di lunga durata possono comportare costi elevati e EMR far sì che Amazon utilizzi più risorse del cluster. Questo sottrae risorse agli altri carichi di lavoro del cluster. Con EMR le versioni 6.8 e successive di Amazon, puoi utilizzare una funzionalità in modalità rigorosa che rifiuta o ti avvisa dei seguenti tipi di query di lunga durata:

  • Query senza predicati sulle colonne con partizioni che generano scansioni di tabelle di grandi quantità di dati

  • Query con cross join tra due tabelle di grandi dimensioni

  • Query che ordinano un numero elevato di righe senza limiti

Dopo che Presto ottimizza completamente il piano di query, viene eseguita la modalità rigorosa. Per utilizzare e personalizzare la modalità rigorosa in base alle tue esigenze di esecuzione delle query, puoi configurare Presto nei seguenti modi.

Configurazioni Presto per la modalità rigorosa
Impostazione Descrizione Default
strict-mode-enabled Attiva e disattiva la modalità rigorosa. Il valore true indica che la modalità rigorosa è attiva. false
strict-mode-fail-query Rifiuta le query se la modalità rigorosa rileva probabili query a lunga durata. Sefalse, Amazon EMR emette solo un avviso. false
strict-mode-restrictions Specifica le limitazioni da applicare quando è abilitata la modalità rigorosa. La modalità rigorosa supporta le seguenti restrizioni: MANDATORY PARTITION _ _PREDICATE, DISALLOW _ CROSS _ JOIN e LIMITED _SORT.

MANDATORY_PARTITION_PREDICATE,DISALLOW_CROSS_JOIN, LIMITED_SORT

Per sperimentare la modalità rigorosa, puoi sovrascrivere queste configurazioni o impostarle come proprietà di sessione quando usi il client Presto.

Per impostare la configurazione al momento della creazione del cluster con AWS Management Console
  1. Scegli Crea cluster e seleziona Amazon EMR versione 6.8.0 e Presto o Trino. Per ulteriori informazioni, consulta Installazione di PrestoDB e Trino.

  2. Specificate direttamente le proprietà di configurazione per la modalità rigorosa o caricate un JSON file su Amazon S3. Facoltativamente, seleziona il per il tuo metastore. Specificate le vostre VPC sottoreti, le azioni di bootstrap, la key pair e il gruppo di sicurezza. Per creare il cluster, scegli Create cluster (Crea cluster).

  3. Accedi al nodo primario del cluster ed esegui presto-cli o trino-cli.

  4. Invia le tue query. La modalità rigorosa convalida ogni query e determina se è di lunga durata. A seconda dell'strict-mode-fail-queryimpostazione, Amazon EMR rifiuta la richiesta o genera un avviso.

  5. Quando hai finito con le query, termina il cluster ed elimina le tue risorse.

Per impostare la configurazione su un cluster in esecuzione con AWS CLI
  1. Accedi al nodo primario del cluster con AWS CLI ed esegui presto-cli otrino-cli.

  2. Emetti i seguenti comandi con i valori desiderati.

    set session strict_mode_enabled = true; set session strict_mode_fail_query = false; set session strict_mode_restrictions = 'DISALLOW_CROSS_JOIN,LIMITED_SORT';

Considerazioni

Quando utilizzi la modalità rigorosa, considera quanto riportato di seguito:

  • In alcuni casi, la modalità rigorosa può rifiutare le query di breve durata che non utilizzano numerose risorse. Ad esempio, le query su tabelle di piccole dimensioni non applicano filtri dinamici né sostituiscono i join interni con unioni incrociate. Ciò può portare la query a utilizzare il predicato di partizione obbligatorio o a impedire il cross join. Quando ciò accade, la modalità rigorosa rifiuta la query.

  • Il controllo in modalità rigorosa viene applicato solo ai tipi di EXPLAIN ANALYZE query SELECT INSERTSELECT, CREATE TABLE AS e.

  • Puoi utilizzare la limitazione sul predicato di partizione obbligatorio solo con il connettore Hive.