Erstellen eines Containers mit aktiviertem analytischen Speicher

Abgeschlossen

Nachdem Sie Azure Synapse Link in einem Azure Cosmos DB-Konto aktiviert haben, können Sie einen Container mit Unterstützung eines Analysespeichers erstellen oder aktualisieren.

Ein Analysespeicher ist ein spaltenbasierter Speicher innerhalb des Containers mit dem zeilenbasierten Betriebsspeicher. Ein Prozess zur automatischen Synchronisierung synchronisiert Änderungen im Betriebsspeicher mit dem Analysespeicher. Dort können sie abgefragt werden, ohne dass im Betriebsspeicher ein Verarbeitungsaufwand entsteht.

Schematypen von Analysespeichern

Während die Daten aus dem Betriebsspeicher mit dem Analysespeicher synchronisiert werden, wird das Schema dynamisch aktualisiert, um die Struktur der synchronisierten Dokumente wiederzugeben. Das spezifische Verhalten dieser dynamischen Schemawartung hängt vom Schematyp des Analysespeichers ab, der für das Azure Cosmos DB-Konto konfiguriert wurde. Zwei Arten der Schemadarstellung werden unterstützt:

  • Well-defined: Der Standardschematyp für ein Azure Cosmos DB for NoSQL-Konto.
  • Full Fidelity: Der standardmäßige (und einzige unterstützte) Schematyp für ein Azure Cosmos DB for MongoDB-Konto.

Der Analysespeicher empfängt JSON-Daten aus dem Betriebsspeicher und organisiert sie in einer spaltenbasierten Struktur. In einem Schema des Typs WellDefined bestimmt das erste Nicht-NULL-Ereignis eines JSON-Felds den Datentyp dieses Felds. Nachfolgende Vorkommen des Felds, die nicht mit dem zugewiesenen Datentyp kompatibel sind, werden nicht in den Analysespeicher aufgenommen.

Betrachten Sie beispielsweise die folgenden beiden JSON-Dokumente:

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

Das erste Dokument bestimmt, dass das Feld productID ein numerischer (ganzzahliger) Wert ist. Wenn das zweite Dokument gefunden wird, enthält das Feld productID einen Zeichenfolgenwert, der nicht in den Analysespeicher importiert wird. Das Dokument und der Rest des Felds werden importiert, aber das inkompatible Feld wird gelöscht. Die folgenden Spalten stellen die Daten im Analysespeicher dar:

productID ProductName
123 Widget
Wotsit

In einem Schema des Typs FullFidelity wird der Datentyp an jedes Vorkommen des Felds angefügt, wobei bei Bedarf neue Spalten erstellt werden. Dadurch kann der Analysespeicher mehrere Vorkommen eines Felds enthalten, die jeweils einen anderen Datentyp haben, wie in der folgenden Tabelle gezeigt:

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

Hinweis

Weitere Informationen finden Sie unter Was ist der Azure Cosmos DB-Analysespeicher?.

Aktivieren der Unterstützung des Analysespeichers in einem Container

Sie können die Unterstützung eines Analysespeichers bei der Erstellung eines neuen Containers oder für einen bestehenden Container aktivieren. Die Unterstützung eines Analysespeichers können Sie über das Azure-Portal bzw. über die Azure CLI oder Azure PowerShell über eine Befehlszeile oder ein Skript aktivieren.

Verwenden des Azure-Portals

Um die Unterstützung eines Analysespeichers bei der Erstellung eines neuen Containers im Azure-Portal zu aktivieren, wählen Sie die Option Ein für Analysespeicher aus, wie hier gezeigt:

Screenshot der Option „Analysespeicher“ beim Erstellen eines neuen Containers im Azure-Portal.

Alternativ können Sie die Unterstützung eines Analysespeichers für einen vorhandenen Container auf der Seite Azure Synapse Link im Abschnitt Integrationen auf der Seite Ihres Cosmos DB-Kontos aktivieren, wie hier gezeigt:

Screenshot der Azure Synapse Link-Seite im Azure-Portal, wobei ein vorhandener Container ausgewählt und die Schaltfläche zum Aktivieren von Azure Synapse Link für den Container aktiviert ist.

Verwenden der Azure-Befehlszeilenschnittstelle

Um mit der Azure CLI die Unterstützung eines Analysespeichers in einem Azure Cosmos DB for NoSQL-Container zu aktivieren, führen Sie den Befehl az cosmosdb sql container create (zum Erstellen eines neuen Containers) oder den Befehl az cosmosdb sql container update (zum Konfigurieren eines vorhandenen Containers) mit dem Parameter --analytical-storage-ttl aus, wobei Sie eine Aufbewahrungszeit für analytische Daten zuweisen. Die Angabe -1 für den Parameter -analytical-storage-ttl ermöglicht die dauerhafte Aufbewahrung analytischer Daten. Der folgende Befehl erstellt beispielsweise einen neuen Container mit dem Namen my-container mit Unterstützung eines Analysespeichers.

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 ein Azure Cosmos DB for MongoDB-Konto können Sie den Befehl az cosmosdb mongodb collection create oder az cosmosdb mongodb collection update mit dem Parameter --analytical-storage-ttl verwenden. Für ein Azure Cosmos DB for Apache Gremlin-Konto verwenden Sie den Befehl az cosmosdb gremlin graph create oder az cosmosdb gremlin graph update mit dem Parameter --analytical-storage-ttl.

Verwenden von Azure PowerShell

Um mit Azure PowerShell die Unterstützung eines Analysespeichers in einem Azure Cosmos DB for NoSQL-Container zu aktivieren, führen Sie das Cmdlet New-AzCosmosDBSqlContainer (zum Erstellen eines neuen Containers) oder das Cmdlet Update-AzCosmosDBSqlContainer (zum Konfigurieren eines vorhandenen Containers) mit dem Parameter -AnalyticalStorageTtl aus, wobei Sie eine Aufbewahrungszeit für analytische Daten zuweisen. Die Angabe -1 für den Parameter -AnalyticalStorageTtl ermöglicht die dauerhafte Aufbewahrung analytischer Daten. Der folgende Befehl erstellt beispielsweise einen neuen Container mit dem Namen my-container mit Unterstützung eines Analysespeichers.

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

Verwenden Sie für ein Azure Cosmos DB for MongoDB-API-Konto das Cmdlet New-AzCosmosDBMongoDBCollection oder Update-AzCosmosDBMongoDBCollection mit dem Parameter -AnalyticalStorageTtl.

Überlegungen zum Aktivieren der Unterstützung eines Analysespeichers

Die Unterstützung eines Analysespeichers kann erst deaktiviert werden, nachdem der Container gelöscht wurde. Wenn der TTL-Wert für den Analysespeicher auf 0 oder NULL festgelegt wird, wird der Analysespeicher dadurch deaktiviert, dass neue Elemente nicht mehr aus dem Betriebsspeicher synchronisiert und Elemente gelöscht werden, die bereits aus dem Analysespeicher synchronisiert wurden. Nachdem Sie diesen Wert auf 0 festgelegt haben, können Sie die Unterstützung eines Analysespeichers im Container nicht wieder aktivieren.