Após criar views materializadas, é possível gerenciá-las no cluster. Isso inclui consultar os registros de refresh e as definições, alterar o grupo de recursos utilizado, ativar ou desativar o recurso de reescrita de consultas e excluí-las.
Consultar a definição de uma view materializada
Você pode consultar a instrução DDL usada para criar uma view materializada.
Permissões
Você deve ter a permissão SELECT na view materializada. Caso não tenha essa permissão, uma conta privilegiada ou uma conta padrão com a permissão GRANT deve conceder a permissão a você na página de gerenciamento de contas no console ou executando a seguinte instrução SQL: GRANT SELECT ON database.mv_name TO username;
Sintaxe
SHOW CREATE MATERIALIZED VIEW <mv_name>
Exemplo
Consulte a instrução DDL da view materializada compl_mv1.
SHOW CREATE MATERIALIZED VIEW demo.compl_mv1;
Consultar metadados de views materializadas
Campos
A view information_schema.mv_info contém metadados de todas as views materializadas. Para visualizar apenas a definição de uma única view materializada, use a instrução SHOW CREATE MATERIALIZED VIEW.
A tabela a seguir descreve os campos comuns em information_schema.mv_info.
|
Campo |
Descrição |
|
MV_SCHEMA |
O banco de dados onde a view materializada está localizada. |
|
MV_NAME |
O nome da view materializada. |
|
MV_DEFINITION |
O DDL das propriedades de tabela da view materializada. |
|
MV_QUERY |
A consulta SQL original da view materializada (query_body). |
|
FIRST_REFRESH_TIME |
O horário do primeiro refresh, se o refresh automático estiver configurado. |
|
NEXT_REFRESH_TIME_FUNC |
A função que determina o horário do próximo refresh, se o refresh automático estiver configurado. |
|
OWNER |
O criador da view materializada. |
|
QUERY_SCHEMA |
O banco de dados onde a instrução |
|
REFRESH_CONDITION |
O mecanismo de acionamento do refresh.
|
|
REFRESH_STATE |
O método de refresh da view materializada.
|
|
UPDATE_TIME |
O horário da última atualização desta linha de metadados. |
Exemplos
-
Conte as views materializadas no cluster.
SELECT count(*) FROM information_schema.mv_info; -
Consulte os metadados de todas as views materializadas.
SELECT * FROM information_schema.mv_info;
Listar views materializadas
Lista as views materializadas em um banco de dados especificado para as quais você tem a permissão SELECT. Se você especificar um padrão, apenas as views materializadas cujos nomes correspondem ao padrão são retornadas.
Permissões
Você deve ter a permissão SELECT em todas as views materializadas no banco de dados especificado. Caso não tenha essa permissão, uma conta privilegiada ou uma conta padrão com a permissão GRANT deve conceder a permissão a você na página de gerenciamento de contas no console ou executando a seguinte instrução SQL: GRANT SELECT ON database.* TO username;
Sintaxe
Consulte todas as views materializadas no banco de dados atual:
SHOW MATERIALIZED VIEWS [LIKE 'pattern']
Consulte todas as views materializadas em um banco de dados específico (que pode ser diferente do atual):
SELECT * FROM information_schema.mv_info WHERE mv_schema='schema_name';
Exemplos
-
Consulte todas as views materializadas no banco de dados atual.
SHOW MATERIALIZED VIEWS; -
Consulte todas as views materializadas no banco de dados atual cujos nomes começam com
compl.SHOW MATERIALIZED VIEWS LIKE 'compl%';NotaPara mais informações sobre como usar
LIKE 'pattern', consulte Funções de string. -
Consulte todas as views materializadas no banco de dados
demo.SELECT * FROM information_schema.mv_info WHERE mv_schema='demo';
Consultar registros de refresh
Registros de refresh automático
Sintaxe
Use a seguinte instrução SQL para consultar os registros de refresh automático de uma view materializada especificada. Os registros incluem o horário de início (START_TIME), horário de término (END_TIME), status (STATE) e ID do processo (PROCESS_ID) do refresh.
SELECT * FROM information_schema.mv_auto_refresh_jobs WHERE mv_schema='<schema_name>' AND mv_name = '<mv_name>';
A view information_schema.mv_auto_refresh_jobs armazena os registros de jobs de refresh automático de views materializadas. Ela retém no máximo 1.024 registros. Esta tabela lista apenas as views materializadas configuradas para refresh automático agendado (usando os parâmetros START WITH ou NEXT).
A view information_schema.mv_auto_refresh_jobs não inclui o registro do refresh inicial que ocorre quando a view materializada é criada.
Exemplos
-
Consulte todos os registros de refresh da view materializada
compl_mv1no banco de dadosdemo.SELECT * FROM information_schema.mv_auto_refresh_jobs WHERE mv_schema = 'demo' AND mv_name = 'compl_mv1'; -
Consulte o job de refresh pendente mais recente da view materializada
compl_mv1no banco de dadosdemo.SELECT * FROM information_schema.mv_auto_refresh_jobs WHERE mv_schema = 'demo' AND mv_name = 'compl_mv1' AND state = 'PENDING';
Campos
A tabela a seguir descreve os campos comuns.
|
Campo |
Descrição |
|
MV_SCHEMA |
O nome do banco de dados onde a view materializada está localizada. |
|
MV_NAME |
O nome da view materializada. |
|
PROCESS_ID |
O ID do processo do job de refresh. |
|
SCHEDULED_START_TIME |
O horário de início agendado do job de refresh. |
|
START_TIME |
O horário de início real do job de refresh. |
|
END_TIME |
O horário de término real do job de refresh. |
|
STATE |
O status do refresh.
|
Registros de refresh manual
-
Use o recurso SQL Audit para consultar registros de refresh manual de uma view materializada dos últimos 30 dias. Ao consultar, insira a palavra-chave
REFRESH MATERIALIZED VIEW mv_namepara encontrar informações como horário, duração, endereço IP e nome de usuário dos refreshes manuais.NotaO recurso SQL Audit deve ser ativado separadamente. Operações SQL realizadas antes de ativar esse recurso não são registradas.
-
Use o recurso SQL Diagnostics and Optimization para consultar registros de refresh manual e automático dos últimos 14 dias. Ao consultar, insira o nome da view materializada, como
compl_mv1. É possível recuperar informações sobre todas as consultas SQL relacionadas (incluindo criação, refresh manual, refresh automático e alterações), como horário de início, nome de usuário, duração e ID da consulta.
Alterar views materializadas
É possível converter uma view materializada padrão em uma view materializada elástica, alterar o grupo de recursos utilizado, ativar ou desativar o recurso de reescrita de consultas ou renomeá-la.
Não é possível alterar outras propriedades, como a definição da view, a política de refresh ou o acionador de refresh.
Permissões
Você deve ter a permissão ALTER na view materializada. Caso não tenha essa permissão, uma conta privilegiada ou uma conta padrão com a permissão GRANT deve conceder a permissão a você na página de gerenciamento de contas no console ou executando a seguinte instrução SQL: GRANT ALTER ON database.mv_name TO username;
Sintaxe
ALTER MATERIALIZED VIEW <mv_name>
[MV_PROPERTIES=<MV_PROPERTIES>]
[ENABLE|DISABLE QUERY REWRITE]
[RENAME <new_mv_name>]
[BINLOG={TRUE|FALSE}]
-
MV_PROPERTIES: Especifica as propriedades da view materializada, incluindo os parâmetrosmv_resource_groupemv_refresh_hints.mv_resource_group: Especifica o grupo de recursos que a view materializada usa. Se o grupo de recursos especificado não existir, um erro será retornado ao criar a view materializada.mv_refresh_hints: Define parâmetros para a view materializada. Para detalhes sobre os parâmetros de configuração suportados, consulte Common Hints.ImportanteAs propriedades
<MV_PROPERTIES>especificadas em uma instruçãoALTERsubstituem completamente as propriedades<MV_PROPERTIES>especificadas quando a view materializada foi criada.Por exemplo, se você criar uma view materializada e configurar os parâmetros
mv_resource_groupemv_refresh_hints, e depois executar uma instrução ALTER que especifica apenas o parâmetromv_resource_group, o parâmetromv_resource_groupserá atualizado e o parâmetromv_refresh_hintsserá removido. -
ENABLE|DISABLE QUERY REWRITE: Ativa ou desativa o recurso de reescrita de consultas. -
RENAME <new_mv_name>: Renomeia a view materializada. -
BINLOG={TRUE|FALSE}: Ativa ou desativa o recurso binlog para a view materializada. Compatível com versões de kernel de cluster 3.2.5.0 e posteriores.
Exemplos
-
Ative o recurso de reescrita de consultas para a view materializada
compl_mv1.ALTER MATERIALIZED VIEW compl_mv1 ENABLE QUERY REWRITE; -
Altere o grupo de recursos usado pela view materializada elástica
job_mv.ALTER MATERIALIZED VIEW job_mv MV_PROPERTIES='{ "mv_resource_group":"my_job_rg_2", "mv_refresh_hints":{"query_priority":"NORMAL"} }'; -
Converta a view materializada padrão
compl_mv1em uma view materializada elástica.ALTER MATERIALIZED VIEW compl_mv1 MV_PROPERTIES='{ "mv_resource_group":"my_job_rg_2" }'; -
Renomeie a view materializada mv1 para mv2.
ALTER MATERIALIZED VIEW mv1 RENAME mv2;
Excluir views materializadas
Esta operação exclui fisicamente a view materializada e seus dados.
Se você usar DROP TABLE para excluir uma view materializada, um erro será retornado. A mensagem de erro é semelhante a demo.myview11 is materialized view, use DROP MATERIALIZED VIEW.
Permissões
Você deve ter a permissão DROP na view materializada. Caso não tenha essa permissão, uma conta privilegiada ou uma conta padrão com a permissão GRANT deve conceder a permissão a você na página de gerenciamento de contas no console ou executando a seguinte instrução SQL: GRANT DROP ON database.mv_name TO username;
Sintaxe
DROP MATERIALIZED VIEW <mv_name>
Exemplo
Exclua a view materializada compl_mv1.
DROP MATERIALIZED VIEW compl_mv1;