Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure Managed Instance for Apache Cassandra es un servicio totalmente administrado para clústeres de Apache Cassandra de código abierto puros. El servicio también permite invalidar las configuraciones, en función de las necesidades específicas de cada carga de trabajo. Esta característica permite la máxima flexibilidad y control cuando sea necesario. En este artículo se describe cómo habilitar vistas materializadas.
Compatibilidad con las vistas materializadas
Las vistas materializadas están deshabilitadas de forma predeterminada, pero puede habilitarlas en el clúster. No se recomienda que los usuarios de Azure Managed Instance para Apache Cassandra usen vistas materializadas. Son experimentales. En concreto:
- La implementación de vistas materializadas es un diseño de sistema distribuido que no está ampliamente modelado ni simulado. No hay pruebas formales sobre sus propiedades.
- No hay forma de determinar si una vista materializada no está sincronizada con su tabla base.
- No hay ningún límite superior sobre cuánto tiempo tarda una vista materializada en sincronizarse cuando se produce un cambio en su tabla base.
- Si hay un error y una vista materializada deja de funcionar, la única manera de resolver la situación es quitar la vista materializada y volver a crearla.
Para más información, vea Vistas materializadas marcadas como archivos experimentales de Apache Mail y la propuesta de hacerlo.
Microsoft no ofrece ningún contrato de nivel de servicio ni soporte técnico para problemas relacionados con vistas materializadas.
Alternativas a las vistas materializadas
Al igual que la mayoría de los almacenes NoSQL, Apache Cassandra no está diseñado para tener un modelo de datos normalizado. Si necesita actualizar datos en más de un lugar, envíe todas las instrucciones necesarias como parte de un BATCH. Este enfoque tiene dos ventajas sobre las vistas materializadas:
BATCHgarantiza que todas las instrucciones del lote están confirmadas o ninguna.- Todas las instrucciones tienen la misma semántica de confirmación y cuórum.
Si la carga de trabajo realmente necesita un modelo de datos normalizado, considere la posibilidad de usar un almacén relacional escalable como Azure Cosmos DB para PostgreSQL.
Habilitación de vistas materializadas
Establezca enable_materialized_views: true en el rawUserConfig campo del centro de datos de Cassandra. Use el siguiente comando de la CLI de Azure para actualizar cada centro de datos del clúster:
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