.disable | .enable materialized-view
Aplica-se a: ✅Microsoft Fabric✅Azure Data Explorer
Desabilita ou habilita o processo de materialização para uma exibição materializada.
Observação
Como há algumas implicações importantes de desempenho associadas à desativação/habilitação de uma exibição materializada, certifique-se de estar familiarizado com elas antes de prosseguir com o uso desse comando. Para obter mais informações, consulte a seção Implicações de desempenho da habilitação/desabilitação de exibições materializadas.
Permissões
Você deve ter pelo menos o Materialized View Admin para executar esses comandos.
Sintaxe
.enable
| disable
materialized-view
MaterializedViewName
Saiba mais sobre as convenções de sintaxe.
Parâmetros
Nome | Digitar | Obrigatória | Descrição |
---|---|---|---|
MaterializedViewName | string |
✔️ | Nome da exibição materializada. |
Devoluções
Se a exibição materializada já estiver no estado em que o comando está tentando defini-la, o comando falhará com um erro indicando que esse é o caso.
Caso contrário, ele retornará os detalhes sobre a exibição materializada cuja propriedade IsEnabled foi alterada.
Esquema de saída:
Nome | Tipo | Descrição |
---|---|---|
Nome | string |
Nome da exibição materializada. |
Tabela de origem | string |
Nome da tabela de origem na qual a exibição é definida. |
Consulta | string |
Definição de consulta da visualização materializada. |
MaterializedTo | datetime |
Carimbo de data/hora máximo ingestion_time() materializado na tabela de origem. Para obter mais informações, consulte como funcionam as exibições materializadas. |
Última corrida | datetime |
A última materialização foi executada. |
LastRunResult | string |
Resultado da última execução. Retorna Completed para execuções bem-sucedidas, caso contrário Failed . |
ÉSaudável | bool |
true quando a exibição é considerada íntegra, false caso contrário. A exibição é considerada íntegra se tiver sido materializada com êxito até a última hora (MaterializedTo é maior que ago(1h) ). |
IsEnabled | bool |
true quando a exibição está habilitada (consulte Desabilitar ou habilitar a exibição materializada). |
Pasta | string |
Pasta na qual a exibição materializada é criada. |
DocString | string |
Descrição atribuída à visualização materializada. |
AutoUpdateSchema | bool |
Se a exibição está habilitada para atualizações automáticas. |
DataHora Efetiva | datetime |
Data e hora efetiva da exibição, determinada durante o tempo de criação (consulte .create materialized-view ). |
Retrospectiva | timespan |
Intervalo de tempo que limita o período de tempo em que as duplicatas são esperadas. |
Exemplos
Habilitar uma exibição materializada
O comando a seguir habilita a exibição materializada ViewName:
.enable materialized-view ViewName
Saída
Nome | Tabela de origem | Consulta | MaterializedTo | Última corrida | LastRunResult | ÉSaudável | IsEnabled | Pasta | DocString | AutoUpdateSchema | DataHora Efetiva | Retrospectiva |
---|---|---|---|---|---|---|---|---|---|---|---|---|
ViewName | TableName | Nome_da_tabela | resumir arg_max(Coluna3, *) por Coluna1 | 2023-02-26T16:40:03.3345704Z | 2023-02-26T16:44:15.9033667Z | Concluído(a) | true | true | false | 2023-02-23T14:01:42.5172342Z |
Desabilitar uma exibição materializada
O comando a seguir desabilita o ViewName da exibição materializada:
.disable materialized-view ViewName
Saída
Nome | Tabela de origem | Consulta | MaterializedTo | Última corrida | LastRunResult | ÉSaudável | IsEnabled | Pasta | DocString | AutoUpdateSchema | DataHora Efetiva | Retrospectiva |
---|---|---|---|---|---|---|---|---|---|---|---|---|
ViewName | TableName | Nome_da_tabela | resumir arg_max(Coluna3, *) por Coluna1 | 2023-02-26T16:40:03.3345704Z | 2023-02-26T16:44:15.9033667Z | Concluído(a) | true | false | false | 2023-02-23T14:01:42.5172342Z |
Comentários
Desabilitando exibições materializadas
Uma exibição materializada pode ser desabilitada de qualquer uma das seguintes maneiras:
- Desabilitação automática pelo sistema: A visualização materializada é desabilitada automaticamente se a materialização falhar com um erro permanente. Esse processo pode ocorrer nas seguintes instâncias:
- Alterações de esquema que são inconsistentes com a definição de exibição.
- Alterações na tabela de origem que resultam na consulta de exibição materializada sendo semanticamente inválida.
- Desabilitar explicitamente a exibição materializada: se a exibição materializada estiver afetando negativamente a integridade do banco de dados (por exemplo, consumindo muita CPU), desabilite a exibição usando o
.disable materialized-view
comando.
Exibições materializadas e segurança em nível de linha
Se uma exibição materializada estiver desabilitada e, enquanto a exibição estiver desabilitada, alguém definir uma política de segurança em nível de linha na tabela de origem da exibição, mas a exibição materializada não tiver uma política de segurança em nível de linha definida, a habilitação da exibição falhará por motivos de segurança. Para atenuar esse erro, você pode:
- Defina a política de segurança em nível de linha sobre a exibição materializada.
- Escolha ignorar o erro adicionando
allowMaterializedViewsWithoutRowLevelSecurity
a propriedade ao comando enable policy. Por exemplo:
.enable materialized-view MV with (allowMaterializedViewsWithoutRowLevelSecurity=true)
Implicações de desempenho da ativação/desativação de exibições materializadas
- Quando uma exibição materializada é desabilitada, a materialização será pausada e não consumirá recursos do banco de dados. Consultar a exibição materializada é possível mesmo quando desabilitado, mas o desempenho pode ser ruim. O desempenho em uma exibição materializada desabilitada depende do número de registros que foram ingeridos na tabela de origem desde que ela foi desabilitada.
- Você pode habilitar uma exibição materializada que foi desativada anteriormente. Quando reativada, a exibição materializada continuará se materializando a partir do ponto em que parou e nenhum registro será ignorado. Se a visualização foi desativada por um longo tempo, pode levar muito tempo para ser recuperada.
- A desativação de uma exibição só é recomendada se você suspeitar que a exibição está afetando a integridade do banco de dados.