Tahák pro vyhrazený fond SQL (dříve SQL DW) v Azure Synapse Analytics
Tento tahák obsahuje užitečné tipy a osvědčené postupy pro vytváření řešení vyhrazeného fondu SQL (dříve SQL Dw).
Následující obrázek znázorňuje proces návrhu datového skladu s vyhrazeným fondem SQL (dříve SQL DW):
Dotazy a operace napříč tabulkami
Pokud předem znáte hlavní operace a dotazy, které se ve vašem datovém skladu budou spouštět, můžete nastavit priority architektury datového skladu pro tyto operace. Mezi tyto dotazy a operace můžou patřit:
- Propojení jedné nebo dvou tabulek faktů s tabulkami dimenzí, filtrování zkombinované tabulky a následné připojení výsledků do datového tržiště.
- Provádění velkých nebo malých aktualizací tabulek faktů.
- Připojení pouze dat k tabulkám.
Znalost typů operací předem vám pomůže optimalizovat návrh tabulek.
Migrace dat
Nejprve načtěte data do Azure Data Lake Storage nebo Azure Blob Storage. Dále pomocí příkazu COPY načtěte data do pracovních tabulek. Použijte následující konfiguraci:
Návrh | Doporučení |
---|---|
Distribuce | Kruhové dotazování |
Indexování | Halda |
Dělení | Žádné |
Třída prostředku | largerc nebo xlargerc |
Další informace o migraci dat, načítání dat a procesu extrakce, načítání a transformace (ELT).
Distribuované nebo replikované tabulky
Použijte následující strategie v závislosti na vlastnostech tabulek:
Typ | Skvěle se hodí pro tyto účely... | Na co si dát pozor |
---|---|---|
Replikované | * Malé tabulky dimenzí ve hvězdicovém schématu s méně než 2 GB úložiště po kompresi (přibližně 5x komprese) | * Mnoho transakcí zápisu je v tabulce (například vložení, upsert, odstranění, aktualizace) * Často měníte zřizování jednotek Data Warehouse (DWU). * Používáte pouze 2–3 sloupce, ale tabulka obsahuje mnoho sloupců. * Indexujete replikovanou tabulku. |
Kruhové dotazování (výchozí) | * Dočasná nebo pracovní tabulka * Žádný zřejmý spojovací klíč nebo dobrý kandidát sloupec |
* Výkon je pomalý kvůli přesunu dat |
Hodnoty hash | * Tabulky faktů * Velké tabulky dimenzí |
* Distribuční klíč nelze aktualizovat. |
Tipy:
- Začněte strategií kruhového dotazování, ale usilujte o strategii distribuce hodnot hash, abyste mohli využít výkonnou paralelní architekturu.
- Ujistěte se, že společné klíče hash mají stejný formát dat.
- Nedistribuujte ve formátu varchar.
- U tabulek dimenzí se společným klíčem hash jako tabulka faktů s častými operacemi spojení je možné provádět distribuci hodnot hash.
- Pomocí sys.dm_pdw_nodes_db_partition_stats můžete analyzovat případné zkreslení dat.
- Pomocí sys.dm_pdw_request_steps můžete analyzovat přesuny dat za dotazy, monitorovat vysílání času a provádět operace náhodného prohazování. To je užitečné při kontrole distribuční strategie.
Další informace o replikovaných tabulkách a distribuovaných tabulkách.
Indexování tabulky
Indexování je užitečné pro rychlé čtení tabulek. Existuje jedinečná sada technologií, které můžete použít podle svých potřeb:
Typ | Skvěle se hodí pro tyto účely... | Na co si dát pozor |
---|---|---|
Halda | * Pracovní/dočasná tabulka * Malé tabulky s malými vyhledáváními |
* Jakékoli vyhledávání prohledá celou tabulku. |
Clusterovaný index | * Tabulky s až 100 miliony řádků * Velké tabulky (více než 100 milionů řádků) s pouze 1–2 sloupci, které se často používají |
* Používá se v replikované tabulce. * Máte složité dotazy zahrnující více operací spojení a seskupení podle. * Provedete aktualizace indexovaných sloupců: zabírá paměť. |
Clusterovaný index columnstore (CCI) (výchozí) | * Velké tabulky (více než 100 milionů řádků) | * Používá se v replikované tabulce. * V tabulce provedete rozsáhlé operace aktualizací. * Předělíte tabulku: Skupiny řádků nepřesahují mezi různými distribučními uzly a oddíly. |
Tipy:
- Kromě clusterovaného indexu můžete chtít přidat neclusterovaný index pro sloupec, který se často používá k filtrování.
- Při správě paměti v tabulce s CCI buďte opatrní. Při načítání dat chcete, aby uživatel (nebo dotaz) využíval výhod velké třídy prostředků. Nezapomeňte se vyhnout ořezávání a vytváření mnoha malých komprimovaných skupin řádků.
- V Gen2 se tabulky CCI ukládají do mezipaměti místně do výpočetních uzlů za účelem maximalizace výkonu.
- U CCI může docházet ke snížení výkonu kvůli špatné kompresi skupin řádků. Pokud k tomu dojde, znovu svůj CCI sestavte nebo ho reorganizujte. Každá komprimovaná skupina řádků by měla obsahovat alespoň 100 000 řádků. Ideálně by skupina řádků měla obsahovat 1 milion řádků.
- Reorganizaci nebo opětovné sestavení indexů byste měli automatizovat na základě frekvence a velikosti přírůstkového načítání. Jarní úklid je vždy užitečný.
- Pokud chcete oříznout skupinu řádků, myslete strategicky. Jak velké jsou otevřené skupiny řádků? Kolik dat očekáváte, že se bude v nadcházejících dnech načítat?
Další informace o indexech.
Dělení
Pokud máte velkou tabulku faktů (více než 1 miliarda řádků), můžete ji rozdělit do oddílů. V 99 % případů by klíč oddílu měl být založený na datu.
Výhody dělení můžete využívat u pracovních tabulek, které vyžadují ELT. Usnadňuje to správu životního cyklu dat. Dávejte pozor, abyste nepřeháněli oddíly faktů nebo pracovní tabulky, zejména u clusterovaného indexu columnstore.
Přečtěte si další informace o oddílech.
Přírůstkové načítání
Pokud se chystáte přírůstkově načítat data, nejprve se ujistěte, že pro načítání dat přidělujete větší třídy prostředků. To je zvlášť důležité při načítání do tabulek s clusterovanými indexy columnstore. Další podrobnosti najdete v tématu Třídy prostředků .
K automatizaci kanálů ELT do datového skladu doporučujeme použít PolyBase a ADF V2.
V případě velké dávky aktualizací historických dat zvažte použití CTAS k zápisu dat, která chcete zachovat v tabulce, místo použití příkazů INSERT, UPDATE a DELETE.
Udržujte statistiky
Statistiky je důležité aktualizovat, když dojde k významným změnám vašich dat. Pokud chcete zjistit, jestli nedošlo k významným změnám, podívejte se na statistiku aktualizace. Aktualizované statistiky optimalizují plány dotazů. Pokud zjistíte, že údržba vašich statistik trvá příliš dlouho, pečlivěji zvažte, které sloupce mají statistiku mít.
Můžete také definovat frekvenci aktualizací. Například můžete chtít každý den aktualizovat sloupce s datem, do kterých se můžou přidávat nové hodnoty. Nejvíce výhod získáte tak, že budete mít statistiky pro sloupce používané ve spojeních, sloupce používané v klauzuli WHERE a sloupce používané v příkazu GROUP BY.
Další informace o statistikách.
Třída prostředků
Skupiny prostředků se používají jako způsob přidělování paměti dotazům. Pokud ke zrychlení dotazů nebo načítání potřebujete více paměti, měli byste přidělit vyšší třídy prostředků. Na druhou stranu, použití větších tříd prostředků má vliv na souběžnost. Na to byste měli brát ohled před přesunem všech vašich uživatelů do větší třídy prostředků.
Pokud si všimnete, že dotazy trvají příliš dlouho, zkontrolujte, jestli vaši uživatelé nepoužívají velké třídy prostředků. Velké třídy prostředků využívají velké množství slotů souběžnosti. Můžou způsobit hromadění dalších dotazů ve frontě.
A konečně, použitím Gen2 vyhrazeného fondu SQL (dříve SQL DW) získá každá třída prostředků 2,5krát více paměti než Gen1.
Další informace o práci s třídami prostředků a souběžností.
Snížení nákladů
Klíčovou funkcí Azure Synapse je schopnost spravovat výpočetní prostředky. Když vyhrazený fond SQL (dříve SQL DW) nepoužíváte, můžete ho pozastavit, což zastaví fakturaci výpočetních prostředků. Prostředky můžete škálovat s ohledem na své požadavky na výkon. K pozastavení můžete použít Azure Portal nebo PowerShell. Ke škálování použijte Azure Portal, PowerShell, T-SQL nebo rozhraní REST API.
Automatické škálování teď můžete provádět kdykoli díky Azure Functions:
Optimalizace výkonu architektury
Služby SQL Database a Azure Analysis Services doporučujeme zvážit v hvězdicovité architektuře. Toto řešení může zajistit izolaci úloh mezi různými skupinami uživatelů a zároveň využívat pokročilé funkce zabezpečení ve službách SQL Database a Azure Analysis Services. Tímto způsobem můžete uživatelům poskytnout neomezenou souběžnost.
Přečtěte si další informace o typických architekturách, které využívají vyhrazený fond SQL (dříve SQL DW) v Azure Synapse Analytics.
Nasaďte paprsky v databázích SQL jedním kliknutím z vyhrazeného fondu SQL (dříve SQL Dw):