Skapa en container med analysarkiv aktiverat

Slutförd

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:

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

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:

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.

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.