Assegnazione delle query alle code - Amazon Redshift

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

Assegnazione delle query alle code

Con Amazon Redshift, puoi gestire la concorrenza dei carichi di lavoro e dare priorità alle query assegnandole alle code. Le code consentono di allocare risorse come la memoria CPU per diversi tipi di query o utenti, garantendo che le query critiche abbiano la priorità rispetto a quelle meno importanti. Le sezioni seguenti descrivono come creare code, configurarne le proprietà e assegnare le interrogazioni in entrata in base a criteri definiti dall'utente.

I seguenti esempi consentono di assegnare le query alle code in base ai ruoli degli utenti, ai gruppi di utenti e ai gruppi di query.

Assegnazione delle query alle code in base ai ruoli degli utenti

Se a un utente è assegnato un ruolo e tale ruolo è collegato a una coda, le query eseguite da quell'utente vengono assegnate a tale coda. L'esempio seguente crea un ruolo utente denominato sales_rw e assegna l'utente test_user a quel ruolo.

create role sales_rw; grant role sales_rw to test_user;

Puoi anche combinare le autorizzazioni di due ruoli assegnando esplicitamente un ruolo a un altro ruolo. L'assegnazione di un ruolo nidificato a un utente concede all'utente le autorizzazioni di entrambi i ruoli.

create role sales_rw; create role sales_ro; grant role sales_ro to role sales_rw; grant role sales_rw to test_user;

Per visualizzare l'elenco degli utenti a cui sono stati concessi ruoli nel cluster, esegui una query nella SVV tabella _ _. USER GRANTS Per visualizzare l'elenco dei ruoli a cui sono stati concessi ruoli nel cluster, interroga la GRANTS tabella SVV ROLE _ _.

select * from svv_user_grants; select * from svv_role_grants;

Assegnazione delle query alle code in base ai gruppi di utenti

Se il nome di un gruppo di utenti è elencato in una definizione di coda, le query eseguite dai membri di quel gruppo di utenti vengono assegnate alla coda corrispondente. L'esempio seguente crea gruppi di utenti e aggiunge utenti ai gruppi utilizzando i SQL comandi CREATE USERCREATE GROUP, eALTER GROUP.

create group admin_group with user admin246, admin135, sec555; create user vp1234 in group ad_hoc_group password 'vpPass1234'; alter group admin_group add user analyst44, analyst45, analyst46;

Assegnazione di una query a un gruppo di utenti

Puoi assegnare una query a una coda in fase di runtime assegnando la query al gruppo di query appropriato. Utilizzate il SET comando per iniziare un gruppo di query.

SET query_group TO group_label

Ecco, etichetta_gruppo è un'etichetta del gruppo di query elencata nella WLM configurazione.

Tutte le query eseguite dopo il comando SET query_group vengono eseguite come membri del gruppo di query specificato fino a quando non reimposti il gruppo di query o termini la sessione di accesso corrente. Per informazioni sull'impostazione e la reimpostazione degli oggetti Amazon Redshift, SET consulta RESET e nel SQL Command Reference.

Le etichette dei gruppi di query specificate devono essere incluse nella WLM configurazione corrente; in caso contrario, il comando SETquery_group non ha effetto sulle code di query.

L'etichetta definita nella clausola TO viene acquisita nei log delle query in modo da poterla utilizzare per la risoluzione dei problemi. Per informazioni sul parametro di configurazione query_group, vedi query_group nella documentazione di riferimento relativa alla configurazione.

L'esempio seguente esegue due query come parte del gruppo di query 'priority' e quindi reimposta il gruppo di query.

set query_group to 'priority'; select count(*)from stv_blocklist; select query, elapsed, substring from svl_qlog order by query desc limit 5; reset query_group;

Assegnazione delle query alla coda dell'utente con privilegi avanzati

Per assegnare una query alla coda dell'utente con privilegi avanzati, accedere ad Amazon Redshift come utente con privilegi avanzati ed eseguire la query nel gruppo di utenti con privilegi avanzati. Al termine, reimposta il gruppo di query in modo che le query successive non vengano eseguite nella coda dell'utente con privilegi avanzati.

L'esempio seguente assegna due comandi da eseguire nella coda dell'utente con privilegi avanzati.

set query_group to 'superuser'; analyze; vacuum; reset query_group;

Per visualizzare un elenco di superutenti, interrogate la tabella del catalogo di sistema PG_. USER

select * from pg_user where usesuper = 'true';