Konfigurace a používání Azure Synapse Linku pro Azure Cosmos DB

PLATÍ PRO: NoSQL MongoDB Gremlin

Azure Synapse Link pro Azure Cosmos DB je funkce HTAP (Hybrid Transactional And Analytical Processing) nativní pro cloud, která umožňuje spouštět analýzy téměř v reálném čase přes provozní data ve službě Azure Cosmos DB. Synapse Link vytváří úzkou bezproblémovou integraci mezi Azure Cosmos DB a Azure Synapse Analytics.

Azure Synapse Link je k dispozici pro rozhraní SQL API služby Azure Cosmos DB nebo pro účty rozhraní API služby Azure Cosmos DB pro Mongo DB. A je ve verzi Preview pro rozhraní Gremlin API s aktivací prostřednictvím příkazů rozhraní příkazového řádku. Pomocí následujících kroků spusťte analytické dotazy pomocí Azure Synapse Linku pro Azure Cosmos DB:

Můžete také zkontrolovat trénovací modul o tom, jak nakonfigurovat Azure Synapse Link pro službu Azure Cosmos DB.

Prvním krokem k použití Synapse Linku je jeho povolení pro váš účet databáze Azure Cosmos DB.

Poznámka:

Pokud chcete používat klíče spravované zákazníkem se službou Azure Synapse Link, musíte před povolením Synapse Linku ve svém účtu nakonfigurovat spravovanou identitu vašeho účtu ve svých zásadách přístupu ke službě Azure Key Vault. Další informace najdete v článku o konfiguraci klíčů spravovaných zákazníkem pomocí účtů spravované službou Azure Cosmos DB.

Poznámka:

Pokud chcete použít schéma úplné věrnosti pro účty API pro NoSQL, nemůžete povolit Synapse Link pomocí webu Azure Portal. Tuto možnost nejde změnit, když je ve vašem účtu povolená služba Synapse Link a pokud ji chcete nastavit, musíte použít Azure CLI nebo PowerShell. Další informace najdete v dokumentaci k reprezentaci schématu analytického úložiště.

Poznámka:

K povolení Synapse Linku na úrovni účtu potřebujete roli Přispěvatel. K povolení Synapse Linku v kontejnerech nebo kolekcích potřebujete alespoň roli operátora.

portál Azure

  1. Přihlaste se k webu Azure Portal.

  2. Vytvořte nový účet Azure, nebo vyberte již existující účet Azure Cosmos DB.

  3. Přejděte do svého účtu služby Azure Cosmos DB a otevřete Azure Synapse Link v části Integrace v levém podokně.

  4. Vyberte Povolit. Dokončení tohoto procesu může trvat 1 až 5 minut.

    Screenshot showing how to enable Synapse Link feature.

  5. Váš účet teď může používat Synapse Link. Dále se dozvíte, jak vytvořit kontejnery s povoleným analytickým úložištěm pro automatické zahájení replikace provozních dat z transakčního úložiště do analytického úložiště.

Poznámka:

Zapnutí Synapse Linku nezpůsobí automaticky zapnutí analytického úložiště. Jakmile v účtu Cosmos DB povolíte Synapse Link, povolte v kontejnerech analytické úložiště, abyste mohli začít Synapse Link používat.

Poznámka:

Synapse Link můžete pro svůj účet povolit také pomocí Power BI a podokna Synapse Link v části Integrace v levé navigační nabídce.

Nástroje příkazového řádku

Povolte Synapse Link v účtu rozhraní API služby Azure Cosmos DB pro účet NoSQL nebo MongoDB pomocí Azure CLI nebo PowerShellu.

Azure CLI

Slouží --enable-analytical-storage true k operacím vytvoření nebo aktualizace . Musíte také zvolit typ schématu reprezentace. Pro účty API for NoSQL můžete použít --analytical-storage-schema-type s hodnotami FullFidelity nebo WellDefined. Pro účty API pro MongoDB vždy používejte --analytical-storage-schema-type FullFidelity.

Synapse Link pro rozhraní Gremlin API je teď ve verzi Preview. Synapse Link můžete povolit v nových nebo existujících grafech pomocí Azure CLI. Pomocí následujícího příkazu rozhraní příkazového řádku povolte Synapse Link pro váš účet rozhraní Gremlin API:

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

U existujících účtů rozhraní Gremlin API nahraďte create textem update.

PowerShell

Slouží EnableAnalyticalStorage true k operacím vytvoření nebo aktualizace . Musíte také zvolit typ schématu reprezentace. Pro účty API for NoSQL můžete použít --analytical-storage-schema-type s hodnotami FullFidelity nebo WellDefined. Pro účty API pro MongoDB vždy používejte -AnalyticalStorageSchemaType FullFidelity.

Šablona Azure Resource Manageru

Tato šablona Azure Resource Manageru vytvoří účet služby Azure Cosmos DB s podporou Synapse Linku pro rozhraní SQL API. Tato šablona vytvoří účet rozhraní API core (SQL) v jedné oblasti s kontejnerem nakonfigurovaným s povolenou analytickou sadou TTL a možností použití ruční nebo automatické propustnosti. Pokud chcete tuto šablonu nasadit, klikněte na stránce readme na nasadit do Azure .

Povolení Azure Synapse Linku pro kontejnery

Druhým krokem je povolení Synapse Linku pro kontejnery nebo kolekce. Toho lze dosáhnout nastavením analytical TTL vlastnosti -1 pro nekonečné uchovávání nebo na kladné celé číslo, což je počet sekund, které chcete zachovat v analytickém úložišti. Toto nastavení lze později změnit. Další informace najdete v článku o podporovaných hodnotách TTL analytického jazyka TTL.

Při povolování služby Azure Synapse Link ve stávajících kontejnerech rozhraní SQL API si poznamenejte následující podrobnosti:

  • Stejná izolace výkonu automatické synchronizace analytického úložiště platí pro počáteční synchronizaci a nemá žádný vliv na výkon vaší úlohy OLTP.
  • Počáteční synchronizace kontejneru s celkovým časem analytického úložiště se bude lišit v závislosti na objemu dat a složitosti dokumentů. Tento proces může trvat od několika sekund do několika dnů. Pomocí webu Azure Portal sledujte průběh migrace.
  • Propustnost kontejneru nebo databázového účtu také ovlivňuje celkovou dobu počáteční synchronizace. I když se v této migraci nepoužívají RU/s, celkový počet dostupných RU/s ovlivňuje výkon procesu. Pokud chcete proces urychlit, můžete dočasně zvýšit dostupné jednotky RU vašeho prostředí.
  • Během povolení Synapse Linku v daném kontejneru nebudete moct dotazovat analytické úložiště existujícího kontejneru. Vaše úloha OLTP nemá vliv a můžete normálně číst data. Data ingestovaná po zahájení počáteční synchronizace se sloučí do analytického úložiště pravidelným procesem automatické synchronizace analytického úložiště.

Poznámka:

Teď můžete synapse Link povolit ve stávajících kolekcích rozhraní MongoDB API pomocí Azure CLI nebo PowerShellu.

portál Azure

Nový kontejner

  1. Přihlaste se k webu Azure Portal nebo Průzkumníku služby Azure Cosmos DB.

  2. Přejděte do svého účtu služby Azure Cosmos DB a otevřete kartu Průzkumník dat.

  3. Vyberte Nový kontejner a zadejte název databáze, kontejneru, klíče oddílu a podrobností o propustnosti. Zapněte možnost Analytické úložiště . Po povolení analytického úložiště vytvoří kontejner s analytical TTL vlastností nastavenou na výchozí hodnotu -1 (nekonečné uchovávání). Toto analytické úložiště, které uchovává všechny historické verze záznamů a lze ho později změnit.

    Turn on analytical store for Azure Cosmos DB container

  4. Pokud jste v tomto účtu dříve nepovolili Synapse Link, zobrazí se výzva, abyste to udělali, protože je předpokladem pro vytvoření kontejneru s povoleným analytickým úložištěm. Pokud se zobrazí výzva, vyberte Povolit Synapse Link. Dokončení tohoto procesu může trvat 1 až 5 minut.

  5. Vyberte OK a vytvořte kontejner Azure Cosmos DB s povoleným analytickým úložištěm.

  6. Po vytvoření kontejneru kliknutím na Nastavení v Průzkumníku dat ověřte, že je povolené analytické úložiště, a zkontrolujte, jestli je zapnutá možnost Čas analytického úložiště do provozu.

Existující kontejner

  1. Přihlaste se k webu Azure Portal nebo Průzkumníku služby Azure Cosmos DB.

  2. Přejděte ke svému účtu služby Azure Cosmos DB a otevřete kartu Azure Synapse Link .

  3. V části Povolit Azure Synapse Link pro kontejnery vyberte kontejner.

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

  4. Po povolení kontejneru ověřte, že je povolené analytické úložiště, kliknutím na Nastavení, pravým tlačítkem pod dokumenty v Průzkumníku dat a zkontrolujte, jestli je zapnutá možnost Čas analytického úložiště do provozu.

Poznámka:

Synapse Link můžete pro svůj účet povolit také pomocí Power BI a podokna Synapse Link v části Integrace v levé navigační nabídce.

Nástroje příkazového řádku

Azure CLI

Následující možnosti umožňují synapse Linku v kontejneru pomocí Azure CLI nastavením --analytical-storage-ttl vlastnosti.

Synapse Link pro rozhraní Gremlin API je teď ve verzi Preview. Synapse Link můžete povolit ve svých nových nebo existujících grafech pomocí Azure CLI. Pomocí následujícího příkazu rozhraní příkazového řádku povolte Synapse Link pro grafy rozhraní Gremlin API:

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

U existujících grafů nahraďte create .update

PowerShell

Následující možnosti umožňují synapse Linku v kontejneru pomocí Azure CLI nastavením -AnalyticalStorageTtl vlastnosti.

Sady SDK služby Azure Cosmos DB – pouze rozhraní SQL API

.NET SDK

Následující kód .NET vytvoří kontejner s povolenou službou Synapse Link nastavením AnalyticalStoreTimeToLiveInSeconds vlastnosti. Pokud chcete aktualizovat existující kontejner, použijte metodu Container.ReplaceContainerAsync .

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

Následující kód Java vytvoří kontejner s povoleným Synapse Linkem nastavením setAnalyticalStoreTimeToLiveInSeconds vlastnosti. Pokud chcete aktualizovat existující kontejner, použijte container.replace třídu.

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

Následující kód Pythonu vytvoří kontejner s povoleným Synapse Linkem nastavením analytical_storage_ttl vlastnosti. Pokud chcete aktualizovat existující kontejner, použijte metodu replace_container .

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

Připojení do pracovního prostoru Synapse

Pokyny v Připojení k Azure Synapse Linku vám použijí, jak přistupovat k databázi Azure Cosmos DB ze sady Azure Synapse Analytics Studio pomocí Azure Synapse Linku.

Dotazování analytického úložiště pomocí Azure Synapse Analytics

Dotazování analytického úložiště pomocí Apache Sparku pro Azure Synapse Analytics

Postupujte podle pokynů v analytickém úložišti Azure Cosmos DB pomocí článku Spark 3 o dotazování pomocí Synapse Sparku 3. Tento článek obsahuje několik příkladů, jak můžete pracovat s analytickým úložištěm pomocí gest Synapse. Tato gesta se zobrazí po kliknutí pravým tlačítkem myši na kontejner. Pomocí gest můžete rychle vygenerovat kód a upravit ho podle svých potřeb. Jsou také ideální pro zjišťování dat jediným kliknutím.

Pro integraci Sparku 2 použijte pokyny v analytickém úložišti Azure Cosmos DB pomocí článku Spark 2 .

Dotazování analytického úložiště pomocí bezserverového fondu SQL ve službě Azure Synapse Analytics

Bezserverový fond SQL umožňuje dotazovat a analyzovat data v kontejnerech Azure Cosmos DB, které jsou povolené pomocí Azure Synapse Linku. Data můžete analyzovat téměř v reálném čase, aniž by to mělo vliv na výkon transakčních úloh. Nabízí známou syntaxi T-SQL pro dotazování dat z analytického úložiště a integrované připojení k široké škále nástrojů BI a ad hoc dotazování prostřednictvím rozhraní T-SQL. Další informace najdete v analytickém úložišti dotazů pomocí článku o bezserverovém fondu SQL.

Použití bezserverového fondu SQL k analýze a vizualizaci dat v Power BI

Pomocí integrovaného prostředí BI na portálu Azure Cosmos DB můžete vytvářet řídicí panely BI pomocí Synapse Linku několika kliknutími. Další informace najdete v tématu vytváření řídicích panelů BI pomocí Synapse Linku. Toto integrované prostředí vytvoří jednoduchá zobrazení T-SQL v bezserverových fondech SQL Synapse pro kontejnery Azure Cosmos DB. V těchto zobrazeních můžete vytvářet řídicí panely BI, které budou dotazovat kontejnery Azure Cosmos DB v reálném čase pomocí Direct Query a odrážejí nejnovější změny vašich dat. Na transakční úlohy nemá žádný dopad na výkon ani náklady a není nijak složité spravovat kanály ETL.

Pokud chcete použít pokročilá zobrazení T-SQL se spojeními napříč kontejnery nebo vytvářet řídicí panely Power BI v režimu importu, přečtěte si téma Použití bezserverového fondu SQL k analýze dat Azure Cosmos DB pomocí Synapse Linku.

Zlepšení výkonu pomocí osvědčených postupů

Vlastní dělení

Vlastní dělení umožňuje rozdělit data analytického úložiště na pole, která se běžně používají jako filtry v analytických dotazech, což vede k lepšímu výkonu dotazů. Další informace najdete v úvodu k vlastnímu dělení a postupu při konfiguraci vlastních článků o dělení.

Tyto povinné osvědčené postupy použijte pro dotazy bez serveru SQL.

Ukázky, které vám pomůžou začít s Azure Synapse Linkem, najdete na GitHubu. Tyto prezentace představují ucelená řešení se scénáři IoT a maloobchodního prodeje. Ukázky odpovídající službě Azure Cosmos DB for MongoDB najdete také ve stejném úložišti ve složce MongoDB .

Další kroky

Další informace najdete v následujících dokumentech: