Crear un contenedor habilitado para el almacén analítico.
Después de habilitar Azure Synapse Link en una cuenta de Azure Cosmos DB, puede crear o actualizar un contenedor con compatibilidad con un almacén analítico.
Un almacén analítico es un almacén basado en columnas dentro del mismo contenedor que un almacén operativo basado en filas. Un proceso de sincronización automática sincroniza los cambios del almacén operativo en el almacén analítico; desde donde se puede consultar sin incurrir en sobrecarga de procesamiento en el almacén operativo.
Tipos de esquema de almacén analítico
A medida que los datos del almacén operativo se sincronizan con el almacén analítico, el esquema se actualiza dinámicamente para reflejar la estructura de los documentos que se están sincronizando. El comportamiento específico de este mantenimiento del esquema dinámico depende del tipo de esquema del almacén analítico configurado para la cuenta de Azure Cosmos DB. Se admiten dos tipos de representación de esquema:
- Bien definido: el tipo de esquema predeterminado para una cuenta de Azure Cosmos DB for NoSQL.
- Fidelidad completa: el tipo de esquema predeterminado (y el único que se admite) para una cuenta de Azure Cosmos DB for MongoDB.
El almacén analítico recibe datos JSON del almacén operativo y los organiza en una estructura basada en columnas. En un esquema bien definido, la primera aparición no nula de un campo JSON determina el tipo de datos para ese campo. Las apariciones posteriores del campo que no son compatibles con el tipo de datos asignado no se ingieren en el almacén analítico.
Por ejemplo, considere el siguiente documento JSON:
{"productID": 123, "productName": "Widget"}
{"productID": "124", "productName": "Wotsit"}
El primer documento determina que el campo productID es un valor numérico (entero). Cuando se encuentra el segundo documento, su campo productID tiene un valor de cadena y, por tanto, no se importa en el almacén analítico. El documento y el resto de su campo se importan, pero se quita el campo incompatible. Las columnas siguientes representan los datos del almacén analítico:
productID | ProductName |
---|---|
123 | Widget |
Wotsit |
En un esquema de fidelidad completa, el tipo de datos se anexa a cada instancia del campo, con nuevas columnas creadas según sea necesario, lo que permite que el almacén analítico contenga múltiples apariciones de un campo, cada una con un tipo de datos diferente, como se muestra en la siguiente tabla:
productID.int32 | productName.string | productID.string |
---|---|---|
123 | Widget | |
Wotsit | 124 |
Nota
Para más información, consulte ¿Qué es el almacén analítico de Azure Cosmos DB?.
Habilitación de la compatibilidad con el almacén analítico en un contenedor
Puede habilitar la compatibilidad con el almacén analítico al crear un nuevo contenedor o para un contenedor existente. Para habilitar la compatibilidad con el almacén analítico, puede usar Azure Portal, o bien puede usar la CLI de Azure o Azure PowerShell desde una línea de comandos o en un script.
Uso de Azure Portal
Para habilitar la compatibilidad con el almacén analítico al crear un contenedor en Azure Portal, seleccione la opción Activado para Almacén analítico, como se muestra aquí:
Como alternativa, puede habilitar la compatibilidad con el almacén analítico para un contenedor existente en la página Azure Synapse Link de la sección Integraciones de la página de la cuenta de Cosmos DB, como se muestra aquí:
Uso de la CLI de Azure
Si desea usar la CLI de Azure para habilitar la compatibilidad con el almacén analítico en un contenedor de Azure Cosmos DB for NoSQL, ejecute el comando az cosmosdb sql container create
(para crear un contenedor) o el comando az cosmosdb sql container update
(para configurar un contenedor existente) con el parámetro --analytical-storage-ttl
, asignando un tiempo de retención para los datos analíticos. La especificación de un parámetro -analytical-storage-ttl
de -1 permite la retención permanente de los datos analíticos. Por ejemplo, el siguiente comando crea un nuevo contenedor denominado my-container con compatibilidad con el almacén 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 una cuenta de Azure Cosmos DB for MongoDB, puede usar el comando az cosmosdb mongodb collection create
o el comando az cosmosdb mongodb collection update
con el parámetro --analytical-storage-ttl
. Para una cuenta de Azure Cosmos DB for Apache Gremlin, use el comando az cosmosdb gremlin graph create
o el comando az cosmosdb gremlin graph update
con el parámetro --analytical-storage-ttl
.
Uso de Azure PowerShell
Si desea usar Azure PowerShell para habilitar la compatibilidad con el almacén analítico en un contenedor de Azure Cosmos DB for NoSQL, ejecute el cmdlet New-AzCosmosDBSqlContainer
(para crear un contenedor) o el cmdlet Update-AzCosmosDBSqlContainer
(para configurar un contenedor existente) con el parámetro -AnalyticalStorageTtl
, asignando un tiempo de retención para los datos analíticos. La especificación de un parámetro -AnalyticalStorageTtl
de -1 permite la retención permanente de los datos analíticos. Por ejemplo, el siguiente comando crea un nuevo contenedor denominado my-container con compatibilidad con el almacén analítico.
New-AzCosmosDBSqlContainer -ResourceGroupName "my-rg" -AccountName "my-cosmos-db" -DatabaseName "my-db" -Name "my-container" -PartitionKeyKind "hash" -PartitionKeyPath "/productID" -AnalyticalStorageTtl -1
Para una cuenta de Azure Cosmos DB for MongoDB API, use el cmdlet New-AzCosmosDBMongoDBCollection
o el cmdlet Update-AzCosmosDBMongoDBCollection
con el parámetro -AnalyticalStorageTtl
.
Consideraciones para habilitar la compatibilidad con el almacén analítico
La compatibilidad con el almacén analítico no se puede deshabilitar sin eliminar el contenedor. Si se establece el valor TTL del almacén analítico predeterminado en 0 o null, se deshabilita de manera eficaz el almacén analítico, ya que deja de sincronizar elementos nuevos desde el almacén operativo y elimina los elementos ya sincronizados desde el almacén analítico. Después de establecer este valor en 0, no se puede volver a habilitar la compatibilidad con el almacén analítico en el contenedor.