Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Azure Managed Instance for Apache Cassandra to w pełni zarządzana usługa dla czystych klastrów Apache Cassandra typu open source. Usługa umożliwia również zastępowanie konfiguracji w zależności od konkretnych potrzeb każdego obciążenia. Ta funkcja umożliwia maksymalną elastyczność i kontrolę w razie potrzeby. W tym artykule omówiono sposób włączania zmaterializowanych widoków.
Obsługa zmaterializowanego widoku
Zmaterializowane widoki są domyślnie wyłączone, ale można je włączyć w klastrze. Odradzamy użytkownikom usługi Azure Managed Instance for Apache Cassandra korzystanie z zmaterializowanych widoków. Są eksperymentalne. W szczególności:
- Implementacja zmaterializowanych widoków to rozproszony projekt systemu, który nie jest szeroko modelowany i symulowany. Nie ma formalnych dowodów na jego właściwości.
- Nie ma możliwości określenia, czy zmaterializowany widok nie jest zsynchronizowany z jej tabelą bazową.
- Nie ma górnej granicy, jak długo trwa synchronizowanie zmaterializowanego widoku w przypadku zmiany w tabeli podstawowej.
- Jeśli wystąpi błąd i zmaterializowany widok nie zostanie zsynchronizowany, jedynym sposobem rozwiązania tej sytuacji jest usunięcie zmaterializowanego widoku i ponowne utworzenie go.
Aby uzyskać więcej informacji, zobacz zmaterializowane widoki oznaczone jako eksperymentalne w archiwach Apache Mail oraz propozycję dotyczącą realizacji tego.
Firma Microsoft nie oferuje żadnej umowy dotyczącej poziomu usług ani pomocy technicznej dotyczącej problemów z zmaterializowanymi widokami.
Alternatywy dla zmaterializowanych widoków
Podobnie jak w przypadku większości magazynów NoSQL, platforma Apache Cassandra nie jest zaprojektowana tak, aby model danych był znormalizowany. Jeśli musisz zaktualizować dane w więcej niż jednym miejscu, wyślij wszystkie niezbędne instrukcje w ramach usługi BATCH. Takie podejście ma dwie zalety w stosunku do zmaterializowanych widoków:
-
BATCHgwarantuje, że wszystkie polecenia w wsadzie są zatwierdzane lub żadne. - Wszystkie instrukcje mają te same semantyka kworum i zatwierdzenia.
Jeśli obciążenie naprawdę potrzebuje znormalizowanego modelu danych, rozważ skalowalny magazyn relacyjny, taki jak Azure Cosmos DB for PostgreSQL.
Włączanie zmaterializowanych widoków
Ustaw enable_materialized_views: true w rawUserConfig polu centrum danych Cassandra. Użyj następującego polecenia interfejsu wiersza polecenia platformy Azure, aby zaktualizować każde centrum danych w klastrze:
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