Sdílet prostřednictvím


Materializovaná zobrazení ve službě Azure Managed Instance pro Apache Cassandra

Azure Managed Instance for Apache Cassandra je plně spravovaná služba pro čistě opensourcové clustery Apache Cassandra. Služba také umožňuje přepis konfigurací v závislosti na konkrétních potřebách jednotlivých pracovních úloh. Tato funkce umožňuje maximální flexibilitu a kontrolu podle potřeby. Tento článek popisuje, jak povolit materializovaná zobrazení.

Podpora materializovaného zobrazení

Materializovaná zobrazení jsou ve výchozím nastavení zakázaná, ale můžete je povolit ve svém clusteru. Nedoporučujeme uživatelům služby Azure Managed Instance for Apache Cassandra používat materializovaná zobrazení. Jsou experimentální. Zejména jde o toto:

  • Implementace materializovaných zobrazení je návrh distribuovaného systému, který není široce modelován a simulován. Neexistují žádné formální doklady o jeho vlastnostech.
  • Neexistuje způsob, jak určit, jestli materializované zobrazení není synchronizované se základní tabulkou.
  • Neexistuje žádná horní mez, jak dlouho trvá synchronizace materializovaného zobrazení, když dojde ke změně základní tabulky.
  • Pokud dojde k chybě a materializované zobrazení přestane být synchronizované, jediným způsobem, jak situaci vyřešit, je odstranit materializované zobrazení a znovu ho vytvořit.

Další informace najdete v části Materializovaná zobrazení označená jako experimentální - Archivy Apache Mail a návrh na jejich implementaci.

Microsoft nenabízí žádnou smlouvu o úrovni služeb ani podporu v případě problémů s materializovanými zobrazeními.

Alternativy k materializovaným zobrazením

Stejně jako většina úložišť NoSQL není Apache Cassandra navržená tak, aby měla normalizovaný datový model. Pokud potřebujete aktualizovat data na více místech, odešlete všechny potřebné příkazy jako součást služby BATCH. Tento přístup má oproti materializovaným zobrazením dvě výhody:

  • BATCH zaručuje, že všechny prohlášení v dávce jsou buď potvrzeny, nebo žádné nejsou.
  • Všechny příkazy mají stejné kvorum a sémantiku potvrzení.

Pokud vaše úloha skutečně potřebuje normalizovaný datový model, zvažte škálovatelné relační úložiště, jako je Azure Cosmos DB for PostgreSQL.

Povolení materializovaných zobrazení

Nastavte enable_materialized_views: true v rawUserConfig poli datacentra Cassandra. Pomocí následujícího příkazu Azure CLI aktualizujte každé datové centrum v clusteru:

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