Konfigurera och använda Azure Synapse Link för Azure Cosmos DB
GÄLLER för:
SQL API
Azure Cosmos DB API för MongoDB
Azure Synapse Link för Azure Cosmos DB är en molnbaserad funktion för transaktions- och analysbearbetning (HTAP) som gör att du kan köra analys i nästan realtid över driftdata i Azure Cosmos DB. Synapse Link 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. 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
- Skapa en analysarkivaktiverad container
- Aktivera analysarkiv på en befintlig container
- Valfritt – Uppdatera TTL för analysarkiv för en container
- Anslut din Azure Cosmos-databas till en Azure Synapse arbetsyta
- Fråga analysarkivet med hjälp Azure Synapse Spark-pool
- Fråga analysarkivet med hjälp Azure Synapse serverlös SQL pool
- Använd Azure Synapse serverlös SQL för att analysera och visualisera data i Power BI
Du kan också läsa learn-modulen om hur du konfigurerar Azure Synapse Link för Azure Cosmos DB.
Aktivera Azure Synapse Link för Azure Cosmos DB konton
Anteckning
Om du vill använda kund hanterade nycklar med Azure Synapse Link måste du konfigurera kontots hanterade identitet i din Azure Key Vault-åtkomstprincip innan du aktiverar Synapse Link på ditt konto. Mer information finns i artikeln Configure customer-managed keys using Azure Cosmos DB accounts'managed identities (Konfigurera kund hanterade nycklar med hjälp Azure Cosmos DB hanterade identiteter).
Anteckning
Om du vill använda fullständigt återgivningsschema för SQL-API-konton (CORE) kan du inte använda Azure Portal för att Synapse Link. Det här alternativet kan inte ändras när Synapse Link har aktiverats i ditt konto och för att ange det måste du använda Azure CLI eller PowerShell. Mer information finns i schemarepresentationsdokumentationen för analysarkiv.
Azure Portal
Logga in på Azure-portalen.
Skapa ett nytt Azure-kontoeller välj ett befintligt Azure Cosmos DB konto.
Gå till ditt Azure Cosmos DB konto och öppna fönstret Funktioner.
Välj Synapse Link i listan med funktioner.
Därefter uppmanas du att aktivera Synapse-länken för ditt konto. Välj Aktivera. Den här processen kan ta 1 till 5 minuter att slutföra.
Ditt konto har nu aktiverats för att använda Synapse Link. Se sedan hur du skapar analysarkivaktiverade containrar för att automatiskt börja replikera dina driftdata från transaktionslagret till analysarkivet.
Anteckning
När du Synapse Link på en lagringsdel aktiveras inte analysarkivet automatiskt. När du aktiverar Synapse Link på Cosmos DB-kontot aktiverar du analysarkiv på containrar för att börja använda Synapse Link.
Command-Line Tools
Aktivera Synapse Link i ditt COSMOS DB SQL API- eller MongoDB API-konto med hjälp av Azure CLI eller PowerShell.
Azure CLI
Används --enable-analytical-storage true för både create- och update-åtgärder. Du måste också välja typ av representationsschema. För SQL API-konton kan du --analytical-storage-schema-type använda med värdena eller FullFidelity WellDefined . För MongoDB API-konton använder du alltid --analytical-storage-schema-type FullFidelity .
- Skapa ett nytt Azure Cosmos DB konto med Synapse Link aktiverat
- Uppdatera ett befintligt Azure Cosmos DB konto för att aktivera Synapse Link
PowerShell
Används EnableAnalyticalStorage true för både create- och update-åtgärder. Du måste också välja typ av representationsschema. För SQL API-konton kan du --analytical-storage-schema-type använda med värdena eller FullFidelity WellDefined . För MongoDB API-konton använder du alltid -AnalyticalStorageSchemaType FullFidelity .
- Skapa ett nytt Azure Cosmos DB konto med Synapse Link aktiverat
- Uppdatera ett befintligt Azure Cosmos DB konto för att aktivera Synapse Link
Skapa en analysarkivaktiverad container
Du kan aktivera analysarkiv när du skapar en Azure Cosmos DB container med något av följande alternativ.
Azure Portal
Logga in på Azure Portal eller Azure Cosmos DB Explorer.
Gå till ditt Azure Cosmos DB konto och öppna Datautforskaren fliken.
Välj Ny container och ange ett namn för information om databas, container, partitionsnyckel och dataflöde. Aktivera alternativet Analysarkiv. När du har aktivera analysarkivet skapas en container med egenskapen inställd på
analytical TTLstandardvärdet -1 (oändlig kvarhållning). Det här analysarkivet behåller alla historiska versioner av poster och kan ändras senare.
Om du tidigare inte Synapse Link på det här kontot uppmanas du att göra det eftersom det är en förutsättning för att skapa en container som är aktiverad för analysarkivet. Om du uppmanas väljer du Aktivera Synapse Link. Den här processen kan ta 1 till 5 minuter att slutföra.
Välj OK för att skapa ett analysarkiv aktiverat Azure Cosmos DB containern.
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 Time to Live analysarkiv är aktiverat.
Azure Cosmos DB-SDK:er
Ange egenskapen analytical TTL till det obligatoriska värdet för att skapa en container som är aktiverad för analysarkivet. En lista över tillåtna värden finns i artikeln TTL-värden som stöds för analys.
.NET SDK
Följande kod skapar en container med analysarkiv med hjälp av .NET SDK. Ange egenskapen AnalyticalStoreTimeToLiveInSeconds till det obligatoriska värdet i sekunder eller använd för oändlig -1 kvarhållning. Den här inställningen kan ändras senare.
// 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 kod skapar en container med analysarkiv med hjälp av Java V4 SDK. Ange egenskapen AnalyticalStoreTimeToLiveInSeconds till det obligatoriska värdet i sekunder eller använd för oändlig -1 kvarhållning. Den här inställningen kan ändras senare.
// 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 kod skapar en container med analysarkiv med hjälp av Python V4 SDK. Ange egenskapen analytical_storage_ttl till det obligatoriska värdet i sekunder eller använd för oändlig -1 kvarhållning. Den här inställningen kan ändras senare.
# Azure Cosmos DB Python SDK, for SQL API only.
# Creating an analytical store enabled container.
import azure.cosmos as cosmos
import azure.cosmos.cosmos_client as cosmos_client
import azure.cosmos.exceptions as exceptions
from azure.cosmos.partition_key import PartitionKey
HOST = 'your-cosmos-db-account-URI'
KEY = 'your-cosmos-db-account-key'
DATABASE = 'your-cosmos-db-database-name'
CONTAINER = 'your-cosmos-db-container-name'
# 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')
Command-Line Tools
Ange egenskapen analytical TTL till det obligatoriska värdet för att skapa en container som är aktiverad för analysarkivet. En lista över tillåtna värden finns i artikeln TTL-värden som stöds för analys.
Azure CLI
Följande alternativ skapar en container med analysarkiv med hjälp av Azure CLI. Ange egenskapen --analytical-storage-ttl till det obligatoriska värdet i sekunder eller använd för oändlig -1 kvarhållning. Den här inställningen kan ändras senare.
PowerShell
Följande alternativ skapar en container med analysarkiv med hjälp av PowerShell. Ange egenskapen -AnalyticalStorageTtl till det obligatoriska värdet i sekunder eller använd för oändlig -1 kvarhållning. Den här inställningen kan ändras senare.
Aktivera analysarkiv på en befintlig container
Anteckning
På grund av kortsiktiga kapacitetsbegränsningar måste du registrera dig för att aktivera Synapse Link på dina befintliga containrar. Beroende på väntande begäranden kan det ta allt från en dag till en vecka att godkänna den här begäran. Anvisningar för att kontrollera status för begäran finns nedan. Det här steget krävs en gång per prenumeration och alla nya databaskonton har också den här funktionen aktiverad. Du behöver azure-inbyggda roller som deltagare eller administratör för din prenumeration för att kunna registrera din begäran om att använda den befintliga containerfunktionen. Om du har problem eller frågor kan du kontakta cosmosdbsynapselink@microsoft.com .
Anteckning
Du kan aktivera analysarkiv på befintliga API Azure Cosmos DB SQL containrar. Den här funktionen är allmänt tillgänglig och kan användas för produktionsarbetsbelastningar.
Observera följande information när du aktiverar Synapse Link befintliga containrar:
Samma prestandaisolering av processen för automatisk synkronisering av analysarkiv gäller för den inledande synkroniseringen och det finns ingen prestandapåverkan på OLTP-arbetsbelastningen.
Den totala tiden för en containers inledande synkronisering med analysarkiv 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 migreringsförloppet.
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:er 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 Synapse Link inte aktiveras på den containern. Oltp-arbetsbelastningen påverkas inte och du kan fortsätta att läsa data normalt. Data som matas in efter början av den första synkroniseringen sammanfogas i analysarkivet av den vanliga automatiska synkroniseringsprocessen för analysarkivet.
Befintliga MongoDB API-samlingar stöds inte för närvarande. Alternativet är att migrera data till en ny samling som skapats med analysarkiv aktiverat.
Anteckning
För närvarande går det inte att stänga av analysarkiv från en container. Klicka här om du vill ha mer information om priser för analysarkiv.
Azure Portal
- Logga in på Azure Portal eller Azure Cosmos DB Explorer.
- Gå till ditt Azure Cosmos DB konto och öppna fliken Synapse Link" i avsnittet Integreringar. På den här fliken kan du:
- Klicka på Registrera för att begära godkännande för din prenumeration. Om du vill se status för begäran går du tillbaka till samma portalfönster.
- När det har godkänts visas listan över containrar för ditt konto och du kan välja de som ska ha analysarkiv aktiverat.
- Du kan också gå till fliken Power BI i avsnittet Integreringar för att skapa Power BI instrumentpaneler på dina Synapse Link aktiverade containrar.
Command-Line Tools
Ange egenskapen analytical TTL till det obligatoriska värdet för att skapa en container som är aktiverad för analysarkivet. En lista över tillåtna värden finns i artikeln TTL-värden som stöds för analys.
Azure CLI
Använd följande steg för att aktivera analysarkiv på en befintlig container med hjälp av Azure CLI. Ange egenskapen --analytical-storage-ttl till det obligatoriska värdet i sekunder eller använd för oändlig -1 kvarhållning. Den här inställningen kan ändras senare.
- Registrera dig för godkännande med hjälp av
az feature registration create --namespace Microsoft.DocumentDB --name AnalyticalStoreMigration. - Kontrollera status för begäran med hjälp av
az feature registration show --namespace Microsoft.DocumentDB --name AnalyticalStoreMigration. - Uppdatera TTL för analys
-1till efter godkännande av begäran. - Kontrollera migreringsstatusen i Azure Portal.
PowerShell
Använd följande steg för att aktivera analysarkiv på en befintlig container med hjälp av PowerShell. Ange egenskapen -AnalyticalStorageTtl till det obligatoriska värdet i sekunder eller använd för oändlig -1 kvarhållning. Den här inställningen kan ändras senare.
- Registrera dig för godkännande med
Register-AzProviderFeature -ProviderName "Microsoft.DocumentDB" -FeatureName "AnalyticalStoreMigration". - Kontrollera begärandestatusen.
- Uppdatera TTL för analys
-1till efter godkännande av begäran. - Kontrollera migreringsstatusen i Azure Portal.
Valfritt – Uppdatera analysarkivet time to live
När analysarkivet har aktiverats med ett visst TTL-värde kanske du vill uppdatera det till ett annat giltigt värde. Du kan uppdatera värdet med hjälp av Azure Portal, Azure CLI, PowerShell eller Cosmos DB-SDK:er. Information om de olika konfigurationsalternativen för TTL för analys finns i artikeln värden som stöds av TTL för analys.
Azure Portal
Om du har skapat en analysarkivaktiverad container via Azure Portal innehåller den analytical TTL standardvärdet -1 . Använd följande steg för att uppdatera det här värdet:
- Logga in på Azure Portal eller Azure Cosmos DB Explorer.
- Gå till ditt Azure Cosmos DB konto och öppna Datautforskaren fliken.
- Välj en befintlig container som har analysarkiv aktiverat. Expandera den och ändra följande värden:
- Öppna fönstret Scale & Settings (Skalning och inställningar).
- Under Inställnings find (Inställnings find) Storage Time to Live.
- Välj På (ingen standard) eller På och ange ett TTL-värde.
- Klicka på Spara för att spara ändringarna.
.NET SDK
Följande kod visar hur du uppdaterar TTL för analysarkiv med hjälp av .NET SDK:
// Get the container, update AnalyticalStorageTimeToLiveInSeconds
ContainerResponse containerResponse = await client.GetContainer("database", "container").ReadContainerAsync();
// Update analytical store TTL
containerResponse.Resource. AnalyticalStorageTimeToLiveInSeconds = 60 * 60 * 24 * 180 // Expire analytical store data in 6 months;
await client.GetContainer("database", "container").ReplaceContainerAsync(containerResponse.Resource);
Java V4 SDK
Följande kod visar hur du uppdaterar TTL för analysarkiv med hjälp av Java V4 SDK:
CosmosContainerProperties containerProperties = new CosmosContainerProperties("myContainer", "/myPartitionKey");
// Update analytical store TTL to expire analytical store data in 6 months;
containerProperties.setAnalyticalStoreTimeToLiveInSeconds (60 * 60 * 24 * 180 );
// Update container settings
container.replace(containerProperties).block();
Python V4 SDK
Stöds inte för närvarande.
Azure CLI
Följande länkar visar hur du uppdaterar TTL för containeranalys med hjälp av Azure CLI:
PowerShell
Följande länkar visar hur du uppdaterar containrars analytiska TTL med hjälp av PowerShell:
Anslut till en Synapse-arbetsyta
Följ anvisningarna i Anslut för Azure Synapse Link om hur du kommer åt en Azure Cosmos DB-databas från Azure Synapse Analytics Studio med Azure Synapse Link.
Fråga analysarkiv med Apache Spark för Azure Synapse Analytics
Följ instruktionerna i artikeln Query Azure Cosmos DB analytical store using Spark 3 (Använda Spark 3) om hur du frågar med Synapse Spark 3. Den här artikeln innehåller några exempel på hur du kan interagera med analysarkivet från Synapse-gester. 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 Azure Cosmos DB analysarkiv med Spark 2.
Fråga analysarkivet med hjälp av en serverlös SQL pool i Azure Synapse Analytics
Med en SQL-pool kan du köra frågor mot och analysera data i Azure Cosmos DB-containrar som är aktiverade med Azure Synapse Link. Du kan analysera data nästan i realtid utan att påverka prestanda 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 Query analytical store using serverless SQL pool (Frågeanalysarkiv med serverlös lagringspool).
Använd serverlös SQL för att analysera och visualisera data i Power BI
Du kan skapa en serverlös SQL en pooldatabas och vyer över Synapse Link för Azure Cosmos DB. Senare kan du köra frågor mot Azure Cosmos DB containrar och sedan skapa en modell med Power BI över dessa vyer för att återspegla frågan. Det finns ingen prestanda- eller kostnadspåverkan för dina transaktionsarbetsbelastningar och ingen komplexitet med att hantera ETL-pipelines. Du kan använda antingen DirectQuery- eller importlägen. Mer information finns i artikeln använda en serverlös SQL för att analysera Azure Cosmos DB data Synapse Link server.
Konfigurera anpassad partitionering
Med anpassad partitionering kan du partitionera analysarkivdata 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.
Azure Resource Manager-mall
Mallen Azure Resource Manager skapar ett Synapse Link aktiverat Azure Cosmos DB konto för SQL API. Den här mallen skapar ett Core(SQL) API-konto i en region med en container konfigurerad med TTL för analys aktiverat och ett alternativ för att använda manuellt eller autoskala dataflöde. Om du vill distribuera den här mallen klickar du på Distribuera till Azure på readme-sidan.
Komma igång med Azure Synapse Link – exempel
Du hittar exempel för att komma igång med Azure Synapse Link på GitHub. Dessa demonstrerar lösningar från end-to-end med IoT- och detaljhandelsscenarier. Du kan också hitta exempel som motsvarar Azure Cosmos DB API för MongoDB i samma lagringsplatsen under MongoDB-mappen.
Nästa steg
Mer information finns i följande dokument: