Playbook Synapse POC: Datové sklady s vyhrazeným fondem SQL ve službě Azure Synapse Analytics
Tento článek představuje základní metodologii pro přípravu a spuštění efektivního projektu testování konceptu (POC) služby Azure Synapse Analytics pro vyhrazený fond SQL.
Poznámka:
Tento článek je součástí série článků o testování konceptu v Azure Synapse. Přehled série najdete v playbooku Testování konceptu v Azure Synapse.
Tip
Pokud s vyhrazenými fondy SQL začínáte, doporučujeme projít si studijní program Práce s datovými sklady pomocí Azure Synapse Analytics .
Příprava na POC
Před rozhodováním o cílech Azure Synapse POC doporučujeme, abyste si nejprve přečetli článek o architektuře Azure Synapse SQL, abyste se seznámili s tím, jak vyhrazený fond SQL odděluje výpočetní prostředky a úložiště, abyste zajistili špičkový výkon.
Identifikace sponzorů a potenciálních blokujících
Jakmile azure Synapse znáte, je čas se ujistit, že vaše POC má potřebnou podporu a nenarazí na žádné překážky. Měli byste:
- Identifikujte všechna omezení nebo zásady, které má vaše organizace ohledně přesunu dat do cloudu a jejich ukládání do cloudu.
- Identifikujte projekt datového skladu, který je založený na vedení a firmě.
- Ověřte, že je vaše úloha vhodná pro Azure Synapse. Další informace najdete v tématu Architektura vyhrazeného fondu SQL ve službě Azure Synapse Analytics.
Nastavení časové osy
POC je vymezené, časově omezené cvičení s konkrétními měřitelnými cíli a metrikami, které definují úspěch. V ideálním případě by měla mít nějaký základ v obchodní realitě, aby výsledky byly smysluplné.
Poc mají nejlepší výsledek, když jsou v časovém poli. Funkce Timeboxing přidělí určité aktivitě pevnou a maximální časovou jednotku. V našem prostředí poskytuje dva týdny dostatek času na dokončení práce bez zátěže příliš mnoha případů použití nebo složitých matic testů. Při práci v rámci tohoto pevného časového období doporučujeme postupovat podle této časové osy:
- Načítání dat: Tři dny nebo méně
- Dotazování: pět dnů nebo méně
- Testy přidané hodnoty: dva dny nebo méně
Tady je několik tipů:
- Proveďte realistické odhady času, který budete potřebovat k dokončení úkolů v plánu.
- Mějte na paměti, že doba dokončení konceptu bude souviset s velikostí datové sady, počtem databázových objektů (tabulek, zobrazení a uložených procedur), složitostí databázových objektů a počtem rozhraní, která otestujete.
- Pokud odhadnete, že poC poběží déle než čtyři týdny, zvažte omezení rozsahu, aby se zaměřil pouze na nejdůležitější cíle.
- Před zahájením POC získejte podporu od všech potenciálních zdrojů a sponzorů časové osy.
Jakmile zjistíte, že neexistují žádné okamžité překážky a nastavili jste časovou osu, můžete nastavit rozsah architektury vysoké úrovně.
Vytvoření architektury s vysokým oborem
Vysoká budoucí architektura pravděpodobně obsahuje mnoho zdrojů dat a konzumentů dat, komponent pro velké objemy dat a možná i uživatele strojového učení a dat AI. Pokud chcete zachovat dosažitelné cíle POC (a v mezích nastavené časové osy), rozhodněte se, které z těchto součástí budou součástí POC a které budou vyloučeny.
Pokud už Používáte Azure, identifikujte také následující:
- Všechny existující prostředky Azure, které můžete použít během POC. Prostředky můžou například zahrnovat ID Microsoft Entra nebo Azure ExpressRoute.
- Jaké oblasti Azure vaše organizace preferuje.
- Předplatné, které můžete použít pro neprodukční práci POC.
- Propustnost síťového připojení k Azure.
Důležité
Nezapomeňte zkontrolovat, že vaše POC může využívat některé z těchto propustností, aniž by to mělo nepříznivý vliv na produkční řešení.
Použití možností migrace
Pokud migrujete ze starší verze systému datového skladu do Azure Synapse, tady jsou některé otázky, které byste měli zvážit:
- Migrujete a chcete co nejvíce změnit stávající procesy extrakce, transformace a načítání (ETL) a spotřebu datového skladu?
- Migrujete, ale chcete provést nějaká rozsáhlá vylepšení?
- Vytváříte zcela nové prostředí pro analýzu dat (někdy označované jako projekt zeleného pole)?
Dále je třeba zvážit své body bolesti.
Identifikace aktuálních bodů bolesti
Váš POC by měl obsahovat případy použití k prokázání potenciálních řešení pro řešení aktuálních bodů bolesti. Je potřeba zodpovědět některé otázky:
- Jaké mezery v aktuální implementaci očekáváte, že se Azure Synapse vyplní?
- Jaké nové obchodní potřeby potřebujete k podpoře?
- Jaké smlouvy o úrovni služeb (SLA) potřebujete splnit?
- Jaké budou úlohy (například ETL, dávkové dotazy, analýzy, dotazy generování sestav nebo interaktivní dotazy)?
Dále je potřeba nastavit kritéria úspěchu POC.
Nastavení kritérií úspěšnosti POC
Určete, proč provádíte poc, a nezapomeňte definovat jasné cíle. Je také důležité vědět, jaké výstupy chcete z poc a co s nimi plánujete dělat.
Mějte na paměti, že POC by mělo být krátké a zaměřené úsilí k rychlému prokázání nebo otestování omezené sady konceptů. Pokud máte dlouhý seznam položek, které chcete prokázat, možná je budete chtít ponořit do více poc. Pocs můžou mít mezi nimi brány, abyste mohli určit, jestli se má přejít k dalšímu POC.
Tady je několik příkladů cílů POC:
- Potřebujeme vědět, že výkon dotazů pro naše velké složité dotazy generování sestav bude splňovat nové smlouvy SLA.
- Potřebujeme znát výkon dotazů pro naše interaktivní uživatele.
- Potřebujeme vědět, jestli jsou naše stávající procesy ETL vhodné a kde je potřeba provést vylepšení.
- Potřebujeme vědět, jestli můžeme zkrátit moduly runtime ETL a o kolik.
- Potřebujeme vědět, že Služba Synapse Analytics má dostatek možností zabezpečení, aby byla naše data dostatečně zabezpečená.
Dále je potřeba vytvořit testovací plán.
Vytvoření testovacího plánu
Pomocí svých cílů identifikujte konkrétní testy, které se mají spouštět, aby se tyto cíle podporovaly a poskytovaly identifikované výstupy. Je důležité mít jistotu, že máte alespoň jeden test pro každý cíl a očekávaný výstup. Identifikujte konkrétní dotazy, sestavy, ETL a další procesy, které spustíte, abyste mohli poskytovat kvantifikovatelné výsledky.
Zpřesněte testy přidáním několika testovacích scénářů, abyste objasnili všechny dotazy na strukturu tabulek, ke kterým dochází.
Dobré plánování obvykle definuje efektivní provádění POC. Ujistěte se, že všichni účastníci souhlasí s písemným testovacím plánem, který spojuje každý cíl POC se sadou jasně uvedených testovacích případů a měření úspěšnosti.
Většina testovacích plánů se pohybuje kolem výkonu a očekávaného uživatelského prostředí. Následuje příklad testovacího plánu. Je důležité přizpůsobit testovací plán tak, aby splňoval vaše obchodní požadavky. Jasně definovat, co testujete, bude platit dividendy později v tomto procesu.
Cíl | Test | Očekávané výsledky |
---|---|---|
Potřebujeme vědět, že výkon dotazů pro naše velké komplexní dotazy pro vytváření sestav bude splňovat nové smlouvy SLA. | - Sekvenční test složitých dotazů – Test souběžnosti složitých dotazů na uvedené smlouvy SLA |
– Dotazy A, B a C se dokončily za 10, 13 a 21 sekund. – S 10 souběžnými uživateli, dotazy A, B a C se dokončily v průměru za 11, 15 a 23 sekund |
Potřebujeme znát výkon dotazů pro naše interaktivní uživatele. | – Test souběžnosti vybraných dotazů na očekávané úrovni souběžnosti 50 uživatelů. – Spuštění předchozího dotazu s ukládáním sady výsledků do mezipaměti |
– U 50 souběžných uživatelů se očekává, že průměrná doba provádění bude pod 10 sekund a bez ukládání do mezipaměti sady výsledků. – U 50 souběžných uživatelů se očekává, že průměrná doba provádění bude kratší než pět sekund s ukládáním do mezipaměti sady výsledků. |
Potřebujeme vědět, jestli se naše stávající procesy ETL můžou spouštět v rámci smlouvy SLA. | - Spuštění jednoho nebo dvou procesů ETL pro napodobování produkčních zatížení | – Přírůstkové načítání do základní tabulky faktů se musí dokončit za méně než 20 minut (včetně přípravného a čištění dat). - Zpracování dimenzí musí trvat méně než pět minut. |
Potřebujeme vědět, že datový sklad má dostatek možností zabezpečení pro zabezpečení dat. | – Kontrola a povolení zabezpečení sítě (virtuální síť a privátní koncové body), řízení přístupu (zabezpečení na úrovni řádků, dynamické maskování dat) | - Prokázat, že data nikdy neopustí našeho tenanta. – Zajistěte, aby byl obsah zákazníka snadno zabezpečený. |
Dále je potřeba identifikovat a ověřit datovou sadu POC.
Identifikace a ověření datové sady POC
Pomocí vymezených testů teď můžete identifikovat datovou sadu potřebnou ke spuštění těchto testů v Azure Synapse. Prohlédněte si datovou sadu s ohledem na následující skutečnosti:
- Ověřte, že datová sada adekvátně představuje vaši produkční datovou sadu z hlediska obsahu, složitosti a škálování.
- Nepoužívejte datovou sadu, která je příliš malá (menší než 1 TB), protože možná nedosáhnete reprezentativního výkonu.
- Nepoužívejte datovou sadu, která je příliš velká, protože poc není určená k dokončení úplné migrace dat.
- Určete způsob distribuce, možnost indexování a dělení pro každou tabulku. Pokud máte nějaké dotazy týkající se distribuce, indexování nebo dělení, přidejte do poc testy a odpovězte na ně. Mějte na paměti, že u některých tabulek můžete chtít otestovat více než jednu možnost distribuce nebo možnost indexování.
- V případě přesunu datové sady POC do cloudu se obraťte na vlastníky firmy.
- Identifikujte všechny obavy týkající se zabezpečení nebo ochrany osobních údajů.
Důležité
Před přesunem jakýchkoli dat do cloudu se ujistěte, že u vlastníků firmy zkontrolujete případné překážky. Identifikujte všechny obavy ohledně zabezpečení nebo ochrany osobních údajů nebo jakékoli potřeby obfuskace dat, které by se měly provést před přesunem dat do cloudu.
V dalším kroku je potřeba sestavit tým odborníků.
Sestavení týmu
Identifikujte členy týmu a jejich závazek podporovat vaši poc. Členové týmu by měli zahrnovat:
- Projektový manažer pro spuštění projektu POC.
- Obchodní zástupce, který dohlíží na požadavky a výsledky.
- Odborník na data aplikací ke zdroji dat pro datovou sadu POC.
- Odborník na Azure Synapse.
- Odborný poradce pro optimalizaci testů POC.
- Každá osoba, která bude vyžadována pro konkrétní úkoly projektu POC, ale která se nevyžaduje po celou dobu trvání. Mezi tyto podpůrné prostředky patří správci sítě, správci Azure nebo správci Microsoft Entra.
Tip
Doporučujeme zapojit odborníka, který vám pomůže s poc. Partnerská komunita Microsoftu má globální dostupnost expertních konzultantů, kteří vám můžou pomoct vyhodnotit, vyhodnotit nebo implementovat Azure Synapse.
Teď, když jste plně připravení, je čas uvést svůj POC do praxe.
Vyzkoušejte si POC.
Je důležité mít na paměti následující skutečnosti:
- Implementujte projekt POC s disciplínou a kategorií jakéhokoli produkčního projektu.
- Spusťte POC podle plánu.
- Mějte zavedený proces žádosti o změnu, abyste zabránili rozšíření nebo změně rozsahu POC.
Před spuštěním testů je potřeba nastavit testovací prostředí. Zahrnuje čtyři fáze:
- Instalační program
- Načítání dat
- Dotazování
- Testy přidané hodnoty
Instalační program
Poc v Azure Synapse můžete nastavit takto:
- V tomto rychlém startu můžete zřídit pracovní prostor Synapse a nastavit úložiště a oprávnění podle testovacího plánu POC.
- V tomto rychlém startu můžete do pracovního prostoru Synapse přidat vyhrazený fond SQL.
- Nastavte sítě a zabezpečení podle vašich požadavků.
- Udělte členům týmu POC odpovídající přístup. Projděte si tento článek o ověřování a autorizaci pro přístup k vyhrazeným fondům SQL.
Tip
Doporučujeme vyvíjet testování kódu a jednotek pomocí úrovně služby DW500c (nebo níže). Doporučujeme spouštět zátěžové a výkonnostní testy pomocí úrovně služby DW1000c (nebo vyšší). Výpočetní prostředky vyhrazeného fondu SQL můžete kdykoli pozastavit, abyste zastavili fakturaci výpočetních prostředků, což ušetří náklady.
Načítání dat
Jakmile nastavíte vyhrazený fond SQL, můžete k načtení dat použít tento postup:
- Načtěte data do služby Azure Blob Storage. Pro POC doporučujeme použít účet úložiště pro obecné účely verze 2 s místně redundantním úložištěm (LRS). I když existuje několik nástrojů pro migraci dat do služby Azure Blob Storage, nejjednodušší způsob je použít Průzkumník služby Azure Storage, který může kopírovat soubory do kontejneru úložiště.
- Načtěte data do vyhrazeného fondu SQL. Azure Synapse podporuje dvě metody načítání T-SQL: PolyBase a příkaz COPY . Pomocí aplikace SSMS se můžete připojit k vyhrazenému fondu SQL a použít některou z metod.
Při prvním načtení dat do vyhrazeného fondu SQL je potřeba zvážit, jaký model distribuce a možnost indexu použít. I když vyhrazený fond SQL podporuje celou řadu obojího, je osvědčeným postupem spoléhat se na výchozí nastavení. Výchozí nastavení používají distribuci kruhového dotazování a clusterovaný index columnstore. V případě potřeby můžete tato nastavení později upravit, což je popsáno dále v tomto článku.
Následující příklad ukazuje metodu LOAD COPY:
--Note when specifying the column list, input field numbers start from 1
COPY INTO
test_1 (Col_1 default 'myStringDefault' 1, Col_2 default 1 3)
FROM
'https://myaccount.blob.core.windows.net/myblobcontainer/folder1/'
WITH (
FILE_TYPE = 'CSV',
CREDENTIAL = (IDENTITY = 'Storage Account Key' SECRET = '<Your_Account_Key>'),
FIELDQUOTE = '"',
FIELDTERMINATOR = ',',
ROWTERMINATOR = '0x0A',
ENCODING = 'UTF8',
FIRSTROW = 2
);
Dotazování
Primárním účelem datového skladu je provádět analýzy, které vyžadují dotazování datového skladu. Většina poc začíná spuštěním malého počtu reprezentativních dotazů na datový sklad, a to nejprve postupně a současně. V testovacím plánu byste měli definovat oba přístupy.
Sekvenční testy dotazů
V SSMS je snadné spouštět sekvenční testy dotazů. Tyto testy je důležité spouštět pomocí uživatele s dostatečně velkou třídou prostředků. Třída prostředků je předem určený limit prostředků ve vyhrazeném fondu SQL, který řídí výpočetní prostředky a souběžnost spouštění dotazů. Pro jednoduché dotazy doporučujeme použít předem definovanou třídu prostředků staticrc20 . Pro složitější dotazy doporučujeme použít předem definovanou třídu prostředků staticrc40 .
Všimněte si, že následující první dotaz používá popisek dotazu k poskytnutí mechanismu pro sledování dotazu. Druhý dotaz používá sys.dm_pdw_exec_requests
zobrazení dynamické správy k vyhledávání podle popisku.
/* Use the OPTION(LABEL = '') Syntax to add a query label to track the query in DMVs */
SELECT TOP (1000)
*
FROM
[dbo].[Date]
OPTION (LABEL = 'Test1');
/* Use sys.dm_pdw_exec_requests to determine query execution duration (ms) */
SELECT
Total_elapsed_time AS [Elapsed_Time_ms],
[label]
FROM
sys.dm_pdw_exec_requests
WHERE
[label] = 'Test1';
Souběžné testy dotazů
Po záznamu výkonu sekvenčních dotazů pak můžete souběžně spouštět více dotazů. Tímto způsobem můžete simulovat úlohu business intelligence spuštěnou ve vyhrazeném fondu SQL. Nejjednodušší způsob, jak tento test spustit, je stáhnout nástroj pro zátěžové testování. Nejoblíbenější nástroj je Apache JMeter, což je opensourcový nástroj třetí strany.
Nástroj hlásí minimální, maximální a medián doby trvání dotazů pro danou úroveň souběžnosti. Předpokládejme například, že chcete simulovat úlohu business intelligence, která generuje 100 souběžných dotazů. JMeter můžete nastavit tak, aby spouštět tyto 100 souběžných dotazů ve smyčce a pak kontrolou provádění stabilního stavu. Můžete to udělat tak, že ukládání do mezipaměti sady výsledků zapnete nebo vypnete, aby se vyhodnotila vhodnost této funkce.
Nezapomeňte zdokumentovat výsledky. Tady je příklad některých výsledků:
Souběžnost | # Dotazy se spouštějí | DWU | Minimální doby trvání | Maximální doba trvání | Medián dob trvání |
---|---|---|---|---|---|
100 | 1 000 | 5 000 | 3 | 10 | 5 |
50 | 5 000 | 5 000 | 3 | 6 | 4 |
Smíšené testy úloh
Testování smíšených úloh je rozšíření souběžných testů dotazů. Přidáním procesu načítání dat do mixu úloh bude úloha lépe simulovat skutečnou produkční úlohu.
Optimalizace dat
V závislosti na úloze dotazů spuštěné v Azure Synapse možná budete muset optimalizovat distribuce a indexy datového skladu a znovu spustit testy. Další informace najdete v tématu Osvědčené postupy pro vyhrazené fondy SQL ve službě Azure Synapse Analytics.
Nejběžnější chyby, ke které dochází během instalace, jsou:
- Velké dotazy se spouštějí s příliš nízkou třídou prostředků.
- Jednotky DWU na úrovni vyhrazeného fondu SQL jsou pro úlohu příliš nízké.
- Velké tabulky vyžadují distribuci hodnot hash.
Pokud chcete zvýšit výkon dotazů, můžete:
- Vytvořte materializovaná zobrazení, která můžou zrychlit dotazy zahrnující běžné agregace.
- Replikujte tabulky, zejména pro malé tabulky dimenzí.
- Hash distribuuje velké tabulky faktů, které jsou spojené nebo agregované.
Testy přidané hodnoty
Po dokončení testování výkonu dotazů je vhodné otestovat konkrétní funkce a ověřit, že vyhovují vašim zamýšleným případům použití. Patří k nim:
- Zabezpečení na úrovni řádků
- Zabezpečení na úrovni sloupců
- Dynamické maskování dat
- Škálování uvnitř clusteru prostřednictvím izolace úloh
Nakonec je potřeba interpretovat výsledky POC.
Interpretace výsledků POC
Jakmile budete mít výsledky testů pro datový sklad, je důležité tato data interpretovat. Běžným přístupem, který můžete využít, je porovnat běhy z hlediska ceny a výkonu. Jednoduše řečeno, cena/výkon odebere rozdíly v ceně za DWU nebo hardware služby a poskytuje jeden srovnatelný počet pro každý test výkonnosti.
Tady je příklad:
Test | Doba trvání testu | DWU | $/hr pro DWU | Náklady na testování |
---|---|---|---|---|
Test 1 | 10 minut | 1000 | $12/h | $2 |
Test 2 | 30 min. | 500 | $6/h | $3 |
Tento příklad usnadňuje zobrazení, že test 1 na DWU1000 je nákladově efektivnější za 2 USD za testovací běh ve srovnání s $3 na testovací běh.
Poznámka:
Tuto metodologii můžete použít také k porovnání výsledků mezi dodavateli v POC.
Stručně řečeno, jakmile dokončíte všechny testy POC, jste připraveni vyhodnotit výsledky. Začněte vyhodnocením, jestli byly splněny cíle POC, a shromážděnými požadovanými výstupy. Poznamenejte si, kde se vyžaduje další testování, a další dotazy, které byly vyvolány.