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.

Určení velikosti bezserverového SQL Warehouse

Vždy začněte větší velikostí trička pro bezserverový SQL Warehouse, než si myslíte, že budete potřebovat a zmenšit při testování. Nezačínejte malou velikostí trička pro bezserverový SQL Warehouse a jděte nahoru. 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í.
  • Pokud chcete snížit náklady, zkuste snížit velikost trička bez přelití na disk nebo výrazně zvýšit latenci.
  • Pokud chcete pomoct s správnou velikostí bezserverového SQL Warehouse, použijte následující nástroje:
    • Stránka monitorování: Podívejte se na 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.

Poznámka:

V případě bezserverových skladů SQL můžou velikosti clusterů v některých případech používat různé typy instancí než ty, které jsou uvedené v dokumentaci pro profesionální a klasické sql warehouse 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.

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ě. Díky funkcím predikce využívajících AI můžete analyzovat příchozí dotazy a určit nejrychlejší a efektivnější vstupně-výstupní operace (prediktivní vstupně-výstupní operace), díky kterým IWM zajistí, aby úlohy měly správný počet prostředků. Hlavní rozdíl spočívá v možnostech umělé inteligence v Databricks SQL, aby reagoval dynamicky na požadavky úloh, a ne na statické prahové hodnoty.

Tato rychlost odezvy zajišťuje:

  • Rychlé škálování pro získání většího výpočetního výkonu v případě potřeby pro zachování nízké latence
  • Připustit dotaz blíže k omezení hardwaru.
  • Rychlé snížení kapacity, které minimalizuje náklady, když je poptávka nízká a poskytuje konzistentní výkon s optimalizovanými náklady a prostředky.

Když do skladu dorazí dotaz, IWM předpovídá náklady na dotaz. 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, začne se dotaz okamžitě spouštějí.

IWM monitoruje frontu přibližně každých 10 sekund. Pokud se fronta dostatečně rychle nezmenšuje, automatické škálování se spustí, aby rychle pořizovat více výpočetních prostředků. Po přidání nové kapacity jsou dotazy zařazené do fronty do nových clusterů. S bezserverovými službami SQL Warehouse je možné rychle přidávat nové clustery a současně je možné vytvořit více než jeden cluster. Maximální počet dotazů ve frontě pro všechny typy SQL Warehouse je 1 000.

Velikosti clusterů pro pro a klasické SQL Warehouse

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.

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, ujistěte se, ž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 mohli zohlednit opětovné zřizování vašeho skladu, ke kterému dochází přibližně každých 24 hodin. Pokud vaše sklady SQL používají automatické škálování nebo vyrovnávání zatížení s více clustery, budete možná muset zvýšit násobitel.
  • 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 Datová Věda a inženýrstvím 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. Azure 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.

Řazení dotazů do front pro pro a klasické sql warehouse

Azure Databricks zařadí dotazy, když všechny clustery přiřazené k skladu provádějí dotazy v plné kapacitě nebo když je sklad ve STARTING stavu. Maximální počet dotazů ve frontě pro všechny typy SQL Warehouse je 1 000.

Dotazy na metadata (například DESCRIBE <table>) a změny stavu (například SET) se nikdy nezařadí do fronty, pokud není sklad ve STARTING stavu.