Sdílet prostřednictvím


Co je architektura Azure Synapse SQL?

Tento článek popisuje komponenty architektury Synapse SQL. Vysvětluje také, jak Azure Synapse SQL kombinuje funkce distribuovaného zpracování dotazů se službou Azure Storage za účelem dosažení vysokého výkonu a škálovatelnosti.

Komponenty architektury Synapse SQL

Synapse SQL používá architekturu škálování na více instancí k distribuci výpočetního zpracování dat napříč několika uzly. Výpočetní funkce jsou oddělené od úložiště, což umožňuje jejich škálování nezávisle na datech v systému.

Pro vyhrazený fond SQL je jednotka škálování abstrakcí výpočetního výkonu, který se označuje jako jednotka datového skladu.

U bezserverového fondu SQL se škálování provádí automaticky, aby vyhovovalo požadavkům na prostředky dotazů. V průběhu času se topologie mění přidáním, odebráním uzlů nebo převzetím služeb při selhání se přizpůsobí změnám a zajistí, aby dotaz obsahoval dostatek prostředků a úspěšně se dokončil. Následující obrázek například ukazuje bezserverový fond SQL, který k provedení dotazu používá čtyři výpočetní uzly.

Snímek obrazovky architektury Synapse SQL

Synapse SQL používá architekturu založenou na uzlech. Aplikace se připojují a vydávají příkazy T-SQL k řídicímu uzlu, což je jediný vstupní bod pro Synapse SQL.

Řídicí uzel Azure Synapse SQL využívá distribuovaný dotazovací modul k optimalizaci dotazů pro paralelní zpracování a následně předává operace výpočetním uzlům, aby fungovaly paralelně.

Řídicí uzel bezserverového fondu SQL využívá modul DQP (Distributed Query Processing) k optimalizaci a orchestraci distribuovaného spouštění uživatelského dotazu rozdělením na menší dotazy, které se budou spouštět na výpočetních uzlech. Každý malý dotaz se nazývá úkol a představuje distribuovanou jednotku spouštění. Čte soubory z úložiště, spojuje výsledky z jiných úloh, skupin nebo objednávek načtených z jiných úloh.

Výpočetní uzly ukládají veškerá data uživatelů ve službě Azure Storage a spouští paralelní dotazy. DMS (Data Movement Service) je interní služba na úrovni systému, která podle potřeby přesunuje data mezi uzly, aby bylo možné spouštět dotazy paralelně a získat přesné výsledky.

Díky oddělenému úložišti a výpočetním prostředkům může při použití Synapse SQL těžit z nezávislé velikosti výpočetního výkonu bez ohledu na potřeby úložiště. U bezserverového škálování fondu SQL se provádí automaticky, zatímco u vyhrazeného fondu SQL je možné:

  • Zvětšete nebo zmenšete výpočetní výkon ve vyhrazeném fondu SQL bez přesunu dat.
  • pozastavit výpočetní kapacitu a zachovat neporušená data, zatímco platíte pouze za úložiště,
  • obnovit výpočetní kapacitu za provozu.

Azure Storage

Synapse SQL používá Azure Storage k zabezpečení vašich uživatelských dat. Vzhledem k tomu, že jsou vaše data uložená a spravovaná službou Azure Storage, platí se za využití úložiště samostatné poplatky.

Bezserverový fond SQL umožňuje dotazovat se na soubory Data Lake, zatímco vyhrazený fond SQL umožňuje dotazovat a ingestovat data ze souborů Data Lake. Když se data ingestují do vyhrazeného fondu SQL, data se horizontálně rozdělí do distribucí , aby se optimalizoval výkon systému. Při definování tabulky můžete zvolit, který model horizontálního dělení se má pro distribuci dat použít. Podporují se tyto vzory horizontálního dělení:

  • Hodnoty hash
  • Kruhové dotazování
  • Replikace

Řídicí uzel

Mozkem této architektury je řídicí uzel. Jde o front-end, který komunikuje se všemi aplikacemi a připojeními.

V Synapse SQL běží distribuovaný dotazovací modul na řídicím uzlu za účelem optimalizace a koordinace paralelních dotazů. Když odešlete dotaz T-SQL do vyhrazeného fondu SQL, řídicí uzel ho transformuje na dotazy spuštěné paralelně pro každou distribuci.

V bezserverovém fondu SQL běží modul DQP na řídicím uzlu, aby optimalizoval a koordinoval distribuované spouštění uživatelských dotazů rozdělením na menší dotazy, které se spustí na výpočetních uzlech. Také přiřazuje sady souborů, které mají být zpracovány jednotlivými uzly.

Výpočetní uzly

Výpočetní uzly poskytují výpočetní výkon.

Ve vyhrazeném fondu SQL se distribuce mapují na výpočetní uzly pro zpracování. Když platíte za další výpočetní prostředky, fond přemapuje distribuce na dostupné výpočetní uzly. Počet výpočetních uzlů se pohybuje od 1 do 60 a je určen úrovní služby pro vyhrazený fond SQL. Každý výpočetní uzel má ID uzlu, které je viditelné v systémových zobrazeních. ID výpočetního uzlu můžete zobrazit vyhledáním sloupce node_id v systémových zobrazeních, jejichž názvy začínají sys.pdw_nodes. Seznam těchto systémových zobrazení najdete v tématu Systémová zobrazení Synapse SQL.

V bezserverovém fondu SQL je každému výpočetnímu uzlu přiřazen úkol a sada souborů, na nichž se má úloha spouštět. Úloha je distribuovaná jednotka spouštění dotazů, která je ve skutečnosti součástí odeslaného uživatele dotazu. Automatické škálování je účinné, aby se zajistilo, že k provedení uživatelského dotazu se využívá dostatek výpočetních uzlů.

Data Movement Service

Služba pro přesun dat (DMS) je technologie přenosu dat ve vyhrazeném fondu SQL, která koordinuje přesun dat mezi výpočetními uzly. Některé dotazy vyžadují přesun dat, aby paralelní dotazy vracely přesné výsledky. Když se vyžaduje přesun dat, DMS zajistí, aby se správná data dostala do správného umístění.

Distribuce

Distribuce je základní jednotka úložiště a zpracování pro paralelní dotazy, které běží na distribuovaných datech ve vyhrazeném fondu SQL. Když vyhrazený fond SQL spustí dotaz, rozdělí se práce na 60 menších dotazů, které běží paralelně.

Každý z 60 menších dotazů běží na jedné z distribucí dat. Každý výpočetní uzel spravuje jednu nebo více distribucí 60. Vyhrazený fond SQL s maximálními výpočetními prostředky má jednu distribuci na výpočetní uzel. Vyhrazený fond SQL s minimálními výpočetními prostředky má všechny distribuce na jednom výpočetním uzlu.

Distribuované zatřiďovací tabulky (distribuce hodnot hash)

Distribuovaná zatřiďovací tabulka (distribuce hodnot hash) může přinést nejvyšší výkon dotazů pro propojení a agregaci u velkých tabulek.

K horizontálnímu dělení dat do tabulky distribuované hodnotou hash používá vyhrazený fond SQL funkci hash k deterministicky přiřazování každého řádku k jedné distribuci. V definici tabulky je jeden ze sloupců určený jako sloupec distribuce. Funkce hash používá hodnoty ve sloupci distribuce k přiřazení jednotlivých řádků k distribuci.

Následující diagram znázorňuje, jak se úplná (nedistribuovaná tabulka) uloží jako tabulka distribuovaná hodnotou hash.

Snímek obrazovky s tabulkou uloženou jako distribuce hodnot hash

  • Každý řádek patří do jedné distribuce.
  • Deterministický hashovací algoritmus přiřadí každý řádek k jedné distribuci.
  • Počet řádků tabulky na rozdělení se liší podle různých velikostí tabulek.

Při výběru distribučního sloupce existují důležité informace o výkonu, například jedinečnost, nerovnoměrná distribuce dat a typy dotazů, které běží v systému.

Distribuované tabulky s kruhovým dotazováním

Tabulka s kruhovým dotazem je nejjednodušší tabulka, která slouží k vytvoření a zajištění rychlého výkonu při použití jako pracovní tabulky pro načtení.

Distribuovaná tabulka s kruhovým dotazováním distribuuje data v tabulce rovnoměrně bez jakékoli další optimalizace. Rozdělení se nejprve vybere náhodně a pak se vyrovnávací paměti řádků přiřadí k rozdělením postupně. Je rychlé načíst data do tabulky s kruhovým dotazem, ale výkon dotazů může být často lepší s distribuovanými tabulkami hash. Spojení u tabulek s kruhovým dotazováním vyžadují přemístit data, která zabíjejí delší dobu.

Replikované tabulky

Replikovaná tabulka poskytuje nejrychlejší výkon dotazů u malých tabulek.

Tabulka, která se replikuje, ukládá do mezipaměti úplnou kopii tabulky na každém výpočetním uzlu. Proto replikace tabulky eliminuje potřebu přenášet data mezi výpočetními uzly před spojením nebo agregací. Replikované tabulky jsou nejlépe využitelné u malých tabulek. Vyžaduje se dodatečné úložiště a při zápisu dat se účtují další režijní náklady, což z velkých tabulek dělá nepraktické.

Následující diagram znázorňuje replikovanou tabulku, která je uložená v mezipaměti první distribuce na každém výpočetním uzlu.

Snímek obrazovky replikované tabulky uložené v mezipaměti první distribuce na každém výpočetním uzlu

Teď, když víte něco o Synapse SQL, zjistěte, jak rychle vytvořit vyhrazený fond SQL a načíst ukázková data. Nebo začněte používat bezserverový fond SQL. Pokud s Azure začínáte, může se vám hodit glosář Azure, když narazíte na novou terminologii.