Partager via


Vues matérialisées dans Azure Managed Instance pour Apache cassandra

Azure Managed Instance pour Apache Cassandra est un service complètement managé pour les clusters Apache Cassandra open source purs. Le service permet également aux configurations d’être remplacées, en fonction des besoins spécifiques de chaque charge de travail. Cette fonctionnalité permet une flexibilité et un contrôle maximals si nécessaire. Cet article explique comment activer des vues matérialisées.

Prise en charge de la vue matérialisée

Les vues matérialisées sont désactivées par défaut, mais vous pouvez les activer sur votre cluster. Nous déconseillons les utilisateurs d’Azure Managed Instance pour Apache Cassandra d’utiliser des vues matérialisées. Ils sont expérimentaux. En particulier :

  • L’implémentation de vues matérialisées est une conception de système distribué qui n’est pas largement modélisée et simulée. Il n’y a aucune preuve formelle de ses propriétés.
  • Il n’existe aucun moyen de déterminer si une vue matérialisée n’est pas synchronisée avec sa table de base.
  • Il n’existe aucune limite supérieure quant au temps nécessaire à la synchronisation d’une vue matérialisée lorsqu’il existe une modification de sa table de base.
  • S’il existe une erreur et qu’une vue matérialisée est désynchronisée, la seule façon de résoudre la situation consiste à supprimer l’affichage matérialisé et à le recréer.

Pour plus d'informations, consultez les vues matérialisées marquées comme expérimentales - Archives des mails Apache et la proposition en ce sens.

Microsoft n’offre pas de contrat de niveau de service ni de support sur les problèmes liés aux vues matérialisées.

Alternatives aux vues matérialisées

Comme la plupart des magasins NoSQL, Apache Cassandra n’est pas conçu pour avoir un modèle de données normalisé. Si vous devez mettre à jour les données dans plusieurs emplacements, envoyez toutes les instructions nécessaires dans le cadre d’un batch. Cette approche présente deux avantages par rapport aux vues matérialisées :

  • BATCH garantit que toutes les instructions du lot sont validées ou aucune.
  • Toutes les instructions ont les mêmes sémantiques de quorum et de validation.

Si votre charge de travail a vraiment besoin d’un modèle de données normalisé, envisagez un magasin relationnel évolutif comme Azure Cosmos DB pour PostgreSQL.

Activer des vues matérialisées

Définissez enable_materialized_views: true dans le rawUserConfig champ de votre centre de données Cassandra. Utilisez la commande Azure CLI suivante pour mettre à jour chaque centre de données de votre cluster :

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