Nastavení chování ve frontě, velikosti a škálování skladu SQL
Tento článek vysvětluje chování služby SQL Warehouse při změně velikosti, řazení front a automatického škálování clusteru.
Přehled rozměrů
Sklady SQL jsou dostupné v bezserverových, pro a klasických typech, které mají různé funkce a optimalizace výkonu, které můžou ovlivnit výkon dotazů ve vašem skladu. Podívejte se na typy skladů SQL. Databricks doporučuje používat bezserverové sklady SQL, pokud jsou k dispozici.
U libovolného typu skladu zvolíte velikost clusteru pro své výpočetní prostředky. Optimalizace velikosti služby Databricks SQL Warehouse zahrnuje více než jen zvážení objemu dat nebo počtu uživatelů. Složitost dotazů a počet souběžných dotazů jsou také klíčovými faktory výkonu.
Databricks SQL sklady využívají dynamickou souběžnost ke zvládnutí těchto požadavků. Na rozdíl od statických skladů kapacity databricks SQL upravuje výpočetní prostředky v reálném čase za účelem správy souběžných zatížení a maximalizace propustnosti. Každá kategorie velikosti skladu má pevnou výpočetní kapacitu na jednotku, ale systém škáluje počet prostředků tak, aby vyhovoval různým požadavkům.
Velikosti clusterů pro databázové sklady SQL
Tabulka v této části mapuje velikosti clusterů SQL Warehouse na velikost ovladače clusteru Azure Databricks a počty pracovních procesů. Velikost ovladače se vztahuje pouze na profesionální a klasické sklady SQL.
Poznámka:
V případě bezserverových SQL skladišť mohou velikosti clusterů v některých případech využívat různé typy instancí než ty, které jsou uvedené v dokumentaci pro profesionální a klasická SQL skladiště pro ekvivalentní velikost clusteru. Obecně platí, že poměr cen a výkonu velikostí clusterů pro bezserverové služby SQL Warehouse je podobný poměru pro profesionální a klasické sql warehouses.
Velikost clusteru | Typ instance pro ovladač (platí jenom pro pro a klasické sql warehouses) | Počet pracovních procesů |
---|---|---|
2X-small | Standard_E8ds_v4 | 1 x Standard_E8ds_v4 |
X-Small | Standard_E8ds_v4 | 2 x Standard_E8ds_v4 |
Malá | Standard_E16ds_v4 | 4 x Standard_E8ds_v4 |
Střední | Standard_E32ds_v4 | 8 x Standard_E8ds_v4 |
Velká | Standard_E32ds_v4 | 16 x Standard_E8ds_v4 |
X -Large | Standard_E64ds_v4 | 32 x Standard_E8ds_v4 |
2X -Large | Standard_E64ds_v4 | 64 x Standard_E8ds_v4 |
3X -Large | Standard_E64ds_v4 | 128 x Standard_E8ds_v4 |
4X -Large | Standard_E64ds_v4 | 256 x Standard_E8ds_v4 |
Velikost instance všech pracovních procesů je Standard_E8ds_v4.
Každý ovladač a pracovní proces mají připojené osm 128 GB spravovaných disků LRS úrovně Standard. Připojené disky se účtují každou hodinu.
Požadovaná kvóta virtuálních procesorů Azure pro služby Classic a Pro SQL Warehouse
Pokud chcete spustit klasický nebo pro SQL Warehouse, musíte mít odpovídající kvótu virtuálních procesorů Azure pro Standard_E8ds_v4 instance ve vašem účtu Azure. Pomocí následujících pokynů určete požadovanou kvótu vCPU:
Pokud máte jenom jeden nebo dva sklady SQL, ověřte, že máte k dispozici 8 virtuálních procesorů Azure pro každé jádro v clusteru. Tím zajistíte, že máte odpovídající virtuální procesor Azure, abyste umožnili opětovné zřizování vašeho skladu, což se děje zhruba každých 24 hodin. Pokud vaše služby SQL Warehouse používají automatické škálování nebo vyrovnávání zatížení s více clustery, může být potřeba násobitel zvýšit.
- S rostoucím počtem skladů SQL povolte pro každé jádro v clusteru 4 až 8 virtuálních procesorů Azure. Databricks doporučuje začít větším počtem a monitorováním stability.
- Virtuální procesory Azure používané službami SQL Warehouse jsou kromě virtuálních procesorů Azure používaných clustery používanými Data Science & Engineering nebo jinými úlohami než Databricks.
Pokud chcete požádat o další kvótu virtuálních procesorů Azure, přečtěte si téma Standardní kvóta: Zvýšení limitů podle řad virtuálních počítačů v dokumentaci k Azure.
Poznámka:
Informace v této tabulce se mohou lišit v závislosti na dostupnosti produktu nebo oblasti a typu pracovního prostoru.
Zařadování do fronty a automatické škálování pro profesionály a klasické sql warehouse
Azure Databricks omezuje počet dotazů na cluster přiřazený ke službě SQL Warehouse na základě nákladů na výpočet výsledků. Škálování clusterů na sklad vychází z propustnosti dotazů, rychlosti příchozích dotazů a velikosti fronty. Databricks doporučuje cluster pro každých 10 souběžných dotazů. Maximální počet dotazů ve frontě pro všechny typy SQL Warehouse je 1 000.
Azure Databricks přidává clustery na základě času, který by trvalo zpracování všech aktuálně spuštěných dotazů, všech dotazů ve frontě a příchozích dotazů očekávaných během následujících dvou minut.
- Pokud je méně než 2 minuty, nezvýšujte škálování.
- Pokud 2 až 6 minut, přidejte 1 cluster.
- Pokud 6 až 12 minut, přidejte 2 clustery.
- Pokud 12 až 22 minut, přidejte 3 clustery.
V opačném případě Azure Databricks přidá 3 clustery plus 1 cluster pro každých dalších 15 minut očekávaného zatížení dotazů.
Kromě toho se sklad vždy škáluje, pokud dotaz čeká na 5 minut ve frontě.
Pokud je zatížení nízké po dobu 15 minut, Azure Databricks snižuje škálování služby SQL Warehouse. Udržuje dostatek clusterů pro zvládnutí zatížení ve špičce za posledních 15 minut. Pokud například zatížení ve špičce bylo 25 souběžných dotazů, Azure Databricks uchovává 3 clustery.
Automatické škálování bez serveru a řazení dotazů do front
Inteligentní správa úloh (IWM) je sada funkcí, které vylepšují schopnost bezserverových skladů SQL zpracovávat velký počet dotazů rychle a nákladově efektivně. Dynamicky spravuje úlohy pomocí modelů strojového učení k predikci požadavků na prostředky příchozích dotazů při monitorování dostupné výpočetní kapacity skladu v reálném čase. Sledování těchto a dalších signálů v skladu umožňuje IWM reagovat na změny požadavků na úlohy.
Tato dynamická správa umožňuje IWM provádět následující akce:
- Rychle navyšte kapacitu výpočetních prostředků, abyste zachovali nízkou latenci.
- Poskytněte možnost připustit dotazy rychlostí blíže k omezení hardwaru.
- Pokud je poptávka nízká, můžete rychle snížit škálování, abyste minimalizovali náklady.
Když do skladu dorazí dotaz, IWM předpovídá své náklady. IWM současně monitoruje dostupnou výpočetní kapacitu skladu v reálném čase. V dalším kroku pomocí modelů strojového učení IWM předpovídá, jestli má příchozí dotaz potřebné výpočetní prostředky dostupné pro stávající výpočetní prostředky. Pokud nemá potřebné výpočetní prostředky, přidá se dotaz do fronty. Pokud má potřebné výpočetní prostředky, spustí se dotaz okamžitě.
IWM monitoruje frontu v reálném čase. Pokud se fronta dostatečně rychle nezmenšuje, automatické škálování automaticky zřídí více výpočetních prostředků. Po přidání nové kapacity jsou dotazy zařazené do fronty do nových výpočetních prostředků. S bezserverovými sklady SQL je možné rychle přidávat nové výpočetní prostředky. Maximální počet dotazů ve frontě pro všechny typy SQL Warehouse je 1 000.
Určení velikosti bezserverového SQL Warehouse
Začněte s větší velikostí pro bezserverový SQL warehouse, než si myslíte, že budete potřebovat, a potom během testování zmenšujte velikost. Nezačínejte s malou velikostí bezserverového SQL skladiště a postupně zvětšujte. Obecně platí, že začněte s jedním bezserverovým sql warehousem a spoléháte na Azure Databricks na správnou velikost pomocí bezserverových clusterů, stanovení priorit úloh a rychlého čtení dat. Viz Bezserverové automatické škálování a řazení dotazů do front.
- Snížení latence dotazů pro daný bezserverový SQL Warehouse:
- Pokud dotazy přetékají na disk, zvětšete velikost trička.
- Pokud jsou dotazy vysoce paralelizovatelné, zvyšte velikost trička.
- Pokud současně spouštíte více dotazů, přidejte další clustery pro automatické škálování.
- Chcete-li snížit náklady, zkuste zmenšit velikost, aniž byste ukládali na disk nebo výrazně zvyšovali latenci.
Nástroje pro monitorování a vyhodnocení výkonu
K usnadnění správné velikosti SQL Warehouse použijte následující nástroje:
- Stránka monitorování: Zkontrolujte počet dotazů ve špičce. Pokud je špička ve frontě běžně vyšší než jedna, přidejte clustery. Maximální počet dotazů ve frontě pro všechny typy SQL Warehouse je 1 000. Viz Monitorování služby SQL Warehouse.
- Historie dotazů. Viz historie dotazů.
- Profily dotazů (hledejte bajty přetékané na disk nad 1). Viz profil dotazu.