Skapa en container med analysarkiv aktiverat
När du har aktiverat Azure Synapse Link i ett Azure Cosmos DB-konto kan du skapa eller uppdatera en container med stöd för ett analysarkiv.
Ett analysarkiv är ett kolumnbaserat arkiv i samma container som ett radbaserat driftlager. En automatisk synkroniseringsprocess synkroniserar ändringar i det operativa arkivet till analysarkivet, varifrån det kan efterfrågas utan att medföra bearbetningskostnader i driftarkivet.
Schematyper för analysarkiv
När data från driftlagret synkroniseras till analysarkivet uppdateras schemat dynamiskt för att återspegla strukturen för de dokument som synkroniseras. Det specifika beteendet för det här dynamiska schemaunderhållet beror på schematypen för analysarkivet som konfigurerats för Azure Cosmos DB-kontot. Två typer av schemarepresentation stöds:
- Väldefinierad: Standardschematypen för ett Azure Cosmos DB för NoSQL-konto.
- Fullständig återgivning: Standardschematypen (och stöds endast) för ett Azure Cosmos DB för MongoDB-konto.
Analysarkivet tar emot JSON-data från driftlagret och organiserar dem i en kolumnbaserad struktur. I ett väldefinierat schema avgör den första icke-null-förekomsten av ett JSON-fält datatypen för det fältet. Efterföljande förekomster av fältet som inte är kompatibla med den tilldelade datatypen matas inte in i analysarkivet.
Tänk till exempel på följande två JSON-dokument:
{"productID": 123, "productName": "Widget"}
{"productID": "124", "productName": "Wotsit"}
Det första dokumentet avgör att fältet productID är ett numeriskt värde (heltal). När det andra dokumentet påträffas har dess productID-fält ett strängvärde och importeras därför inte till analysarkivet. Dokumentet och resten av dess fält importeras, men det inkompatibla fältet tas bort. Följande kolumner representerar data i analysarkivet:
productID | productName |
---|---|
123 | Widget |
Wotsit |
I ett fullständigt återgivningsschema läggs datatypen till i varje instans av fältet, med nya kolumner skapade efter behov. gör det möjligt för analysarkivet att innehålla flera förekomster av ett fält, var och en med en annan datatyp, enligt följande tabell:
productID.int32 | productName.string | productID.string |
---|---|---|
123 | Widget | |
Wotsit | 124 |
Kommentar
Mer information finns i Vad är Azure Cosmos DB-analysarkiv?.
Aktivera stöd för analysarkiv i en container
Du kan aktivera stöd för analysarkiv när du skapar en ny container eller för en befintlig container. Om du vill aktivera stöd för analysarkiv kan du använda Azure-portalen eller använda Azure CLI eller Azure PowerShell från en kommandorad eller i ett skript.
Med hjälp av Azure-portalen
Om du vill aktivera stöd för analysarkiv när du skapar en ny container i Azure-portalen väljer du alternativet På för Analysarkiv, som du ser här:
Du kan också aktivera stöd för analysarkiv för en befintlig container på sidan Azure Synapse Link i avsnittet Integreringar på sidan för ditt Cosmos DB-konto, som du ser här:
Använda Azure CLI
Om du vill använda Azure CLI för att aktivera stöd för analysarkiv i en Azure Cosmos DB för NoSQL-container kör az cosmosdb sql container create
du kommandot (för att skapa en ny container) eller az cosmosdb sql container update
ett kommando (för att konfigurera en befintlig container) med parametern --analytical-storage-ttl
och tilldelar en kvarhållningstid för analysdata. Om du anger en -analytical-storage-ttl
parameter för -1 kan analysdata behållas permanent. Följande kommando skapar till exempel en ny container med namnet my-container med stöd för analysarkiv.
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
För ett Azure Cosmos DB för MongoDB-konto kan du använda az cosmosdb mongodb collection create
kommandot eller az cosmosdb mongodb collection update
med parametern --analytical-storage-ttl
. För ett Azure Cosmos DB för Apache Gremlin-konto använder du az cosmosdb gremlin graph create
kommandot eller az cosmosdb gremlin graph update
med parametern --analytical-storage-ttl
.
Använda Azure PowerShell
Om du vill använda Azure PowerShell för att aktivera stöd för analysarkiv i n Azure Cosmos DB för NoSQL-container kör du cmdleten New-AzCosmosDBSqlContainer
(för att skapa en ny container) eller Update-AzCosmosDBSqlContainer
cmdlet (för att konfigurera en befintlig container) med parametern -AnalyticalStorageTtl
och tilldelar en kvarhållningstid för analysdata. Om du anger en -AnalyticalStorageTtl
parameter för -1 kan analysdata behållas permanent. Följande kommando skapar till exempel en ny container med namnet my-container med stöd för analysarkiv.
New-AzCosmosDBSqlContainer -ResourceGroupName "my-rg" -AccountName "my-cosmos-db" -DatabaseName "my-db" -Name "my-container" -PartitionKeyKind "hash" -PartitionKeyPath "/productID" -AnalyticalStorageTtl -1
För ett Azure Cosmos DB for MongoDB API-konto använder du cmdleten New-AzCosmosDBMongoDBCollection
eller Update-AzCosmosDBMongoDBCollection
med parametern -AnalyticalStorageTtl
.
Överväganden för att aktivera stöd för analysarkiv
Stöd för analysarkiv kan inte inaktiveras utan att containern tas bort. Om du anger TTL-värdet för analysarkivet till 0 eller null inaktiveras analysarkivet effektivt genom att nya objekt inte längre synkroniseras från driftlagret och objekt som redan har synkroniserats från analysarkivet tas bort. När du har angett det här värdet till 0 kan du inte återaktivera stöd för analysarkiv i containern.