Limitações de exibições materializadas e problemas conhecidos
Aplica-se a: ✅Microsoft Fabric✅Azure Data Explorer
A origem da exibição materializada
- A tabela de origem de uma exibição materializada:
- Deve ser uma tabela na qual os dados são ingeridos diretamente, usando uma política de atualização ou ingerindo de comandos de consulta.
- O uso de extensões de movimentação ou substituição de extensões de outras tabelas para a tabela de origem da visualização materializada só é suportado se estiver usando
setNewIngestionTime
a propriedade como parte do comando mover extensões (consulte os comandos .move extents e .replace extents para obter mais detalhes). - Mover extensões para a tabela de origem de uma exibição materializada, enquanto não estiver usando
setNewIngestionTime
, pode falhar com um dos seguintes erros:Cannot drop/move extents from/to table 'TableName' since Materialized View 'ViewName' is currently processing some of these extents
.Cannot move extents to 'TableName' since materialized view 'ViewName' will not process these extents (can lead to data loss in the materialized view)
.
- O uso de extensões de movimentação ou substituição de extensões de outras tabelas para a tabela de origem da visualização materializada só é suportado se estiver usando
- Deve ser uma tabela na qual os dados são ingeridos diretamente, usando uma política de atualização ou ingerindo de comandos de consulta.
- A tabela de origem de uma exibição materializada deve ter a política IngestionTime habilitada. Essa política é habilitada por padrão.
- Se a exibição materializada usar um
lookback
(consulte propriedades com suporte), elaingestion_time()
deverá ser preservada na consulta da exibição materializada. Operadores como mv-expand ou pivot plugin não preservam oingestion_time()
e, portanto, não podem ser usados em uma exibição materializada com umlookback
. - A tabela de origem de uma exibição materializada não pode ser uma tabela com política de acesso de exibição restrita.
- Uma exibição materializada não pode ser criada sobre outra exibição materializada, a menos que a primeira exibição materializada seja de agregação de tipo
take_any(*)
. Veja a visão materializada sobre a visão materializada. - As exibições materializadas não podem ser definidas em tabelas externas.
Aviso
- Uma exibição materializada será desabilitada automaticamente pelo sistema se as alterações na tabela de origem da exibição materializada ou as alterações nos dados levarem à incompatibilidade entre a consulta de exibição materializada e o esquema da exibição materializada esperada.
- Para evitar esse erro, a consulta de exibição materializada deve ser determinística. Por exemplo, os plug-ins bag_unpack ou pivot resultam em um esquema não determinístico.
- Ao usar uma
arg_max(Timestamp, *)
agregação e whenautoUpdateSchema
é false, as alterações na tabela de origem também podem levar a incompatibilidades de esquema.- Evite essa falha definindo a consulta de exibição como
arg_max(Timestamp, Column1, Column2, ...)
ou usando aautoUpdateSchema
opção.
- Evite essa falha definindo a consulta de exibição como
- O uso
autoUpdateSchema
pode levar à perda irreversível de dados quando as colunas na tabela de origem são descartadas. - Monitore a desabilitação automática de exibições materializadas usando a métrica MaterializedViewResult.
- Depois de corrigir problemas de incompatibilidade, a exibição deve ser explicitamente reativada usando o comando enable materialized view .
Impacto dos registros ingeridos ou descartados da tabela de origem
- Uma exibição materializada processa apenas novos registros ingeridos na tabela de origem. Os registros removidos da tabela de origem, executando extensões de exclusão/reversível de limpeza/de dados ou devido à política de retenção ou por qualquer outro motivo, não têm impacto na exibição materializada.
- A exibição materializada tem sua própria política de retenção, que é independente da política de retenção da tabela de origem. A exibição materializada pode incluir registros que não estão presentes na tabela de origem.
Bancos de dados de seguidores
- As exibições materializadas não podem ser criadas em bancos de dados de seguidores. Os bancos de dados seguidores são somente leitura e as exibições materializadas exigem operações de gravação.
- As exibições materializadas não podem ser criadas em atalhos de banco de dados. Os atalhos de banco de dados são somente leitura e as exibições materializadas exigem operações de gravação.
- As exibições materializadas definidas em bancos de dados de líder podem ser consultadas de seus seguidores, como qualquer outra tabela no líder.
- Use o cluster líder para monitorar as visualizações materializadas do banco de dados de seguidores. Para obter mais detalhes, consulte Exibições materializadas em bancos de dados de seguidores.
- Use o Eventhouse de origem para monitorar exibições materializadas do banco de dados de atalho. Para obter mais detalhes, consulte Monitorar exibições materializadas
Outro
- As funções de cursor não podem ser usadas sobre exibições materializadas.
- Não há suporte para a exportação contínua de uma exibição materializada.