Condividi tramite


Viste materializzate in Azure Istanza gestita per Apache Cassandra

Istanza gestita di Azure per Apache Cassandra è un servizio completamente gestito per cluster Apache Cassandra open source puri. Il servizio consente anche di eseguire l'override delle configurazioni, a seconda delle esigenze specifiche di ogni carico di lavoro. Questa funzionalità consente la massima flessibilità e controllo, se necessario. Questo articolo illustra come abilitare le viste materializzate.

Supporto delle visualizzazioni materializzate

Le viste materializzate sono disabilitate per impostazione predefinita, ma è possibile abilitarle nel cluster. Tuttavia, si sconsiglia agli utenti di Azure Istanza gestita per Apache Cassandra di usare viste materializzate. Sono sperimentali. In particolare:

  • L'implementazione di viste materializzate è una progettazione di sistema distribuita che non è ampiamente modellata e simulata. Non ci sono prove formali sulle relative proprietà.
  • Non è possibile determinare se una vista materializzata non è sincronizzata con la relativa tabella di base.
  • Non esiste alcun limite superiore per quanto tempo è necessario per la sincronizzazione di una vista materializzata quando viene apportata una modifica alla tabella di base.
  • Se si verifica un errore e una vista materializzata non viene sincronizzata, l'unico modo per risolvere la situazione consiste nell'eliminare la vista materializzata e ricrearla.

Per altre informazioni, vedere Materialized Views marked experimental-Apache Mail Archives e la proposta di farlo.

Microsoft non offre alcun contratto di servizio o supporto per problemi relativi alle visualizzazioni materializzate.

Alternative alle viste materializzate

Analogamente alla maggior parte degli archivi NoSQL, Apache Cassandra non è progettato per avere un modello di dati normalizzato. Se è necessario aggiornare i dati in più posizioni, inviare tutte le istruzioni necessarie come parte di un batch. Questo approccio presenta due vantaggi rispetto alle viste materializzate:

  • BATCH garantisce che venga eseguito il commit o nessuno di tutte le istruzioni nel batch.
  • Tutte le istruzioni hanno la stessa semantica quorum e commit.

Se il carico di lavoro necessita veramente di un modello di dati normalizzato, prendere in considerazione un archivio relazionale scalabile come Azure Cosmos DB per PostgreSQL.

Come abilitare le visualizzazioni materializzate

È necessario impostare enable_materialized_views: true nel rawUserConfig campo del data center Cassandra. A tale scopo, usare il comando seguente dell'interfaccia della riga di comando di Azure per aggiornare ogni data center nel 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

Passaggi successivi