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 nad provozními daty ve službě Azure Cosmos DB. Synapse Link vytváří úzkou bezproblémovou integraci mezi službou 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ího postupu můžete spouštět analytické dotazy pomocí Azure Synapse Linku pro Službu Azure Cosmos DB:

Můžete se také podívat na trénovací modul, jak nakonfigurovat Azure Synapse Link pro službu Azure Cosmos DB.

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

Poznámka

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

Poznámka

Pokud chcete použít schéma úplné věrnosti pro účty rozhraní API pro NoSQL, nemůžete Synapse Link povolit pomocí Azure Portal. Tuto možnost není možné po povolení Synapse Link ve vašem účtu změnit, 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ě.

portál Azure

  1. Přihlaste se k webu Azure Portal.

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

  3. Přejděte ke svému účtu služby Azure Cosmos DB a v levém podokně v části Intergrations (Intergrations) otevřete odkaz na Azure Synapse.

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

    Snímek obrazovky znázorňující, jak povolit funkci Synapse Link

  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, které automaticky spustí replikaci provozních dat z transakčního úložiště do analytického úložiště.

Poznámka

Zapnutí Synapse Link nezapne analytické úložiště automaticky. Jakmile v účtu cosmos DB povolíte Synapse Link, povolte v kontejnerech analytické úložiště, abyste mohli začít používat Synapse Link.

Poznámka

Můžete také povolit Synapse Link pro svůj účet 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 NoSQL nebo MongoDB pomocí Azure CLI nebo PowerShellu.

Azure CLI

Používá se --enable-analytical-storage true pro operace vytvoření i aktualizace . Musíte také zvolit typ schématu reprezentace. Pro účty ROZHRANÍ API pro NoSQL můžete použít --analytical-storage-schema-type s hodnotami FullFidelity nebo WellDefined. Pro účty rozhraní API pro MongoDB vždy použijte --analytical-storage-schema-type FullFidelity.

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

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

Stávající účty rozhraní Gremlin API nahraďte za createupdate.

PowerShell

Používá se EnableAnalyticalStorage true pro operace vytvoření i aktualizace . Musíte také zvolit typ schématu reprezentace. Pro účty ROZHRANÍ API pro NoSQL můžete použít --analytical-storage-schema-type s hodnotami FullFidelity nebo WellDefined. Pro účty rozhraní API pro MongoDB vždy použijte -AnalyticalStorageSchemaType FullFidelity.

Šablona Azure Resource Manageru

Tato šablona Azure Resource Manager vytvoří účet služby Azure Cosmos DB s podporou Synapse Link pro rozhraní SQL API. Tato šablona vytvoří účet rozhraní Core (SQL) API v jedné oblasti s kontejnerem nakonfigurovaným s povolenou hodnotou TTL analytického úložiště a možností použít propustnost ručního nebo automatického škálování. Pokud chcete tuto šablonu nasadit, klikněte na stránce readme na Deploy to Azure (Nasadit do Azure ).

Povolení Azure Synapse Linku pro kontejnery

Druhým krokem je povolení Synapse Link pro kontejnery nebo kolekce. Toho dosáhnete nastavením analytical TTL vlastnosti na hodnotu -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í můžete později změnit. Další informace najdete v článku Podporované hodnoty TTL analytického úložiště.

Při povolování Azure Synapse Link ve stávajících kontejnerech rozhraní SQL API mějte na paměti následující podrobnosti:

  • Stejná izolace výkonu jako proces automatické synchronizace analytického úložiště se vztahuje na počáteční synchronizaci a nemá žádný vliv na výkon vaší úlohy OLTP.
  • Celková doba počáteční synchronizace kontejneru s analytickým úložištěm se bude lišit v závislosti na objemu dat a složitosti dokumentů. Tento proces může trvat od několika sekund až po několik dnů. Ke sledování průběhu migrace použijte Azure Portal.
  • Propustnost kontejneru nebo databázového účtu má vliv také na 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 počet RU dostupných pro vaše prostředí.
  • Nebudete moct dotazovat analytické úložiště existujícího kontejneru, když je v daném kontejneru povolená Synapse Link. Vaše úloha OLTP není ovlivněná a můžete pokračovat ve čtení dat normálně. 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

V současné době nemůžete povolit Synapse Link ve stávajících kontejnerech rozhraní MongoDB API. Synapse Link je možné povolit u nově vytvořených kontejnerů Mongo DB.

portál Azure

Nový kontejner

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

  2. Přejděte k účtu služby Azure Cosmos DB a otevřete kartu Data Explorer.

  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ě se 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.

    Zapnutí analytického úložiště pro kontejner Azure Cosmos DB

  4. Pokud jste u tohoto účtu dříve nepovolili Synapse Link, zobrazí se výzva, abyste to udělali, protože je předpokladem 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 ověřte, že je povolené analytické úložiště kliknutím na Nastavení, přímo pod dokumentem v Data Explorer, a zkontrolujte, jestli je zapnutá možnost Doba provozu analytického úložiště.

Existující kontejner

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

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

  3. V části Povolení odkazu Azure Synapse pro kontejnery vyberte kontejner.

    Snímek obrazovky znázorňující, jak zapnout analytické úložiště pro existující kontejner Azure Cosmos DB

  4. Po povolení kontejneru ověřte, že je analytické úložiště povolené, a to tak, že kliknete na Nastavení, přímo pod dokumentem v Data Explorer a zkontrolujete, jestli je zapnutá možnost Analytické úložiště (Time to Live).

Poznámka

Můžete také povolit Synapse Link pro svůj účet 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 Link v kontejneru pomocí Azure CLI nastavením --analytical-storage-ttl vlastnosti .

Synapse Link pro rozhraní Gremlin API je teď ve verzi Preview. Synapse Link v nových nebo existujících grafech můžete povolit 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 hodnotou createupdate.

PowerShell

Následující možnosti umožňují Synapse Link 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 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 povolenou Synapse Link 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 Java vytvoří kontejner s povolenou Synapse Link 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')

Volitelné – Zakázání analytického úložiště v kontejneru rozhraní SQL API

Analytické úložiště je možné zakázat v kontejnerech rozhraní SQL API pomocí Azure CLI nebo PowerShellu nastavením analytical TTL na 0.

Poznámka

Upozorňujeme, že tuto akci v současné době nejde vrátit zpět. Pokud je analytické úložiště v kontejneru zakázané, nedá se nikdy znovu povolit.

Poznámka

Upozorňujeme, že zakázání analytického úložiště není k dispozici pro kolekce rozhraní MongoDB API.

Připojení k pracovnímu prostoru Synapse

Postupujte podle pokynů v tématu Připojení k Azure Synapse Link, jak získat přístup k databázi Azure Cosmos DB z nástroje 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 článku Dotazování analytického úložiště Azure Cosmos DB pomocí Sparku 3 o dotazování pomocí Synapse Spark 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í, když kliknete pravým tlačítkem 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.

V případě integrace Sparku 2 použijte pokyny v článku Dotazování analytického úložiště Azure Cosmos DB pomocí Sparku 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é mají povolenou funkci Azure Synapse Link. 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 článku Dotazování analytického úložiště pomocí bezserverového 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 několika kliknutími vytvářet řídicí panely BI pomocí Synapse Link. Další informace najdete v tématu Vytváření řídicích panelů BI pomocí Synapse Link. 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 vytvořit řídicí panely BI, které budou v reálném čase dotazovat kontejnery Azure Cosmos DB pomocí direct query a odrážet nejnovější změny vašich dat. Transakční úlohy nemají žádný dopad na výkon ani náklady a správa kanálů ETL není složitá.

Pokud chcete použít pokročilá zobrazení T-SQL se spojeními napříč kontejnery nebo vytvořit řídicí panely Power BI v režimu importu, přečtěte si téma Analýza dat služby Azure Cosmos DB pomocí Synapse Link pomocí bezserverového fondu SQL.

Vylepš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 v článcích o konfiguraci vlastního dělení .

Pro bezserverové dotazy SQL použijte tyto povinné osvědčené postupy.

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

Další kroky

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