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 determinate situazioni, le query a esecuzione prolungata possono comportare costi elevati e far sì che Amazon EMR utilizzi più risorse del cluster. Questo sottrae risorse agli altri carichi di lavoro del cluster. Con Amazon EMR versione 6.8 e successive, puoi utilizzare una funzionalità in modalità rigorosa che rifiuta o ti avvisa dei seguenti tipi di query a 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.
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. Se false , Amazon EMR genera solo un avviso. |
false |
strict-mode-restrictions |
Specifica le limitazioni da applicare quando è abilitata la modalità rigorosa. La modalità rigorosa supporta le seguenti limitazioni: 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.
Impostazione della configurazione al momento della creazione del cluster con la AWS Management Console
-
Scegli Create cluster (Crea cluster) e seleziona Amazon EMR versione 6.8.0 e Presto o Trino. Per ulteriori informazioni, consulta Installazione di PrestoDB e Trino.
-
Specifica direttamente le proprietà di configurazione per la modalità rigorosa o carica un file JSON su Amazon S3. Facoltativamente, seleziona il catalogo di dati AWS Glue per il tuo metastore. Specifica il tuo VPC, le sottoreti, le azioni di bootstrap, la coppia di chiavi e il gruppo di sicurezza. Per creare il cluster, scegli Create cluster (Crea cluster).
-
Accedi al nodo primario del cluster ed esegui
presto-cli
otrino-cli
. -
Invia le tue query. La modalità rigorosa convalida ogni query e determina se è di lunga durata. A seconda dell'impostazione di
strict-mode-fail-query
, Amazon EMR rifiuta la query o genera un avviso. -
Quando hai finito con le query, termina il cluster ed elimina le tue risorse.
Impostazione della configurazione su un cluster in esecuzione con la AWS CLI
-
Accedi al nodo primario del cluster con AWS CLI ed esegui
presto-cli
otrino-cli
. -
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 query SELECT, INSERT, CREATE TABLE AS SELECT e EXPLAIN.
-
Puoi utilizzare la limitazione sul predicato di partizione obbligatorio solo con il connettore Hive.