Создание контейнера с включенным аналитическим хранилищем

Завершено

После включения Azure Synapse Link в учетной записи Azure Cosmos DB можно создать или обновить контейнер с поддержкой аналитического хранилища.

Аналитическое хранилище — это хранилище на основе столбцов в том же контейнере, что и операционное хранилище на основе строк. Процесс автоматической синхронизации синхронизирует изменения в операционном хранилище с аналитическим хранилищем; откуда его можно запрашивать без дополнительных затрат на обработку в операционном хранилище.

Типы схем аналитического хранилища

Так как данные из операционного хранилища синхронизируются с аналитическим хранилищем, схема обновляется динамически, чтобы отразить структуру синхронизируемых документов. Конкретное поведение этого динамического обслуживания схемы зависит от типа схемы аналитического хранилища, настроенного для учетной записи Azure Cosmos DB. Поддерживаются два типа представления схемы:

  • Четко определен: тип схемы по умолчанию для учетной записи Azure Cosmos DB для NoSQL.
  • Полная точность. Тип схемы по умолчанию (и только поддерживается) для учетной записи Azure Cosmos DB для MongoDB.

Аналитическое хранилище получает данные JSON из операционного хранилища и упорядочивает их в структуру на основе столбцов. В четко определенной схеме первое непустое вхождение поля JSON определяет тип данных для этого поля. Последующие вхождения поля, несовместимые с назначенным типом данных, не будут приняты в аналитическое хранилище.

Например, рассмотрим следующие два документа JSON:

{"productID": 123, "productName": "Widget"}
{"productID": "124", "productName": "Wotsit"}

Первый документ определяет, что поле productID является числовым (целочисленным) значением. При обнаружении второго документа его поле productID имеет строковое значение и поэтому не импортируется в аналитическое хранилище. Документ и остальная часть его поля импортируются, но несовместимое поле удаляется. Следующие столбцы представляют данные в аналитическом хранилище:

productID productName
123 Мини-приложение
Wotsit

В схеме с полной точностью тип данных добавляется к каждому экземпляру поля, и при необходимости создаются новые столбцы. Это позволяет аналитическому хранилищу содержать несколько вхождений поля с разными типами данных, как показано в следующей таблице:

productID.int32 productName.string productID.string
123 Мини-приложение
Wotsit 124

Примечание.

Дополнительные сведения см. в статье Что такое аналитическое хранилище Azure Cosmos DB?.

Включение поддержки аналитического хранилища в контейнере

Вы можете включить поддержку аналитического хранилища при создании нового контейнера или для существующего контейнера. Чтобы включить поддержку аналитического хранилища, можно использовать портал Azure, а также Azure CLI или Azure PowerShell из командной строки или скрипта.

Использование портала Azure

Чтобы включить поддержку аналитического хранилища при создании нового контейнера на портале Azure, выберите параметр Вкл. для аналитического хранилища, как показано ниже.

Screenshot showing the Analytical Store option when creating a new container in the Azure portal.

Кроме того, можно включить поддержку аналитического хранилища для существующего контейнера на странице Azure Synapse Link в разделе Интеграции для учетной записи Cosmos DB, как показано ниже.

Screenshot showing the Azure Synapse Link page in the Azure portal, with an existing container selected and the Enable Synapse Link on your container button enabled.

Использование Azure CLI

Чтобы использовать Azure CLI для включения поддержки аналитического хранилища в контейнере Azure Cosmos DB для NoSQL, выполните az cosmosdb sql container create команду (чтобы создать новый контейнер) или az cosmosdb sql container update команду (чтобы настроить существующий контейнер) с --analytical-storage-ttl параметром, назначив время хранения аналитических данных. Если указать для параметра -analytical-storage-ttl значение -1, аналитические данные будут храниться без ограничений по времени. Например, следующая команда создает контейнер с именем my-container с поддержкой аналитического хранилища.

az cosmosdb sql container create --resource-group my-rg --account-name my-cosmos-db --database-name my-db --name my-container --partition-key-path "/productID" --analytical-storage-ttl -1

Для учетной записи Azure Cosmos DB для MongoDB можно использовать az cosmosdb mongodb collection create или az cosmosdb mongodb collection update команду с параметром --analytical-storage-ttl . Для учетной записи Apache Gremlin для Azure Cosmos DB используйте az cosmosdb gremlin graph create или az cosmosdb gremlin graph update команду с параметром --analytical-storage-ttl .

Использование Azure PowerShell

Чтобы использовать Azure PowerShell для включения поддержки аналитического хранилища в контейнере Azure Cosmos DB для NoSQL, запустите New-AzCosmosDBSqlContainer командлет (чтобы создать новый контейнер) или Update-AzCosmosDBSqlContainer командлет (чтобы настроить существующий контейнер) с -AnalyticalStorageTtl параметром, назначив время хранения аналитических данных. Если указать для параметра -AnalyticalStorageTtl значение -1, аналитические данные будут храниться без ограничений по времени. Например, следующая команда создает контейнер с именем my-container с поддержкой аналитического хранилища.

New-AzCosmosDBSqlContainer -ResourceGroupName "my-rg" -AccountName "my-cosmos-db" -DatabaseName "my-db" -Name "my-container" -PartitionKeyKind "hash" -PartitionKeyPath "/productID" -AnalyticalStorageTtl -1

Для учетной записи API MongoDB Для Azure Cosmos DB используйте New-AzCosmosDBMongoDBCollection параметр или Update-AzCosmosDBMongoDBCollection командлет -AnalyticalStorageTtl .

Рекомендации по включению поддержки аналитического хранилища

Поддержку аналитического хранилища нельзя отключить, не удалив контейнер. Чтобы просто отключить аналитическое хранилище, присвойте параметру его срока жизни значение 0 или null, в результате чего в нем будет прекращена синхронизация новых элементов с операционным хранилищем и будут удалены ранее синхронизированные элементы. После установки значения 0 поддержку аналитического хранилища в контейнере повторно включить нельзя.