Criar um contêiner habilitado para repositório analítico
Depois de habilitar o Link do Azure Synapse em uma conta do Azure Cosmos DB, você pode criar ou atualizar um contêiner com suporte para um repositório analítico.
Um repositório analítico é um repositório baseado em coluna no mesmo contêiner que um repositório operacional baseado em linha. Um processo de sincronização automática sincroniza as alterações no repositório operacional para o repositório analítico; de onde ele pode ser consultado sem incorrer em sobrecarga de processamento no repositório operacional.
Tipos de esquema de repositório analítico
Conforme os dados do repositório operacional são sincronizados com o repositório analítico, o esquema é atualizado dinamicamente para refletir a estrutura dos documentos que estão sendo sincronizados. O comportamento específico dessa manutenção dinâmica de esquema depende do tipo de esquema de repositório analítico configurado para a conta do Azure Cosmos DB. Há suporte para dois tipos de representação de esquema:
- Bem definido: o tipo de esquema padrão para uma conta do Azure Cosmos DB for NoSQL.
- Fidelidade total: o tipo de esquema padrão (e o único compatível) para uma conta do Azure Cosmos DB for MongoDB.
O repositório analítico recebe dados JSON do repositório operacional e os organiza em uma estrutura baseada em coluna. Em um esquema bem definido, a primeira ocorrência não nula de um campo JSON determina o tipo de dados desse campo. As ocorrências subsequentes do campo que não são compatíveis com o tipo de dados atribuído não são ingeridas no repositório analítico.
Por exemplo, considere os seguintes dois documentos JSON:
{"productID": 123, "productName": "Widget"}
{"productID": "124", "productName": "Wotsit"}
O primeiro documento determina que o campo productID é um valor numérico (inteiro). Quando o segundo documento é encontrado, o respectivo campo productID tem um valor de cadeia de caracteres e, portanto, não é importado para o repositório analítico. O documento e o restante do campo dele são importados, mas o campo incompatível é removido. As seguintes colunas representam os dados no repositório analítico:
productID | productName |
---|---|
123 | Widget |
Wotsit |
Em um esquema de fidelidade total, o tipo de dados é acrescentado a cada instância do campo e novas colunas são criadas conforme necessário; permitindo que o repositório analítico contenha várias ocorrências de um campo, cada uma com um tipo de dados diferente, conforme mostrado na seguinte tabela:
productID.int32 | productName.string | productID.string |
---|---|---|
123 | Widget | |
Wotsit | 124 |
Observação
Para obter mais informações, confira O que é o repositório analítico do Azure Cosmos DB?.
Habilitar o suporte ao repositório analítico em um contêiner
Você pode habilitar o suporte ao repositório analítico ao criar um contêiner ou para um contêiner existente. Para habilitar o suporte ao repositório analítico, você pode usar o portal do Azure ou usar a CLI do Azure ou o Azure PowerShell, de uma linha de comando ou em um script.
Usando o portal do Azure
Para habilitar o suporte ao repositório analítico ao criar um contêiner no portal do Azure, selecione a opção Ativado para Repositório Analítico, conforme mostrado aqui:
Como alternativa, você pode habilitar o suporte a repositório analítico para um contêiner existente na página do Link do Azure Synapse, na seção Integrações da página para sua conta do Cosmos DB, conforme mostrado aqui:
Usando a CLI do Azure
Para usar a CLI do Azure para habilitar o suporte ao repositório analítico em um contêiner do Azure Cosmos DB for NoSQL, execute o comando az cosmosdb sql container create
(para criar um contêiner) ou o comando az cosmosdb sql container update
(para configurar um contêiner existente) com o parâmetro --analytical-storage-ttl
, atribuindo um tempo de retenção para dados analíticos. Especificar um parâmetro -analytical-storage-ttl
com o valor -1 permite a retenção permanente de dados analíticos. Por exemplo, o comando a seguir cria um contêiner chamado my-container com suporte a repositório analítico.
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
Para uma conta do Azure Cosmos DB for MongoDB, você pode usar o comando az cosmosdb mongodb collection create
ou az cosmosdb mongodb collection update
com o parâmetro --analytical-storage-ttl
. Para uma conta do Azure Cosmos DB for Apache Gremlin, use o comando az cosmosdb gremlin graph create
ou az cosmosdb gremlin graph update
com o parâmetro --analytical-storage-ttl
.
Usando o PowerShell do Azure
Para usar o Azure PowerShell para habilitar o suporte ao repositório analítico em um contêiner do Azure Cosmos DB for NoSQL, execute o cmdlet New-AzCosmosDBSqlContainer
(para criar um contêiner) ou o cmdlet Update-AzCosmosDBSqlContainer
(para configurar um contêiner existente) com o parâmetro -AnalyticalStorageTtl
, atribuindo um tempo de retenção para dados analíticos. Especificar um parâmetro -AnalyticalStorageTtl
com o valor -1 permite a retenção permanente de dados analíticos. Por exemplo, o comando a seguir cria um contêiner chamado my-container com suporte a repositório analítico.
New-AzCosmosDBSqlContainer -ResourceGroupName "my-rg" -AccountName "my-cosmos-db" -DatabaseName "my-db" -Name "my-container" -PartitionKeyKind "hash" -PartitionKeyPath "/productID" -AnalyticalStorageTtl -1
Para uma conta da API do Azure Cosmos DB for MongoDB, use o cmdlet New-AzCosmosDBMongoDBCollection
ou Update-AzCosmosDBMongoDBCollection
com o parâmetro -AnalyticalStorageTtl
.
Considerações sobre como habilitar o suporte a repositório analítico
O suporte a repositório analítico não pode ser desabilitado sem a exclusão do contêiner. Configurar o valor de TTL do repositório analítico como 0 ou null desabilita efetivamente o repositório analítico ao não sincronizar mais novos itens do repositório operacional e excluir itens já sincronizados do repositório analítico. Depois de definir esse valor como 0, você não poderá reabilitar o suporte o repositório analítico no contêiner.