Konfigurieren und Verwenden von Azure Synapse Link für Azure Cosmos DB

GILT FÜR: NoSQL MongoDB Gremlin

Azure Synapse Link für Azure Cosmos DB ist eine cloudnative hybride Verarbeitungsfunktion für Transaktionen und Analysen (Hybrid Transactional and Analytical Processing, HTAP), mit der Sie in Azure Cosmos DB in Quasi-Echtzeit Analysen für operative Daten ausführen können. Synapse Link sorgt für eine nahtlose Integration zwischen Azure Cosmos DB und Azure Synapse Analytics.

Azure Synapse Link ist für die Azure Cosmos DB SQL-API oder die Azure Cosmos DB-API für Mongo DB-Konten verfügbar. Und es befindet sich in der Vorschau für die Gremlin-API mit Aktivierung über CLI-Befehle. Führen Sie die folgenden Schritte aus, um mit Azure Synapse Link für Azure Cosmos DB Analyseabfragen durchzuführen:

Sie können sich auch das Trainingsmodul zur Konfiguration von Azure Synapse Link für Azure Cosmos DB ansehen.

Der erste Schritt zur Verwendung von Synapse Link besteht in seiner Aktivierung für Ihr Azure Cosmos DB-Datenbankkonto.

Hinweis

Wenn Sie kundenverwaltete Schlüssel mit Azure Synapse Link verwenden möchten, müssen Sie die verwaltete Identität Ihres Kontos in Ihrer Azure Key Vault-Zugriffsrichtlinie konfigurieren, bevor Sie Synapse Link für Ihr Konto aktivieren. Weitere Informationen finden Sie unter Konfigurieren von kundenseitig verwalteten Schlüsseln mithilfe verwalteter Identitäten eines Azure Cosmos DB-Kontos.

Hinweis

Wenn Sie das Schema „Vollständige Genauigkeit“ für die API für NoSQL-Konten verwenden möchten, können Sie Synapse Link nicht über das Azure-Portal aktivieren. Diese Option kann nicht mehr geändert werden, nachdem Synapse Link in Ihrem Konto aktiviert wurde. Sie müssen Azure CLI oder PowerShell verwenden, um sie festzulegen. Weitere Informationen finden Sie in der Dokumentation zur Schemadarstellung des Analysespeichers.

Hinweis

Sie benötigen die Rolle Mitwirkender, um Synapse Link auf Kontoebene zu aktivieren. Außerdem benötigen Sie mindestens die Rolle Operator, um Synapse Link in Ihren Containern oder Sammlungen zu aktivieren.

Azure-Portal

  1. Melden Sie sich beim Azure-Portal an.

  2. Erstellen Sie ein neues Azure-Konto, oder wählen Sie ein vorhandenes Azure Cosmos DB-Konto aus.

  3. Navigieren Sie zu Ihrem Azure Cosmos DB-Konto, und öffnen Sie Azure Synapse Link im linken Bereich unter „Integrationen“.

  4. Wählen Sie Aktivieren aus. Dieser Vorgang kann 1 bis 5 Minuten in Anspruch nehmen.

    Screenshot showing how to enable Synapse Link feature.

  5. Ihr Konto ist jetzt für die Verwendung von Synapse Link aktiviert. Im nächsten Abschnitt wird beschrieben, wie Sie für Analysespeicher aktivierte Container erstellen, um mit dem automatischen Replizieren Ihrer operativen Daten aus dem Transaktionsspeicher im Analysespeicher zu beginnen.

Hinweis

Durch das Aktivieren von Synapse Link wird der Analysespeicher nicht automatisch aktiviert. Nachdem Sie Synapse Link für das Cosmos DB-Konto aktiviert haben, aktivieren Sie den Analysespeicher in Containern, um mit der Verwendung von Synapse Link zu beginnen.

Hinweis

Sie können Synapse Link für Ihr Konto auch im linken Navigationsmenü im Abschnitt Integrationen über die Bereiche Power BI und Synapse Link aktivieren.

Befehlszeilentools

Aktivieren Sie Synapse Link in Ihrem Azure Cosmos DB-API für NoSQL- oder MongoDB-Konto per Azure CLI oder PowerShell.

Azure CLI

Verwenden Sie --enable-analytical-storage true sowohl für Erstellungs- als auch Aktualisierungsvorgänge. Sie müssen auch den Darstellungsschematyp auswählen. Für API für NoSQL-Konten können Sie --analytical-storage-schema-type mit den Werten FullFidelity oder WellDefined verwenden. Verwenden Sie für API für MongoDB-Konten stets --analytical-storage-schema-type FullFidelity.

Synapse Link für die Gremlin-API ist jetzt in der Vorschau. Sie können Synapse Link in Ihrem neuen oder vorhandenen Graphen mithilfe der Azure CLI aktivieren. Verwenden Sie den folgenden CLI-Befehl, um Synapse Link für Ihr Gremlin-API-Konto zu aktivieren:

az cosmosdb create --capabilities EnableGremlin --name MyCosmosDBGremlinDatabaseAccount --resource-group MyResourceGroup --enable-analytical-storage true

Ersetzen Sie für vorhandene Gremlin-API-Konten create durch update.

PowerShell

Verwenden Sie EnableAnalyticalStorage true sowohl für Erstellungs- als auch Aktualisierungsvorgänge. Sie müssen auch den Darstellungsschematyp auswählen. Für API für NoSQL-Konten können Sie --analytical-storage-schema-type mit den Werten FullFidelity oder WellDefined verwenden. Verwenden Sie für API für MongoDB-Konten stets -AnalyticalStorageSchemaType FullFidelity.

Azure Resource Manager-Vorlage

Mit dieser Azure Resource Manager-Vorlage wird ein für Synapse Link aktiviertes Azure Cosmos DB-Konto für SQL-API erstellt. Mit dieser Vorlage wird ein Konto für die Core-API (SQL) in einer Region mit einem Container erstellt, für den die analytische Gültigkeitsdauer aktiviert ist, und es ist eine Option vorhanden, mit der die manuelle oder automatische Skalierung des Durchsatzes festgelegt werden kann. Klicken Sie zum Bereitstellen dieser Vorlage auf der Infoseite auf Bereitstellen in Azure.

Aktivieren von Azure Synapse Link für Ihre Container

Der zweite Schritt besteht darin, Synapse Link für Ihre Container oder Sammlungen zu aktivieren. Dazu legen Sie die Eigenschaft analytical TTL auf -1 für eine zeitlich unbegrenzte Speicherung oder auf eine positive ganze Zahl fest, nämlich die Anzahl der Sekunden der Aufbewahrung im Analysespeicher. Diese Einstellung kann später geändert werden. Weitere Informationen finden Sie im Artikel zu den für die analytische Gültigkeitsdauer unterstützten Werten.

Beachten Sie die folgenden Details, wenn Sie Azure Synapse Link für Ihre vorhandenen SQL-API-Container aktivieren:

  • Die gleiche Leistungsisolation des automatischen Synchronisierungsprozesses für den Analysespeicher gilt für die erste Synchronisierung, und es gibt keine Auswirkungen auf die Leistung Ihrer OLTP-Workload.
  • Die anfängliche Synchronisierung eines Containers mit der Gesamtzeit des Analysespeichers variiert je nach Datenvolumen und Komplexität der Dokumente. Dieser Vorgang kann zwischen einigen Sekunden und mehreren Tagen dauern. Verwenden Sie das Azure-Portal, um den Migrationsfortschritt zu überwachen.
  • Der Durchsatz Ihres Containers oder Datenbankkontos wirkt sich auch auf die gesamte anfängliche Synchronisierungszeit aus. Obwohl RU/s bei dieser Migration nicht verwendet werden, wirkt sich die Gesamtzahl verfügbarer RU/s auf die Leistung des Prozesses aus. Sie können die verfügbaren RUs Ihrer Umgebung vorübergehend erhöhen, um den Prozess zu beschleunigen.
  • Sie können den Analysespeicher eines vorhandenen Containers nicht abfragen, während Synapse Link für diesen Container aktiviert ist. Ihre OLTP-Workload wird nicht beeinträchtigt, und Sie können die Daten weiterhin normal lesen. Nach dem Start der ersten Synchronisierung erfasste Daten werden durch den automatischen Synchronisierungsprozess des regulären Analysespeichers mit dem Analysespeicher zusammengeführt.

Hinweis

Sie können jetzt Synapse Link für Ihre vorhandenen MongoDB-API-Sammlungen mit Azure CLI oder PowerShell aktivieren.

Azure-Portal

Neuer Container

  1. Melden Sie sich beim Azure-Portal oder Azure Cosmos DB-Explorer an.

  2. Navigieren Sie zu Ihrem Azure Cosmos DB-Konto, und öffnen Sie die Registerkarte Daten-Explorer.

  3. Wählen Sie Neuer Container aus, und geben Sie einen Namen für Ihre Datenbank, den Container, den Partitionsschlüssel und die Durchsatzdetails ein. Aktivieren Sie die Option Analysespeicher. Nach dem Aktivieren des Analysespeichers wird ein Container erstellt, für den die Eigenschaft analytical TTL auf den Standardwert „-1“ (unbegrenzte Aufbewahrung) festgelegt ist. In diesem Analysespeicher wird der gesamte Versionsverlauf der Datensätze aufbewahrt. Dieser kann später geändert werden.

    Turn on analytical store for Azure Cosmos DB container

  4. Falls Sie Synapse Link für dieses Konto bisher noch nicht aktiviert haben, werden Sie dazu aufgefordert. Der Grund ist, dass die Erstellung eines für Analysespeicher aktivierten Containers zwingend erforderlich ist. Wählen Sie Enable Synapse Link (Synapse Link aktivieren) aus, wenn Sie dazu aufgefordert werden. Dieser Vorgang kann 1 bis 5 Minuten in Anspruch nehmen.

  5. Wählen Sie OK aus, um einen für Analysespeicher aktivierten Azure Cosmos DB-Container zu erstellen.

  6. Vergewissern Sie sich nach dem Erstellen des Containers, dass der Analysespeicher aktiviert wurde. Klicken Sie hierzu auf Einstellungen direkt unterhalb von „Dokumente“ im Daten-Explorer, und überprüfen Sie, ob die Option Gültigkeitsdauer für den Analysespeicher aktiviert ist.

Vorhandener Container

  1. Melden Sie sich beim Azure-Portal oder Azure Cosmos DB-Explorer an.

  2. Navigieren Sie zu Ihrem Azure Cosmos DB-Konto, und öffnen Sie die Registerkarte Azure Synapse Link.

  3. Wählen Sie im Abschnitt Azure Synapse Link für Ihre Container aktivieren den Container aus.

    Screenshot showing how to turn on analytical store for an Azure Cosmos DB existing container.

  4. Vergewissern Sie sich nach der Aktivierung des Containers, dass der Analysespeicher aktiviert wurde. Klicken Sie hierzu auf Einstellungen direkt unterhalb von „Dokumente“ im Daten-Explorer, und überprüfen Sie, ob die Option Gültigkeitsdauer für den Analysespeicher aktiviert ist.

Hinweis

Sie können Synapse Link für Ihr Konto auch im linken Navigationsmenü im Abschnitt Integrationen über die Bereiche Power BI und Synapse Link aktivieren.

Befehlszeilentools

Azure CLI

Mit den folgenden Optionen aktivieren Sie Synapse Link in einem Container über die Azure CLI, indem Sie die Eigenschaft --analytical-storage-ttl festlegen.

Synapse Link für die Gremlin-API ist jetzt in der Vorschau. Sie können Synapse Link in Ihrem neuen oder vorhandenen Graphen mithilfe der Azure CLI aktivieren. Verwenden Sie den folgenden CLI-Befehl, um Synapse Link für Ihre Gremlin-API-Graphen zu aktivieren:

az cosmosdb gremlin graph create --g MyResourceGroup --a MyCosmosDBGremlinDatabaseAccount --d MyGremlinDB --n MyGraph --analytical-storage-ttl –1

Ersetzen Sie bei vorhandenen Graphen create durch update.

PowerShell

Mit den folgenden Optionen aktivieren Sie Synapse Link in einem Container über die Azure CLI, indem Sie die Eigenschaft -AnalyticalStorageTtl festlegen.

Azure Cosmos DB SDKs – Nur SQL-API

.NET SDK

Der folgende .NET-Code erstellt einen für Synapse Link aktivierten Container, indem die Eigenschaft AnalyticalStoreTimeToLiveInSeconds festgelegt wird. Verwenden Sie die Methode Container.ReplaceContainerAsync, um einen vorhandenen Container zu aktualisieren.

// Create a container with a partition key, and analytical TTL configured to -1 (infinite retention)
ContainerProperties properties = new ContainerProperties()
{
    Id = "myContainerId",
    PartitionKeyPath = "/id",
    AnalyticalStoreTimeToLiveInSeconds = -1,
};
CosmosClient cosmosClient = new CosmosClient("myConnectionString");
await cosmosClient.GetDatabase("myDatabase").CreateContainerAsync(properties);

Java V4 SDK

Der folgende Java-Code erstellt einen für Synapse Link aktivierten Container, indem die Eigenschaft setAnalyticalStoreTimeToLiveInSeconds festgelegt wird. Verwenden Sie die Klasse container.replace, um einen vorhandenen Container zu aktualisieren.

// Create a container with a partition key and  analytical TTL configured to  -1 (infinite retention) 
CosmosContainerProperties containerProperties = new CosmosContainerProperties("myContainer", "/myPartitionKey");

containerProperties.setAnalyticalStoreTimeToLiveInSeconds(-1);

container = database.createContainerIfNotExists(containerProperties, 400).block().getContainer();

Python V4 SDK

Der folgende Python-Code erstellt einen für Synapse Link aktivierten Container, indem die Eigenschaft analytical_storage_ttl festgelegt wird. Verwenden Sie die Methode replace_container, um einen vorhandenen Container zu aktualisieren.

# Client
client = cosmos_client.CosmosClient(HOST,  KEY )

# Database client
try:
    db = client.create_database(DATABASE)

except exceptions.CosmosResourceExistsError:
    db = client.get_database_client(DATABASE)

# Creating the container with analytical store enabled
try:
    container = db.create_container(
        id=CONTAINER,
        partition_key=PartitionKey(path='/id', kind='Hash'),analytical_storage_ttl=-1
    )
    properties = container.read()
    print('Container with id \'{0}\' created'.format(container.id))
    print('Partition Key - \'{0}\''.format(properties['partitionKey']))

except exceptions.CosmosResourceExistsError:
    print('A container with already exists')

Herstellen einer Verbindung mit einem Synapse-Arbeitsbereich

Befolgen Sie die Anleitung unter Herstellen einer Verbindung mit Azure Synapse Link, um aus Azure Synapse Analytics Studio mit Azure Synapse Link auf eine Azure Cosmos DB-Datenbank zuzugreifen.

Abfragen des Analysespeichers mithilfe von Azure Synapse Analytics

Abfragen des Analysespeichers mithilfe von Apache Spark für Azure Synapse Analytics

Befolgen Sie die Anleitung im Artikel Abfragen des Azure Cosmos DB-Analysespeichers mithilfe von Spark 3, um Abfragen mit Synapse Spark 3 durchzuführen. Dieser Artikel enthält einige Beispiele dafür, wie Sie mithilfe von Synapse-Gesten mit dem Analysespeicher interagieren können. Diese Gesten werden angezeigt, wenn Sie mit der rechten Maustaste auf einen Container klicken. Mit Gesten können Sie schnell Code generieren und an Ihre Anforderungen anpassen. Sie eignen sich auch ideal zum Ermitteln von Daten mit nur einem Mausklick.

Befolgen Sie für die Spark 2-Integration die Anleitung im Artikel Abfragen des Azure Cosmos DB-Analysespeichers mithilfe von Spark 2.

Abfragen des Analysespeichers mit einem serverlosen SQL-Pool in Azure Synapse Analytics

Mit einem serverlosen SQL-Pool können Sie Daten in Ihren Azure Cosmos DB-Containern abfragen und analysieren, die mit Azure Synapse Link aktiviert wurden. Sie können Daten nahezu in Echtzeit analysieren, ohne dass dadurch die Leistung Ihrer Transaktionsworkloads beeinträchtigt wird. SQL (serverlos) bietet eine vertraute T-SQL-Syntax zum Abfragen von Daten aus dem Analysespeicher und – über die T-SQL-Schnittstelle – integrierte Konnektivität mit einer Vielzahl von BI-Tools und Ad-hoc-Abfragetools. Weitere Informationen finden Sie im Artikel Abfragen von Azure Cosmos DB-Daten mithilfe eines serverlosen SQL-Pools in Azure Synapse Link (Vorschau).

Verwenden eines serverlosen SQL-Pools zum Analysieren und Visualisieren von Daten in Power BI

Sie können die integrierte BI-Oberfläche im Azure Cosmos DB-Portal verwenden, um BI-Dashboards mithilfe von Synapse Link mit nur wenigen Klicks zu erstellen. Weitere Informationen finden Sie im Artikel zum Erstellen von BI-Dashboards mithilfe von Synapse Link. Mithilfe dieser integrierten Oberfläche werden einfache T-SQL-Ansichten in serverlosen Synapse-SQL-Pools für Ihre Azure Cosmos DB-Container erstellt. Sie können BI-Dashboards über diese Ansichten erstellen, die Ihre Azure Cosmos DB-Container mithilfe von Direktabfrage in Echtzeit abfragen, so dass aktuelle Änderungen an Ihren Daten widergespiegelt werden. Es gibt keine Auswirkungen auf die Leistung oder Kosten Ihrer Transaktionsworkloads, und auch die Verwaltung von ETL-Pipelines bleibt unverändert.

Wenn Sie erweiterte T-SQL-Ansichten mit Verknüpfungen in Ihren Containern verwenden oder Power BI-Dashboards im Importmodus erstellen möchten, finden Sie unter Verwenden von Power BI und serverlosen Synapse SQL-Pools zum Analysieren von Azure Cosmos DB-Daten mit Synapse Link weitere Informationen.

Verbessern der Leistung mit bewährten Methoden

Benutzerdefinierte Partitionierung

Mit der benutzerdefinierten Partitionierung können Sie Daten des Analysespeichers in Feldern partitionieren, die häufig als Filter in Analyseabfragen verwendet werden, um die Abfrageleistung zu verbessern. Weitere Informationen finden Sie in den Artikeln zur Einführung in die benutzerdefinierte Partitionierung und Konfigurieren der benutzerdefinierten Partitionierung.

Befolgen Sie für Ihre serverlosen SQL-Abfragen diese obligatorischen bewährten Methoden.

Beispiele für die ersten Schritte mit Azure Synapse Link finden Sie auf GitHub. Sie zeigen End-to-End-Lösungen für IoT- und Einzelhandelsszenarien. Sie können die Beispiele für Azure Cosmos DB for MongoDB auch im selben Repository unter dem Ordner MongoDB finden.

Nächste Schritte

Weitere Informationen finden Sie in den folgenden Dokumenten: