Share via


Viste materializzate in Azure Istanza gestita per Apache Cassandra

Azure Istanza gestita 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, consentendo la massima flessibilità e controllo dove necessario. Questo articolo illustra come abilitare le viste materializzate.

Supporto delle visualizzazioni materializzate

Le viste materializzate sono disabilitate per impostazione predefinita, ma gli utenti possono abilitarle nel cluster. Tuttavia, si sconsiglia agli utenti di Azure Istanza gestita per Apache Cassandra di usare viste materializzate. Sono sperimentali (vedere Viste materializzate contrassegnate come archivi sperimentali-Apache Mail e la proposta di farlo). In particolare:

  • L'implementazione di viste materializzate è la progettazione del sistema distribuita che non è stata ampiamente modellata e simulata. Non ci sono state prove formali sulle sue 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 relativa tabella di base.
  • Se si verifica un errore e una vista materializzata non viene sincronizzata, l'unico modo per ripristinarlo consiste nell'eliminare la vista materializzata e ricrearla.

Microsoft non può offrire 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, il programma deve inviare tutte le istruzioni necessarie come parte di un batch. Ciò 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, ad esempio Hyperscale PostgreSQL di Azure.

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