Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure Управляемый экземпляр для Apache Cassandra — это полностью управляемая служба для чистых кластеров Apache Cassandra с открытым кодом. Служба также позволяет переопределить конфигурации в зависимости от конкретных потребностей каждой рабочей нагрузки. Эта функция обеспечивает максимальную гибкость и контроль, где это необходимо. В этой статье описывается включение материализованных представлений.
Поддержка материализованного представления
Материализованные представления отключены по умолчанию, но их можно включить в кластере. Мы не рекомендуем пользователям Управляемого экземпляра Azure для Apache Cassandra использовать материализованные представления. Они экспериментальные. В частности:
- Реализация материализованных представлений — это проектирование распределенных систем, которое недостаточно широко моделируется и имитируется. Нет формальных доказательств о его свойствах.
- Невозможно определить, не синхронизировано ли материализованное представление с базовой таблицей.
- Нет верхней границы в том, сколько времени занимает материализованное представление для синхронизации при изменении базовой таблицы.
- Если возникает ошибка и материализованное представление выходит из синхронизации, единственным способом решения этой ситуации является удаление материализованного представления и его повторное создание.
Дополнительные сведения см. в разделе "Материализованные представления", отмеченные экспериментальными архивами Apache Mail и предложением для этого.
Корпорация Майкрософт не предоставляет никакого соглашения об уровне обслуживания или поддержки по проблемам с материализованными представлениями.
Альтернативные варианты материализованных представлений
Как и большинство хранилищ NoSQL, Apache Cassandra не предназначен для нормализованной модели данных. Если необходимо обновить данные в нескольких местах, отправьте все необходимые инструкции в виде пакета. Этот подход имеет два преимущества по сравнению с материализованными представлениями:
-
BATCHгарантирует, что все инструкции в пакете зафиксированы или отсутствуют. - Все операторы имеют одинаковую семантику кворума и семантики фиксации.
Если рабочая нагрузка действительно нуждается в нормализованной модели данных, рассмотрите масштабируемое реляционное хранилище, например Azure Cosmos DB для PostgreSQL.
Включить материализованные представления
Задайте enable_materialized_views: true в rawUserConfig поле центра обработки данных Cassandra. Чтобы обновить каждый центр обработки данных в кластере, используйте следующую команду Azure CLI:
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