Konfigurera och använda Azure Synapse Link för Azure Cosmos DB

GÄLLER FÖR: Nosql Mongodb Gremlin

Azure Synapse Link för Azure Cosmos DB är en molnbaserad HTAP-funktion (hybridtransaktions- och analysbearbetning) som gör att du kan köra analyser i nära realtid över driftdata i Azure Cosmos DB. Synapse Link skapar en nära sömlös integrering mellan Azure Cosmos DB och Azure Synapse Analytics.

Azure Synapse Link är tillgängligt för Azure Cosmos DB SQL API eller för Azure Cosmos DB API för Mongo DB-konton. Och den är i förhandsversion för Gremlin API, med aktivering via CLI-kommandon. Använd följande steg för att köra analysfrågor med Azure Synapse Link för Azure Cosmos DB:

Du kan också kontrollera träningsmodulen om hur du konfigurerar Azure Synapse Link för Azure Cosmos DB.

Det första steget för att använda Synapse Link är att aktivera det för ditt Azure Cosmos DB-databaskonto.

Kommentar

Om du vill använda kundhanterade nycklar med Azure Synapse Link måste du konfigurera kontots hanterade identitet i din Azure Key Vault-åtkomstprincip innan du aktiverar Synapse Link för ditt konto. Mer information finns i artikeln Konfigurera kundhanterade nycklar med hjälp av Azure Cosmos DB-kontons hanterade identiteter .

Kommentar

Om du vill använda Fullständigt återgivningsschema för API för NoSQL-konton kan du inte använda Azure-portalen för att aktivera Synapse Link. Det här alternativet kan inte ändras när Synapse Link har aktiverats i ditt konto och om du vill ange det måste du använda Azure CLI eller PowerShell. Mer information finns i dokumentationen för schemarepresentation av analysarkiv.

Kommentar

Du behöver rollen Deltagare för att aktivera Synapse Link på kontonivå. Och du behöver minst operatorroll för att aktivera Synapse Link i dina containrar eller samlingar.

Azure Portal

  1. Logga in på Azure-portalen.

  2. Skapa ett nytt Azure-konto eller välj ett befintligt Azure Cosmos DB-konto.

  3. Gå till ditt Azure Cosmos DB-konto och öppna Azure Synapse Link under Integreringar i den vänstra rutan.

  4. Välj Aktivera. Den här processen kan ta 1 till 5 minuter att slutföra.

    Screenshot showing how to enable Synapse Link feature.

  5. Ditt konto har nu aktiverats för användning av Synapse Link. Se sedan hur du skapar analysarkivaktiverade containrar för att automatiskt börja replikera dina driftdata från transaktionsarkivet till analysarkivet.

Kommentar

Om du aktiverar Synapse Link aktiveras inte analysarkivet automatiskt. När du aktiverar Synapse Link på Cosmos DB-kontot aktiverar du analysarkivet på containrar för att börja använda Synapse Link.

Kommentar

Du kan också aktivera Synapse Link för ditt konto med hjälp av fönstret Power BI och Synapse Link i avsnittet Integreringarden vänstra navigeringsmenyn.

Kommandoradsverktyg

Aktivera Synapse Link i ditt Azure Cosmos DB API för NoSQL- eller MongoDB-konton med hjälp av Azure CLI eller PowerShell.

Azure CLI

Används --enable-analytical-storage true för både skapande - eller uppdateringsåtgärder . Du måste också välja typ av representationsschema. För API för NoSQL-konton kan du använda --analytical-storage-schema-type med värdena FullFidelity eller WellDefined. För API för MongoDB-konton använder du --analytical-storage-schema-type FullFidelityalltid .

Synapse Link för Gremlin API är nu i förhandsversion. Du kan aktivera Synapse Link i dina nya eller befintliga diagram med hjälp av Azure CLI. Använd CLI-kommandot nedan för att aktivera Synapse Link för ditt Gremlin API-konto:

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

För befintliga Gremlin API-konton ersätter du create med update.

PowerShell

Används EnableAnalyticalStorage true för både skapande - eller uppdateringsåtgärder . Du måste också välja typ av representationsschema. För API för NoSQL-konton kan du använda --analytical-storage-schema-type med värdena FullFidelity eller WellDefined. För API för MongoDB-konton använder du -AnalyticalStorageSchemaType FullFidelityalltid .

Azure Resource Manager-mall

Den här Azure Resource Manager-mallen skapar ett Synapse Link-aktiverat Azure Cosmos DB-konto för SQL API. Den här mallen skapar ett Core-API-konto (SQL) i en region med en container konfigurerad med TTL-analys aktiverat och ett alternativ för att använda manuellt dataflöde eller autoskalningsdataflöde. Om du vill distribuera den här mallen klickar du på Distribuera till Azure på readme-sidan.

Aktivera Azure Synapse Link för dina containrar

Det andra steget är att aktivera Synapse Link för dina containrar eller samlingar. Detta uppnås genom att ställa in analytical TTL egenskapen på -1 för oändlig kvarhållning, eller till ett positivt heltal, som är det antal sekunder som du vill behålla i analysarkivet. Den här inställningen kan ändras senare. Mer information finns i artikeln om TTL-värden som stöds för analys.

Observera följande information när du aktiverar Azure Synapse Link på dina befintliga SQL API-containrar:

  • Samma prestandaisolering av den automatiska synkroniseringsprocessen för analysarkivet gäller för den första synkroniseringen och det finns ingen prestandapåverkan på OLTP-arbetsbelastningen.
  • En containers inledande synkronisering med analysarkivets totala tid varierar beroende på datavolymen och dokumentkomplexiteten. Den här processen kan ta allt från några sekunder till flera dagar. Använd Azure-portalen för att övervaka migreringens förlopp.
  • Dataflödet för containern, eller databaskontot, påverkar också den totala inledande synkroniseringstiden. Även om RU/s inte används i den här migreringen påverkar det totala antalet tillgängliga RU/s processens prestanda. Du kan tillfälligt öka miljöns tillgängliga RU:er för att påskynda processen.
  • Du kommer inte att kunna köra frågor mot analysarkivet för en befintlig container medan Synapse Link aktiveras i containern. Din OLTP-arbetsbelastning påverkas inte och du kan fortsätta att läsa data normalt. Data som matas in efter starten av den första synkroniseringen sammanfogas i analysarkivet av den regelbundna automatiska synkroniseringsprocessen för analysarkivet.

Kommentar

Nu kan du aktivera Synapse Link i dina befintliga MongoDB API-samlingar med hjälp av Azure CLI eller PowerShell.

Azure Portal

Ny behållare

  1. Logga in på Azure-portalen eller Azure Cosmos DB Explorer.

  2. Gå till ditt Azure Cosmos DB-konto och öppna fliken Datautforskaren .

  3. Välj Ny container och ange ett namn för din databas, container, partitionsnyckel och dataflödesinformation. Aktivera alternativet Analysarkiv. När du har aktiverat analysarkivet skapas en container med analytical TTL egenskapen inställd på standardvärdet -1 (oändlig kvarhållning). Det här analysarkivet som behåller alla historiska versioner av poster och kan ändras senare.

    Turn on analytical store for Azure Cosmos DB container

  4. Om du tidigare inte har aktiverat Synapse Link för det här kontot uppmanas du att göra det eftersom det är en förutsättning att du skapar en container med analysarkiv aktiverat. Om du uppmanas till det väljer du Aktivera Synapse Link. Den här processen kan ta 1 till 5 minuter att slutföra.

  5. Välj OK om du vill skapa en azure Cosmos DB-container med aktiverat analysarkiv.

  6. När containern har skapats kontrollerar du att analysarkivet har aktiverats genom att klicka på Inställningar direkt under Dokument i Datautforskaren och kontrollera om alternativet Tid till live för analysarkiv är aktiverat.

Befintlig container

  1. Logga in på Azure-portalen eller Azure Cosmos DB Explorer.

  2. Gå till ditt Azure Cosmos DB-konto och öppna fliken Azure Synapse Link .

  3. Under avsnittet Aktivera Azure Synapse Link för dina containrar väljer du containern.

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

  4. När containern har aktiverats kontrollerar du att analysarkivet har aktiverats genom att klicka på Inställningar direkt under Dokument i Datautforskaren och kontrollera om alternativet Tid till live för analysarkiv är aktiverat.

Kommentar

Du kan också aktivera Synapse Link för ditt konto med hjälp av fönstret Power BI och Synapse Link i avsnittet Integreringarden vänstra navigeringsmenyn.

Kommandoradsverktyg

Azure CLI

Följande alternativ aktiverar Synapse Link i en container med hjälp av Azure CLI genom att ange egenskapen --analytical-storage-ttl .

Synapse Link för Gremlin API är nu i förhandsversion. Du kan aktivera Synapse Link i dina nya eller befintliga diagram med hjälp av Azure CLI. Använd CLI-kommandot nedan för att aktivera Synapse Link för dina Gremlin API-grafer:

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

För befintliga grafer ersätter du create med update.

PowerShell

Följande alternativ aktiverar Synapse Link i en container med hjälp av Azure CLI genom att ange egenskapen -AnalyticalStorageTtl .

SDK:er för Azure Cosmos DB – endast SQL API

.NET SDK

Följande .NET-kod skapar en Synapse Link-aktiverad container genom att ange egenskapen AnalyticalStoreTimeToLiveInSeconds . Om du vill uppdatera en befintlig container använder du Container.ReplaceContainerAsync -metoden.

// 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

Följande Java-kod skapar en Synapse Link-aktiverad container genom att ange setAnalyticalStoreTimeToLiveInSeconds egenskapen . Om du vill uppdatera en befintlig container använder du container.replace klassen .

// 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

Följande Python-kod skapar en Synapse Link-aktiverad container genom att ange egenskapen analytical_storage_ttl . Om du vill uppdatera en befintlig container använder du replace_container -metoden.

# 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')

Anslut till en Synapse-arbetsyta

Använd anvisningarna i Anslut till Azure Synapse Link om hur du får åtkomst till en Azure Cosmos DB-databas från Azure Synapse Analytics Studio med Azure Synapse Link.

Fråga analysarkiv med Hjälp av Azure Synapse Analytics

Fråga analysarkiv med Apache Spark för Azure Synapse Analytics

Använd anvisningarna i artikeln Fråga Azure Cosmos DB-analysarkivet med hjälp av Spark 3 om hur du frågar med Synapse Spark 3. Den artikeln innehåller några exempel på hur du kan interagera med analysarkivet från Synapse-gester. Dessa gester visas när du högerklickar på en container. Med gester kan du snabbt generera kod och justera den efter dina behov. De är också perfekta för att identifiera data med ett enda klick.

För Spark 2-integrering använder du instruktionen i artikeln Fråga Azure Cosmos DB-analysarkiv med hjälp av Spark 2 .

Fråga analysarkivet med hjälp av en serverlös SQL-pool i Azure Synapse Analytics

Med en serverlös SQL-pool kan du fråga och analysera data i dina Azure Cosmos DB-containrar som är aktiverade med Azure Synapse Link. Du kan analysera data nästan i realtid utan att påverka prestandan för dina transaktionsarbetsbelastningar. Den erbjuder en välbekant T-SQL-syntax för att fråga efter data från analysarkivet och integrerad anslutning till en mängd olika BI- och ad hoc-frågeverktyg via T-SQL-gränssnittet. Mer information finns i artikeln Frågeanalysarkiv med hjälp av serverlös SQL-pool .

Använda en serverlös SQL-pool för att analysera och visualisera data i Power BI

Du kan använda den integrerade BI-upplevelsen i Azure Cosmos DB-portalen för att skapa BI-instrumentpaneler med Synapse Link med bara några få klick. Mer information finns i skapa BI-instrumentpaneler med Synapse Link. Den här integrerade upplevelsen skapar enkla T-SQL-vyer i Synapse serverlösa SQL-pooler för dina Azure Cosmos DB-containrar. Du kan skapa BI-instrumentpaneler över dessa vyer, som frågar dina Azure Cosmos DB-containrar i realtid med hjälp av Direct Query, vilket återspeglar de senaste ändringarna av dina data. Det finns ingen prestanda- eller kostnadspåverkan för dina transaktionsarbetsbelastningar och ingen komplexitet i att hantera ETL-pipelines.

Om du vill använda avancerade T-SQL-vyer med kopplingar mellan dina containrar eller skapa Power BI-instrumentpaneler i importläge kan du läsa Använda serverlös SQL-pool för att analysera Azure Cosmos DB-data med Synapse Link.

Förbättra prestanda med metodtips

Anpassad partitionering

Med anpassad partitionering kan du partitionera analyslagringsdata på fält som ofta används som filter i analysfrågor, vilket ger bättre frågeprestanda. Mer information finns i introduktionen till anpassad partitionering och hur du konfigurerar anpassade partitioneringsartiklar .

Använd den här obligatoriska metodtipsen för sql-serverlösa frågor.

Du hittar exempel för att komma igång med Azure Synapse Link på GitHub. Dessa visar lösningar från slutpunkt till slutpunkt med IoT- och detaljhandelsscenarier. Du kan också hitta de exempel som motsvarar Azure Cosmos DB för MongoDB på samma lagringsplats under mappen MongoDB .

Nästa steg

Mer information finns i följande dokument: