Een container met analytische opslag maken

Voltooid

Nadat u Azure Synapse Link hebt ingeschakeld in een Azure Cosmos DB-account, kunt u een container maken of bijwerken met ondersteuning voor een analytische opslag.

Een analytische opslag is een opslag op basis van kolommen binnen dezelfde container als een operationeel archief op basis van rijen. Met een proces voor automatische synchronisatie worden wijzigingen in het operationele archief gesynchroniseerd met de analytische opslag. Hier kunnen query's worden uitgevoerd zonder dat er verwerkingsoverhead in het operationele archief wordt gemaakt.

Schematypen voor analytische opslag

Wanneer de gegevens uit het operationele archief worden gesynchroniseerd met de analytische opslag, wordt het schema dynamisch bijgewerkt om de structuur van de documenten weer te geven die worden gesynchroniseerd. Het specifieke gedrag van dit dynamische schemaonderhoud is afhankelijk van het schematype analytische opslag dat is geconfigureerd voor het Azure Cosmos DB-account. Er worden twee typen schemaweergave ondersteund:

  • Goed gedefinieerd: het standaardschematype voor een Azure Cosmos DB voor NoSQL-account.
  • Volledige betrouwbaarheid: het standaardschematype (en alleen ondersteund) voor een Azure Cosmos DB voor MongoDB-account.

De analytische opslag ontvangt JSON-gegevens uit het operationele archief en organiseert deze in een structuur op basis van kolommen. In een goed gedefinieerd schema bepaalt het eerste niet-null-exemplaar van een JSON-veld het gegevenstype voor dat veld. Volgende exemplaren van het veld dat niet compatibel is met het toegewezen gegevenstype, worden niet opgenomen in de analytische opslag.

Denk bijvoorbeeld aan de volgende twee JSON-documenten:

{"productID": 123, "productName": "Widget"}
{"productID": "124", "productName": "Wotsit"}

Het eerste document bepaalt dat het veld product-id een numerieke waarde (geheel getal) is. Wanneer het tweede document wordt aangetroffen, heeft het bijbehorende product-id-veld een tekenreekswaarde en wordt het niet geïmporteerd in de analytische opslag. Het document en de rest van het veld worden geïmporteerd, maar het incompatibele veld wordt verwijderd. De volgende kolommen vertegenwoordigen de gegevens in de analytische opslag:

productID productName
123 Widget
Wotsit

In een volledig betrouwbaarheidsschema wordt het gegevenstype toegevoegd aan elk exemplaar van het veld, waarbij zo nodig nieuwe kolommen worden gemaakt; het inschakelen van de analytische opslag voor meerdere exemplaren van een veld, elk met een ander gegevenstype, zoals wordt weergegeven in de volgende tabel:

productID.int32 productName.string productID.string
123 Widget
Wotsit 124

Ondersteuning voor analytische opslag inschakelen in een container

U kunt ondersteuning voor analytische opslag inschakelen bij het maken van een nieuwe container of voor een bestaande container. Als u ondersteuning voor analytische opslag wilt inschakelen, kunt u Azure Portal gebruiken of de Azure CLI of Azure PowerShell gebruiken vanaf een opdrachtregel of in een script.

Met gebruik van Azure Portal

Als u ondersteuning voor analytische opslag wilt inschakelen bij het maken van een nieuwe container in Azure Portal, selecteert u de optie Aan voor analytische opslag, zoals hier wordt weergegeven:

Schermopname van de optie Analytical Store bij het maken van een nieuwe container in Azure Portal.

U kunt ook ondersteuning voor analytische opslag inschakelen voor een bestaande container op de pagina Azure Synapse Link in de sectie Integraties van de pagina voor uw Cosmos DB-account, zoals hier wordt weergegeven:

Schermopname van de pagina Azure Synapse Link in Azure Portal, met een bestaande container geselecteerd en de knop Synapse Link inschakelen op de containerknop ingeschakeld.

Met gebruik van de Azure CLI

Als u de Azure CLI wilt gebruiken om ondersteuning voor analytische opslag in te schakelen in een Azure Cosmos DB for NoSQL-container, voert u de az cosmosdb sql container create opdracht (om een nieuwe container te maken) of az cosmosdb sql container update opdracht (om een bestaande container te configureren) uit met de --analytical-storage-ttl parameter, waarbij u een retentietijd voor analytische gegevens toewijst. Als u een -analytical-storage-ttl parameter van -1 opgeeft, kan analytische gegevens permanent worden bewaard. Met de volgende opdracht maakt u bijvoorbeeld een nieuwe container met de naam my-container met ondersteuning voor analytische opslag.

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

Voor een Azure Cosmos DB voor MongoDB-account kunt u de az cosmosdb mongodb collection create of az cosmosdb mongodb collection update opdracht gebruiken met de --analytical-storage-ttl parameter. Gebruik voor een Azure Cosmos DB voor Apache Gremlin-account de az cosmosdb gremlin graph create of az cosmosdb gremlin graph update opdracht met de --analytical-storage-ttl parameter.

Azure PowerShell gebruiken

Als u Azure PowerShell wilt gebruiken om ondersteuning voor analytische opslag in te schakelen in n Azure Cosmos DB for NoSQL-container, voert u de New-AzCosmosDBSqlContainer cmdlet (om een nieuwe container te maken) of Update-AzCosmosDBSqlContainer cmdlet (om een bestaande container te configureren) uit met de -AnalyticalStorageTtl parameter, waarbij u een retentietijd voor analytische gegevens toewijst. Als u een -AnalyticalStorageTtl parameter van -1 opgeeft, kan analytische gegevens permanent worden bewaard. Met de volgende opdracht maakt u bijvoorbeeld een nieuwe container met de naam my-container met ondersteuning voor analytische opslag.

New-AzCosmosDBSqlContainer -ResourceGroupName "my-rg" -AccountName "my-cosmos-db" -DatabaseName "my-db" -Name "my-container" -PartitionKeyKind "hash" -PartitionKeyPath "/productID" -AnalyticalStorageTtl -1

Gebruik voor een Azure Cosmos DB voor MongoDB API-account de New-AzCosmosDBMongoDBCollection of Update-AzCosmosDBMongoDBCollection cmdlet met de -AnalyticalStorageTtl parameter.

Overwegingen voor het inschakelen van ondersteuning voor analytische opslag

Ondersteuning voor analytische opslag kan niet worden uitgeschakeld zonder de container te verwijderen. Als u de TTL-waarde van de analytische opslag instelt op 0 of null , wordt de analytische opslag effectief uitgeschakeld door nieuwe items niet langer te synchroniseren vanuit het operationele archief en items te verwijderen die al zijn gesynchroniseerd vanuit de analytische opslag. Nadat u deze waarde hebt ingesteld op 0, kunt u de ondersteuning voor analytische opslag niet opnieuw inschakelen in de container.