Freigeben über


Materialisierte Sichten in Azure Managed Instance for Apache Cassandra

Azure Managed Instance for Apache Cassandra ist ein vollständig verwalteter Service für reine Open-Source Apache Cassandra-Cluster. Der Dienst ermöglicht auch das Überschreiben von Konfigurationen, je nach den spezifischen Anforderungen der einzelnen Arbeitsauslastungen. Dieses Feature ermöglicht maximale Flexibilität und Kontrolle bei Bedarf. In diesem Artikel wird erläutert, wie materialisierte Sichten aktiviert werden.

Unterstützung für materialisierte Sichten

Materialisierte Ansichten sind standardmäßig deaktiviert, aber Sie können sie auf Ihrem Cluster aktivieren. Wir raten den Benutzern von Azure Managed Instance für Apache Cassandra davon ab, materialisierte Ansichten zu verwenden. Sie sind experimentell. Dies gilt insbesondere für:

  • Die Implementierung materialisierter Ansichten ist ein verteiltes Systemdesign, das nicht umfassend modelliert und simuliert wird. Es gibt keine formalen Nachweise zu seinen Eigenschaften.
  • Es gibt keine Möglichkeit zu ermitteln, ob eine materialisierte Ansicht nicht mehr mit der Basistabelle synchronisiert ist.
  • Es gibt keine obere Grenze, wie lange es dauert, bis eine materialisierte Ansicht synchronisiert wird, wenn eine Änderung an der Basistabelle erfolgt.
  • Wenn ein Fehler auftritt und eine materialisierte Ansicht nicht mehr synchronisiert wird, besteht die einzige Möglichkeit, die Situation zu beheben, darin, die materialisierte Ansicht abzulegen und neu zu erstellen.

Weitere Informationen finden Sie unter Materialisierte Ansichten, die als experimental-Apache Mail Archives markiert sind, und den Vorschlag dazu.

Microsoft bietet keine Vereinbarung auf Serviceebene oder Support für Probleme mit materialisierten Ansichten an.

Alternativen zu materialisierten Sichten

Wie die meisten NoSQL-Speicher ist Apache Cassandra nicht darauf ausgelegt, ein normalisiertes Datenmodell zu haben. Wenn Sie Daten an mehreren Stellen aktualisieren müssen, senden Sie alle erforderlichen Anweisungen als Teil eines BATCH. Dieser Ansatz hat gegenüber materialisierten Ansichten zwei Vorteile:

  • BATCH garantiert, dass alle Anweisungen im Batch zugesichert werden oder keine.
  • Alle Anweisungen verfügen über die gleiche Quorums- und Commitsemantik.

Wenn Ihre Workload wirklich ein normalisiertes Datenmodell benötigt, sollten Sie einen skalierbaren relationalen Speicher wie Azure Cosmos DB für PostgreSQL in Betracht ziehen.

Materialisierte Ansichten aktivieren

Legen Sie enable_materialized_views: true im rawUserConfig Feld Ihres Cassandra-Rechenzentrums fest. Verwenden Sie den folgenden Azure CLI-Befehl, um jedes Rechenzentrum in Ihrem Cluster zu aktualisieren:

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