Atribuir consultas a filas - Amazon Redshift

Atribuir consultas a filas

Os exemplos a seguir atribuem consultas a filas de acordo com perfis de usuário, grupos de usuários e grupos de consultas.

Atribuir consultas a filas com base em perfis de usuário

Se um usuário for atribuído a um perfil e esse perfil estiver anexado a uma fila, as consultas executadas por esse usuário serão atribuídas a essa fila. O exemplo a seguir cria um perfil de usuário chamado sales_rw e atribui o usuário test_user a esse perfil.

create role sales_rw; grant role sales_rw to test_user;

Você também pode combinar permissões de dois perfis ao conceder explicitamente um perfil a outro. A atribuição de um perfil aninhado a um usuário concede as permissões de ambos os perfis ao usuário.

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

Para ver a lista de usuários que receberam perfis no cluster, consulte a tabela SVV_USER_GRANTS. Para ver a lista de perfis que receberam perfis no cluster, consulte a tabela SVV_ROLE_GRANTS.

select * from svv_user_grants; select * from svv_role_grants;

Atribuir consultas a filas com base em grupos de usuários

Se o nome de um grupo de usuários estiver listado em uma definição de fila, as consultas executadas por membros desse grupo de usuários são atribuídas à fila correspondente. O exemplo a seguir cria grupos de usuários e adiciona usuários a grupos usando os comandos SQL CRIAR USUÁRIO, CREATE GROUP e ALTER 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;

Atribuir uma consulta a um grupo de consultas

É possível atribuir uma consulta a uma fila no tempo de execução atribuindo a consulta ao grupo de consultas apropriado. Use o comando SET para iniciar um grupo de consultas.

SET query_group TO group_label

Aqui, group_label é um rótulo de grupo de consulta listado na configuração do WLM.

Todas as consultas executadas depois do comando SET query_group são executadas como membros do grupo de consultas especificado até você redefinir o grupo de consultas ou encerrar a sessão de login atual. Para obter informações sobre como definir e redefinir objetos do Amazon Redshift, consulte SET e RESET na Referência de comandos SQL.

Os rótulos do grupo de consultas especificados devem ser incluídos na configuração do WLM atual; do contrário, o comando SET query_group não afeta filas de consultas.

O rótulo definido na cláusula TO é capturado nos logs de consulta, de maneira que você possa usá-lo na solução de problemas. Para obter informações sobre o parâmetro de configuração query_group, consulte query_group na Referência de configuração.

O exemplo a seguir executa duas consultas como parte de 'priority' do grupo de consultas e redefine o grupo de consultas.

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;

Atribuir consultas à fila de superusuários

Para atribuir uma consulta à fila de superusuário, faça logon no Amazon Redshift como superusuário e execute a consulta no grupo de superusuário. Quando você tiver terminado, redefina o grupo de consultas, de maneira que as consultas subsequentes não sejam executadas na fila de superusuários.

O exemplo a seguir atribui dois comandos a serem executados na fila de superusuários.

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

Para exibir uma lista de superusuários, consulte a tabela de catálogo do sistema PG_USER.

select * from pg_user where usesuper = 'true';