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:
- Povolení Azure Synapse Linku pro účty služby Azure Cosmos DB
- Povolení Azure Synapse Linku pro kontejnery
- Připojení databáze Azure Cosmos DB k pracovnímu prostoru Azure Synapse
- Dotazování analytického úložiště pomocí Azure Synapse Analytics
- Vylepšení výkonu pomocí osvědčených postupů
- Použití Azure Synapse bezserverového fondu SQL k analýze a vizualizaci dat v Power BI
Můžete se také podívat na trénovací modul, jak nakonfigurovat Azure Synapse Link pro službu Azure Cosmos DB.
Povolení Azure Synapse Linku pro účty služby 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
Přihlaste se k webu Azure Portal.
Vytvořte nový účet Azure nebo vyberte existující účet Azure Cosmos DB.
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.
Vyberte Povolit. Dokončení tohoto procesu může trvat 1 až 5 minut.
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
.
- Vytvoření nového účtu služby Azure Cosmos DB s povoleným Synapse Link
- Aktualizace existujícího účtu služby Azure Cosmos DB za účelem povolení Synapse Link
Pomocí Azure CLI povolte Synapse Link pro účet Azure Synapse Link pro rozhraní Gremlin API.
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 create
update
.
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
.
- Vytvoření nového účtu služby Azure Cosmos DB s povoleným Synapse Link
- Aktualizace existujícího účtu služby Azure Cosmos DB za účelem povolení Synapse Link
Š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
Přihlaste se k Azure Portal nebo Průzkumníkovi služby Azure Cosmos DB.
Přejděte k účtu služby Azure Cosmos DB a otevřete kartu Data Explorer.
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.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.
Vyberte OK a vytvořte kontejner Azure Cosmos DB s povoleným analytickým úložištěm.
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
Přihlaste se k Azure Portal nebo Průzkumníkovi služby Azure Cosmos DB.
Přejděte ke svému účtu služby Azure Cosmos DB a otevřete kartu Azure Synapse Odkaz.
V části Povolení odkazu Azure Synapse pro kontejnery vyberte kontejner.
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 .
- Vytvoření kolekce MongoDB ve službě Azure Cosmos DB
- Vytvoření nebo aktualizace kontejneru rozhraní SQL API služby Azure Cosmos DB
Povolení Synapse Link pro Azure Synapse Link pro Grafy rozhraní Gremlin API pomocí Azure CLI
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 create
update
.
PowerShell
Následující možnosti umožňují Synapse Link v kontejneru pomocí Azure CLI nastavením -AnalyticalStorageTtl
vlastnosti .
- Vytvoření kolekce MongoDB ve službě Azure Cosmos DB
- Vytvoření nebo aktualizace kontejneru rozhraní SQL API služby Azure Cosmos DB
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í .
Osvědčené postupy pro bezserverový systém Synapse SQL pro Azure Synapse Link pro Cosmos DB
Pro bezserverové dotazy SQL použijte tyto povinné osvědčené postupy.
Začínáme s Azure Synapse Link – ukázky
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:
- Informace o konfiguraci Azure Synapse Linku pro Službu Azure Cosmos DB najdete ve školicím modulu.
- Přehled analytického úložiště Azure Cosmos DB
- Nejčastější dotazy k Synapse Link pro službu Azure Cosmos DB
- Apache Spark ve službě Azure Synapse Analytics.
- Podpora modulu runtime bezserverového fondu SQL ve službě Azure Synapse Analytics