Share via


Materialisierte Sichten in Azure Managed Instance for Apache Cassandra

Azure Managed Instance for Apache Cassandra ist ein vollständig verwalteter Dienst für reine Open-Source Apache Cassandra-Cluster. Der Dienst ermöglicht auch das Überschreiben von Konfigurationen, je nach den spezifischen Anforderungen der einzelnen Workloads, und bietet so ein Höchstmaß an Flexibilität und Kontrolle, wo dies erforderlich ist. In diesem Artikel wird erläutert, wie materialisierte Sichten aktiviert werden.

Unterstützung für materialisierte Sichten

Materialisierte Sichten sind standardmäßig deaktiviert, Benutzer können sie jedoch in ihrem Cluster aktivieren. Es wird jedoch davon abgeraten, dass Benutzer von Azure Managed Instance for Apache Cassandra materialisierte Sichten verwenden. Sie sind experimentell (siehe Materialized Views marked experimental – Apache Mail Archives (Materialisierte Sichten sind als experimentell markiert) und den entsprechenden Vorschlag). Dies gilt insbesondere für:

  • Die Implementierung materialisierter Sichten folgt dem Konzept eines verteilten Systems, das nicht umfassend modelliert und simuliert wurde. Es gab keine formalen Bestätigungen seiner Eigenschaften.
  • Es gibt keine Möglichkeit, festzustellen, ob eine materialisierte Sicht nicht mit ihrer Basistabelle synchron ist.
  • Es gibt keine Obergrenze dafür, wie lange es dauert, bis eine materialisierte Sicht synchronisiert wird, wenn die Basistabelle geändert wird.
  • Wenn ein Fehler auftritt und eine materialisierte Sicht nicht mehr synchron ist, können Sie sie nur reparieren, indem Sie die materialisierte Sicht löschen und neu erstellen.

Microsoft kann keine SLA und keinen Support bei Problemen mit materialisierten Sichten anbieten.

Alternativen zu materialisierten Sichten

Wie die meisten NoSQL-Speicher ist Apache Cassandra nicht für ein normalisiertes Datenmodell konzipiert. Wenn Sie Daten an mehr als einem Ort aktualisieren müssen, sollte Ihr Programm alle erforderlichen Anweisungen als Teil eines BATCH senden. Dies hat zwei Vorteile gegenüber materialisierten Sichten:

  • BATCH garantiert, dass für alle oder keine Anweisungen im Batch ein Commit ausgeführt wird.
  • 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 Hyperscale PostgreSQL von Azure in Betracht ziehen.

Aktivieren von materialisierten Sichten

Sie müssen enable_materialized_views: true im Feld rawUserConfig Ihres Cassandra-Rechenzentrums festlegen. Verwenden Sie dazu 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

Nächste Schritte