Partilhar via


Exibições materializadas na Instância Gerenciada do Azure para Apache Cassandra

A Instância Gerenciada do Azure para Apache Cassandra é um serviço totalmente gerenciado para clusters Apache Cassandra de código aberto puro. O serviço também permite que as configurações sejam substituídas, dependendo das necessidades específicas de cada carga de trabalho. Este recurso permite a máxima flexibilidade e controle onde necessário. Este artigo discute como habilitar exibições materializadas.

Suporte de visualização materializado

As exibições materializadas são desabilitadas por padrão, mas você pode habilitá-las no cluster. Desaconselhamos os utilizadores da Instância Gerida do Azure para Apache Cassandra a usarem visões materializadas. Eles são experimentais. Em particular:

  • A implementação de visualizações materializadas é um projeto de sistema distribuído que não é extensivamente modelado e simulado. Não existem provas formais sobre as suas propriedades.
  • Não há como determinar se uma exibição materializada está fora de sincronia com sua tabela base.
  • Não há limite superior sobre quanto tempo leva para uma exibição materializada ser sincronizada quando há uma alteração em sua tabela base.
  • Se houver um erro e uma visão materializada sair de sincronia, a única maneira de resolver a situação é abandonar a visão materializada e recriá-la.

Para obter mais informações, consulte as Visualizações Materializadas marcadas como experimentais - Arquivo Apache Mail e a proposta correspondente.

A Microsoft não oferece nenhum contrato de nível de serviço ou suporte relacionados a vistas materializadas.

Alternativas às visões materializadas

Como a maioria dos repositórios NoSQL, o Apache Cassandra não foi projetado para ter um modelo de dados normalizado. Se você precisar atualizar os dados em mais de um lugar, envie todas as declarações necessárias como parte de um LOTE. Esta abordagem tem duas vantagens em relação às visões materializadas:

  • BATCH garante que todas as declarações do lote estão comprometidas ou nenhumas.
  • Todas as declarações têm o mesmo quórum e semântica de compromisso.

Se sua carga de trabalho realmente precisa de um modelo de dados normalizado, considere um repositório relacional escalável como o Azure Cosmos DB para PostgreSQL.

Habilitar visualizações materializadas

Defina enable_materialized_views: true no campo rawUserConfig do seu datacenter Cassandra. Use o seguinte comando da CLI do Azure para atualizar cada datacenter em seu cluster:

FRAGMENT="enable_materialized_views: true"
ENCODED_FRAGMENT=$(echo "$FRAGMENT" | base64 -w 0)
# or
# ENCODED_FRAGMENT="ZW5hYmxlX21hdGVyaWFsaXplZF92aWV3czogdHJ1ZQo="
resourceGroupName='MyResourceGroup'
clusterName='cassandra-hybrid-cluster'
dataCenterName='dc1'
az managed-cassandra datacenter update \
  --resource-group $resourceGroupName \
  --cluster-name $clusterName \
  --data-center-name $dataCenterName \
  --base64-encoded-cassandra-yaml-fragment $ENCODED_FRAGMENT