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.
Viktigt!
Spegling i Microsoft Fabric är nu tillgängligt som förhandsversion för NoSql API. Den här funktionen ger alla funktioner i Azure Synapse Link med bättre analysprestanda, möjlighet att förena din dataegendom med Fabric OneLake och öppna åtkomsten till dina data i OneLake med Delta Parquet-format. Om du överväger Azure Synapse Link rekommenderar vi att du provar spegling för att utvärdera den övergripande anpassningen för din organisation. Kom igång med spegling genom att klicka här.
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:
- Aktivera Azure Synapse Link för dina Azure Cosmos DB-konton
- Aktivera Azure Synapse Link för dina containrar
- Ansluta din Azure Cosmos DB-databas till en Azure Synapse-arbetsyta
- Fråga analysarkiv med Hjälp av Azure Synapse Analytics
- Förbättra prestanda med metodtips
- Använda en serverlös SQL-pool i Azure Synapse för att analysera och visualisera data i Power BI
Du kan också kontrollera träningsmodulen om hur du konfigurerar Azure Synapse Link för Azure Cosmos DB.
Aktivera Azure Synapse Link för Azure Cosmos DB-konton
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 Fidelity-schema för API för NoSQL-konton kan du inte använda Azure Portal 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 Operator för att aktivera Synapse Link i dina containrar eller samlingar.
Azure Portal
Logga in på Azure-portalen.
Skapa ett nytt Azure-konto eller välj ett befintligt Azure Cosmos DB-konto.
Gå till ditt Azure Cosmos DB-konto och öppna Azure Synapse Link under Integreringar i den vänstra rutan.
Välj Aktivera. Den här processen kan ta 1 till 5 minuter att slutföra.
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 Integreringar på den 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 FullFidelity
alltid .
- Skapa ett nytt Azure Cosmos DB-konto med Synapse Link aktiverat
- Uppdatera ett befintligt Azure Cosmos DB-konto för att aktivera Synapse Link
Använd Azure CLI för att aktivera Synapse Link för Azure Synapse Link för Gremlin API-kontot.
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 FullFidelity
alltid .
- Skapa ett nytt Azure Cosmos DB-konto med Synapse Link aktiverat
- Uppdatera ett befintligt Azure Cosmos DB-konto för att aktivera Synapse Link
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 Portal 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
Logga in på Azure Portal eller Azure Cosmos DB Explorer.
Gå till ditt Azure Cosmos DB-konto och öppna fliken Datautforskaren .
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.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.
Välj OK om du vill skapa en azure Cosmos DB-container med aktiverat analysarkiv.
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
Logga in på Azure Portal eller Azure Cosmos DB Explorer.
Gå till ditt Azure Cosmos DB-konto och öppna fliken Azure Synapse Link .
Under avsnittet Aktivera Azure Synapse Link för dina containrar väljer du containern.
När containern har aktiverats kontrollerar du att analysarkivet har aktiverats genom att klicka på Inställningar, precis 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 Integreringar på den 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
.
- Skapa eller uppdatera en Azure Cosmos DB MongoDB-samling
- Skapa eller uppdatera en Azure Cosmos DB SQL API-container
Använda Azure CLI för att aktivera Synapse Link för Azure Synapse Link för Gremlin API Graphs
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
.
- Skapa eller uppdatera en Azure Cosmos DB MongoDB-samling
- Skapa eller uppdatera en Azure Cosmos DB SQL API-container
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.
CosmosClient cosmosClient = new CosmosClient(
accountEndpoint: "<nosql-account-endpoint>",
tokenCredential: new DefaultAzureCredential()
);
// 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,
};
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')
Ansluta 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 .
Metodtips för Synapse SQL Serverless för Azure Synapse Link för Cosmos DB
Använd den här obligatoriska metodtipsen för sql-serverlösa frågor.
Komma igång med Azure Synapse Link – exempel
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: