Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
PLATÍ PRO:
NoSQL
MongoDB
Skřítek
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ů.
V tomto článku se dozvíte, jak rozdělit data do analytického úložiště Azure Cosmos DB pomocí klíčů, které jsou pro analytické úlohy důležité. Vysvětluje také, jak využít vylepšeného výkonu dotazů s prořezáváním oddílů. Dozvíte se také, jak vlastní dělení zlepšuje výkonnost dotazů, když mají vaše úlohy významný počet aktualizací nebo smazání.
Poznámka:
Účty a kontejnery Služby Azure Cosmos DB by měly mít povolenou službu Azure Synapse Link , aby bylo možné využívat vlastní dělení.
Jak to funguje?
Dělení analytického úložiště je nezávislé na dělení v transakčním úložišti. Ve výchozím nastavení není analytické úložiště dělené. Pokud chcete dotazovat analytické úložiště často na základě polí, jako je datum, čas, kategorie atd., můžete pomocí vlastního dělení vytvořit samostatné rozdělené úložiště založené na těchto klíčích. Jako klíč oddílu analytického úložiště můžete zvolit jedno pole nebo kombinaci polí z datové sady.
Dělení můžete aktivovat z poznámkového bloku Azure Synapse Spark pomocí Azure Synapse Linku. Můžete ji naplánovat tak, aby běžela jako úloha na pozadí, jednou nebo dvakrát denně, ale v případě potřeby se dá spustit častěji.
Poznámka:
Dělené úložiště odkazuje na primární účet úložiště ADLS Gen2, který je propojený s pracovním prostorem Azure Synapse.
Rozdělené úložiště obsahuje analytická data Azure Cosmos DB až do posledního časového razítka, kdy jste provedli úlohu pro rozdělení. Když dotazujete analytická data pomocí filtrů klíče oddílu, Synapse Link automaticky sloučí data rozděleného úložiště s nejnovějšími změnami v analytickém úložišti. Díky tomu získáte nejnovější výsledky pro vaše dotazy. Ačkoli sloučí data před dotazováním, změna se nezapisuje zpět do rozděleného úložiště. Vzhledem k tomu, že rozdíl mezi daty v analytickém úložišti a děleným úložištěm se rozšiřuje, může se doba dotazování na dělená data lišit. Aktivace úlohy dělení častěji snižuje tento rozdíl. Při každém spuštění úlohy pro rozdělení se zpracovávají pouze přírůstkové změny v analytickém úložišti, místo zpracování kompletního datového souboru.
Kdy použít?
Použití rozděleného úložiště je volitelné při dotazování analytických dat ve službě Azure Cosmos DB. Stejná data můžete dotazovat přímo pomocí Synapse Linku s existujícím analytickým úložištěm. Úložiště s oddíly můžete zapnout, pokud máte následující požadavky:
- Běžné filtry analytických dotazů, které je možné použít jako sloupce pro rozdělení
- Sloupce oddílů s nízkou kardinalitou
- Sloupec oddílu distribuuje data rovnoměrně mezi oddíly.
- Velký objem operací aktualizace nebo odstranění
- Pomalý příjem dat
Pokud dotazujete živá data pomocí filtrů dotazů, které se liší od klíčů oddílů, doporučujeme dotazovat se přímo do analytického úložiště.
Zaměstnanecké výhody
Omezené prohledávání dat z vyřezávání oddílů
Vzhledem k tomu, že data odpovídající každému jedinečnému klíči oddílu jsou umístěna spolu ve děleném úložišti, může použití klíče oddílu jako filtru dotazu způsobit, že dotazy mohou odstranit nepotřebná podkladová data a prohledávat pouze požadovaná data. Prohledáváním omezených dat vylepšuje vyřazení oddílů výkon analytického dotazu.
Flexibilita dělení analytických dat
Pro daný kontejner analytického úložiště můžete mít několik strategií dělení. Na základě požadavků na dotazy můžete použít složené nebo samostatné klíče oddílů.
Vylepšení výkonu dotazů
Kromě vylepšení dotazů z prořezávání oddílů má vlastní rozdělení také za následek vyšší výkon dotazů pro následující úlohy:
Aktualizace nebo odstranění náročných úloh – Místo toho, abyste sledovali více verzí záznamů v analytickém úložišti a načítali je během provádění jednotlivých dotazů, obsahuje dělené úložiště jenom nejnovější verzi dat. Tato funkce výrazně zlepšuje výkon dotazů, pokud máte úlohy náročné na aktualizaci nebo odstranění.
Pomalé úlohy příjmu dat – Dělení zkomprimuje analytická data, takže pokud má vaše úloha pomalý příjem dat, může toto komprimace vést k lepšímu výkonu dotazů.
Transakční záruka
Je důležité si uvědomit, že vlastní dělení zajišťuje úplnou transakční záruku. Cesta k dotazu není zablokovaná, zatímco probíhá provádění dělení. Každé spuštění dotazu načte dělená data z posledního úspěšného dělení. Čte nejnovější data z analytického úložiště, což zajišťuje, aby dotazy vždy vracely nejnovější data, která jsou k dispozici při použití rozděleného úložiště.
Zabezpečení
Pokud jste pro analytické úložiště nakonfigurovali spravované privátní koncové body , doporučujeme přidat i spravované privátní koncové body pro dělené úložiště. Oddělené úložné prostory jsou hlavním úložným účtem asociovaným s vaším pracovním prostorem Synapse.
Podobně pokud jste nakonfigurovali klíče spravované zákazníkem v analytickém úložišti, musíte ho přímo povolit v primárním účtu úložiště pracovního prostoru Synapse, což je také dělené úložiště.
Strategie dělení
Pro analytická data můžete použít jeden nebo více klíčů pro rozdělení. Pokud používáte více klíčů pro oddíly, tady je několik doporučení pro rozdělení dat:
Použití složených klíčů:
Řekněme, že chcete často dotazovat na základě klíče 1 a klíče2.
Například Dotaz na všechny záznamy, kde ReadDate = '2021-10-08' a Location = 'Sydney'.
V tomto případě je použití složených klíčů efektivnější k vyhledání všech záznamů, které odpovídají hodnotě ReadDate, a záznamů, které odpovídají umístění v rámci tohoto readDate.
Ukázkové možnosti konfigurace:
.option("spark.cosmos.asns.partition.keys", "ReadDate String, Location String") \ .option("spark.cosmos.asns.basePath", "/mnt/CosmosDBPartitionedStore/") \Teď se můžete dotazovat na základě filtru Umístění:
- Možná budete chtít se dotazovat přímo na analytické úložiště. Rozdělené úložiště nejprve prohledá všechny záznamy podle readDate a pak podle umístění. Takže v závislosti na vaší úloze a kardinalitě analytických dat můžete dosáhnout lepších výsledků dotazováním analytického úložiště přímo.
- Můžete také spustit jinou úlohu oddílu, která také rozdělí oddíl na základě umístění ve stejném děleném úložišti.
Použití více klíčů samostatně:
Řekněme, že chcete často dotazovat na základě "ReadDate" a jindy na základě umístění.
Příklad:
- Dotaz na všechny záznamy, kde ReadDate = '2021-10-08'
- Dotaz na všechny záznamy, kde location = 'Sydney'
Pro tento scénář spusťte dvě úlohy se zadanými klíči pro partice definované níže.
Úloha 1:
.option("spark.cosmos.asns.partition.keys", "ReadDate String") \ .option("spark.cosmos.asns.basePath", "/mnt/CosmosDBPartitionedStore/") \Úloha 2:
.option("spark.cosmos.asns.partition.keys", "Location String") \ .option("spark.cosmos.asns.basePath", "/mnt/CosmosDBPartitionedStore/") \Všimněte si, že teď není efektivní často provádět dotazování na základě filtrů ReadDate a Location společně, vzhledem k uvedenému členění. Složené klíče umožňují lepší výkon dotazů v takovém případě.
Omezení
Vlastní dělení je dostupné jenom pro Azure Synapse Spark. Vlastní particionování se v současné době nepodporuje pro bezserverové SQL fondy.
Aktuálně dělené úložiště může odkazovat pouze na primární účet úložiště přidružený k pracovnímu prostoru Synapse. V tuto chvíli není výběr vlastních účtů úložiště podporovaný.
Vlastní dělení je dostupné jenom pro rozhraní API for NoSQL ve službě Azure Cosmos DB. Rozhraní API pro MongoDB, Gremlin a Cassandra jsou v současnosti ve verzi preview.
Ceny
Kromě cen služby Azure Synapse Link se vám při použití vlastního dělení účtují následující poplatky:
Při spouštění úloh na dělení v analytickém obchodě budou účtovány poplatky pro práci s fondy Synapse Apache Spark.
Dělená data se ukládají v primárním účtu Azure Data Lake Storage Gen2 přidruženém k vašemu pracovnímu prostoru Azure Synapse Analytics. Účtují se vám náklady spojené s používáním úložiště a transakcí ADLS Gen2. Tyto náklady jsou určeny úložištěm požadovaným dělenými analytickými daty a daty zpracovanými pro analytické dotazy v Synapse. Další informace o cenách najdete na stránce s cenami služby Azure Data Lake Storage.
Nejčastější dotazy
Jak často mám spustit úlohu vlastního rozdělování?
Existuje několik faktorů, jako jsou přírůstkové objemy dat, požadavky na latenci dotazů atd., které určují, jak často můžete spustit vlastní úlohu dělení. Může to být spuštěno jednou denně nebo jednou za několik hodin. Pokud je objem příchozích dat vysoký a očekávaná latence dotazů je nízká, možná budete chtít naplánovat úlohu dělení častěji. Abyste mohli efektivně prořezávat oddíly, musíte nejprve shromáždit přírůstková data v analytickém úložišti.
Obsahují výsledky dotazu nejnovější data během provádění úlohy dělení?
Ano, vlastní dělení poskytuje úplnou transakční záruku. Výsledky dotazu tedy v jakémkoli okamžiku zkombinují existující dělená data s koncovými daty vracející nejnovější datovou sadu analytického úložiště.
Může vlastní oddílení využívat ověřování propojených služeb ve službě Azure Synapse Analytics?
Ano, ověřování propojené služby lze použít k dělení analytického úložiště.
Mohu změnit klíč oddílu pro daný kontejner později?
Ano, klíč oddílu pro daný kontejner lze změnit a nová definice klíče oddílu vytvoří nové dělené úložiště.
Poznámka:
Definice klíče oddílu je součástí cesty k děleným úložišti.
Mohou různé klíče oddílů odkazovat na stejnou základní cestu?
Ano, ve stejném úložišti s dělenými oddíly můžete zadat více klíčů oddílů takto:
.option("spark.cosmos.asns.partition.keys", "ReadDate String, Location String") \
.option("spark.cosmos.asns.basePath", "/mnt/CosmosDBPartitionedStore/") \
Další kroky
Další informace najdete v následujících dokumentech:
- Nakonfigurujte vlastní rozdělení dat analytického úložiště.
- Azure Synapse Link pro Azure Cosmos DB
- Přehled analytického úložiště Azure Cosmos DB
- Začínáme s Azure Synapse Linkem pro Azure Cosmos DB
- Nejčastější dotazy k Azure Synapse Linku pro Azure Cosmos DB
- Případy použití služby Azure Synapse Link pro službu Azure Cosmos DB