Создание контейнера с включенным аналитическим хранилищем
После включения 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, выберите параметр Вкл. для аналитического хранилища, как показано ниже.
Кроме того, можно включить поддержку аналитического хранилища для существующего контейнера на странице Azure Synapse Link в разделе Интеграции для учетной записи Cosmos DB, как показано ниже.
Использование 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 поддержку аналитического хранилища в контейнере повторно включить нельзя.