Share via


Gerealiseerde weergaven in Azure Managed Instance voor Apache Cassandra

Azure Managed Instance voor Apache Cassandra is een volledig beheerde service voor pure opensource Apache Cassandra-clusters. Met de service kunnen configuraties ook worden overschreven, afhankelijk van de specifieke behoeften van elke workload, waardoor de maximale flexibiliteit en controle waar nodig mogelijk zijn. In dit artikel wordt beschreven hoe u gerealiseerde weergaven inschakelt.

Ondersteuning voor gerealiseerde weergave

Gerealiseerde weergaven zijn standaard uitgeschakeld, maar gebruikers kunnen ze inschakelen in hun cluster. Gebruikers van Azure Managed Instance voor Apache Cassandra worden echter afgeraden om gerealiseerde weergaven te gebruiken. Ze zijn experimenteel (zie Gerealiseerde weergaven gemarkeerd als experimentele Apache Mail-archieven en het voorstel hiervoor). Met name:

  • De implementatie van gerealiseerde weergaven is gedistribueerd systeemontwerp dat niet uitgebreid is gemodelleerd en gesimuleerd. Er zijn geen formele bewijzen over zijn eigenschappen.
  • Er is geen manier om te bepalen of een gerealiseerde weergave niet synchroon is met de basistabel.
  • Er is geen bovengrens voor hoe lang het duurt voordat een gerealiseerde weergave wordt gesynchroniseerd wanneer de basistabel wordt gewijzigd.
  • Als er een fout optreedt en een gerealiseerde weergave niet meer wordt gesynchroniseerd, is de enige manier om deze te herstellen door de gerealiseerde weergave te verwijderen en opnieuw te maken.

Microsoft kan geen SLA of ondersteuning bieden voor problemen met gerealiseerde weergaven.

Alternatieven voor gerealiseerde weergaven

Net als bij de meeste NoSQL-archieven is Apache Cassandra niet ontworpen om een genormaliseerd gegevensmodel te hebben. Als u gegevens op meer dan één plaats moet bijwerken, moet uw programma alle benodigde instructies verzenden als onderdeel van een BATCH. Dit heeft twee voordelen ten opzichte van gerealiseerde weergaven:

  • BATCH garandeert dat alle instructies in de batch worden doorgevoerd of geen.
  • Alle instructies hebben hetzelfde quorum en semantiek doorvoeren.

Als uw workload echt een genormaliseerd gegevensmodel nodig heeft, kunt u een schaalbaar relationeel archief overwegen, zoals Hyperscale PostgreSQL van Azure.

Gerealiseerde weergaven inschakelen

U moet instellen enable_materialized_views: true in het rawUserConfig veld van uw Cassandra-datacenter. Gebruik hiervoor de volgende Azure CLI-opdracht om elk datacenter in uw cluster bij te werken:

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

Volgende stappen