Vlastné SQL pooly

Platí na: ✅ SQL analytics endpoint a sklad v Microsoft Fabric

Dôležité

Táto funkcia je ukážky.

Vlastné SQL pooly umožňujú administrátorom mať väčšiu kontrolu nad tým, ako sú backendové výpočtové zdroje prideľované do ich skladu a SQL analytického endpointu v pracovnom priestore.

Schéma SQL enginu s vlastnými SQL poolmi.

Fabric Data Warehouse poskytuje autonómne riadenie pracovnej záťaže, ktoré rozdeľuje výpočtové zdroje do interných "SQL poolov", ktoré škálujú nezávisle podľa dopytu.

Štandardne sú izolačné hranice príjem (typy bezSELECT príkazov) a spracovanie dotazov (SELECT príkazy). S vlastnými SQL poolmi môžu administrátori:

  • Zmeňte počet izolačných hraníc (pridajte viac vlastných SQL poolov).
  • Vytváranie vlastných klasifikácií pracovných záťaží špecifických pre názov aplikácie.
  • Kontrolovať alokáciu zdrojov v každom poole pomocou maximálneho percenta zdrojov.

Prípady použitia vlastných SQL poolov

Vlastné SQL pooly majú dva hlavné prípady použitia: ochranu pracovných záťaží pred konkurenciou zdrojov a ochranu pred obmedzením kapacity Fabric pri vysokej spotrebe.

Konkurenčné pracovné záťaže s autonómnymi workload poolmi

Tento scenár sa uplatňuje, keď sa odlišné pracovné záťaže súťažia o zdroje, čo spôsobuje, že kritické záťaže nedosahujú výkonnostné ciele.

Príklad scenára

  • Podniková reportová záťaž funguje suboptimálne, keď sa adhoc používateľské dotazy spúšťajú z SQL editora dotazov v Fabric portáli.

Odporúčaný prístup

  • Tieto pracovné záťaže rozdeľte do dvoch samostatných SQL poolov.
  • Prideliť väčšie percento zdrojov do fondu, ktorý slúži podnikovej reportovacej aplikácii, čím zabezpečíte, že viac zdrojov bude dostupných pre podnikovo kritickú aplikáciu.

Obmedzovanie kapacity v dôsledku vysokej spotreby

Tento scenár platí, keď vysoká spotreba kapacity Fabric spôsobuje obmedzovanie, ktoré ovplyvňuje celkový výkon skladu.

Príklad scenára

Odporúčaný prístup

  • Znížiť celkové percento zdrojov pridelené postihnutému skladu.
  • Sledujte, či táto zmena znižuje obmedzovanie dotazov a zlepšuje celkový výkon.

Rozdiely medzi autonómnym riadením záťaže a vlastnými SQL poolmi

Predmet Autonómne riadenie pracovnej záťaže Vlastné SQL pooly
Configuration Žiadne (hneď po vybalení) - Webové používateľské rozhranie
- API
Povolenia Nie je k dispozícii Správca pracovného priestoru
Scope Workspace – zahŕňa sklad aj SQL analytics endpoint Workspace – zahŕňa sklad aj SQL analytics endpoint
Klasifikačná metóda Typ príkazu (SELECT alebo iný) - Názov aplikácie
- Názov aplikácie regulárny výraz
Jednotka miery Nie je k dispozícii Percento z celkového počtu backendových uzlov
SQL pooly SELECT alebo iné Používateľom definované prideľovanie
Kapacita so prasknutou kapacitou Spravované Fabric (až 12x na SQL pool, celkovo 24x) Používateľom definované na základe percenta alokovaných backendových uzlov. Celkové množstvo zdrojov je stále 24x.

Kapacita so prasknutou kapacitou

Vlastné SQL pooly umožňujú administrátorovi nastaviť maximálne percento zdrojov ako množstvo výpočtových zdrojov, ktoré môže byť alokované. Burst faktor veľkosti kapacitného SKU sa použije a použije sa podľa percenta uvedeného pre každý pool.

Klasifikátory

Klasifikátor je atribút SQL požiadavky, ktorý informuje systém, ako smerovať do príslušného SQL poolu.

Fabric Data Warehouse poskytuje tri spôsoby klasifikácie požiadaviek:

Typ klasifikátora Popis Configuration
Typ príkazu Klasifikuje požiadavky do ( SELECT dotaz) alebo ne-SELECT (všetky DML, DDL príkazy) Iba autonómne riadenie pracovnej záťaže
Názov aplikácie - Aplikácia (alebo názov programu) použitý v spojovacom reťazci pri pripájaní k Fabric Warehouse alebo SQL Analytics Endpoint.
- Podporuje viacero názvov aplikácií v rámci vlastného SQL poolu
- 128 znakov alebo menej
- Vzájomne sa vylučujúce medzi vlastnými SQL poolmi
Iba vlastné SQL pooly
Regex názvu aplikácie - Regulárny výraz používaný na porovnanie hodnoty s názvom aplikácie.
- Pre regulárny výraz sa vyhodnocuje iba prvá hodnota v zozname
Iba vlastné SQL pooly

Usmernenia:

  • Na pracovný priestor je možné použiť iba jeden typ klasifikátora. Všetky vlastné SQL pooly v jednom pracovnom priestore musia používať rovnaký klasifikátor.
  • V prípade klasifikátora pravidelných výrazov podľa názvu aplikácie, ak požiadavka spĺňa dve alebo viac klasifikácií, výber vlastného SQL poolu je náhodný a neexistujú žiadne kritériá priorít.

Povolenia

  • Členovia roly Administrátora pracovného priestoru môžu povoliť alebo vypnúť vlastné SQL pooly pre pracovný priestor.
  • Členovia úlohy Administrátora v pracovnom priestore môžu aktualizovať vlastné konfigurácie SQL poolu.

Konfigurácia vlastných SQL poolov

Vlastné SQL pooly môžete konfigurovať v Fabric Data Warehouse v portáli Fabric alebo cez API volania.

Monitor

Názov aplikácie a SQL pool, ktoré boli zaznamenané pre dotaz, môžete vidieť v poliach program_name a sql_pool_name v systémovom queryinsights.exec_requests_history zobrazení.

Môžete použiť ako program_name názov aplikácie v klasifikátore alebo v pravidelnom vzore pre klasifikátor názvov aplikácie.

Napríklad, aby ste našli všetky a program_name zodpovedajúce sql_pool_name v nedávnej histórii:

SELECT DISTINCT 
         program_name
        ,sql_pool_name
FROM queryinsights.exec_requests_history;

Môžeš identifikovať, ktoré SQL pooly sú pod tlakom dotazovaním pohľadu queryinsights.sql_pool_insights .

Napríklad nájdite obdobia, keď bol bazén pod tlakom počas uplynulého týždňa.

SELECT [timestamp]
        ,sql_pool_name
        ,max_resource_percentage
        ,is_pool_under_pressure
FROM queryinsights.sql_pool_insights
WHERE is_pool_under_pressure = 1
AND [timestamp] > DATEADD(WEEK, -1, GETDATE())
ORDER BY [timestamp] DESC, sql_pool_name;

Na agregáciu program_name hodnôt podľa niektorých metrík nákladov dotazu môžete použiť nasledujúci dotaz:

SELECT 
    program_name,
    sql_pool_name,
    [CPU] = SUM(allocated_cpu_time_ms), 
    [Disk] = SUM(data_scanned_disk_mb), 
    [Memory] = SUM(data_scanned_memory_mb), 
    [Remote storage] = SUM(data_scanned_remote_storage_mb)
FROM queryinsights.exec_requests_history
GROUP BY program_name, sql_pool_name
ORDER BY [CPU] desc, [Disk] desc, [Memory] desc, [Remote storage] desc;

Obmedzenia

  • Pracovný priestor musí obsahovať jeden alebo viac skladov alebo SQL analytických koncových bodov pred spustením API.
  • Môžete vytvoriť až osem vlastných SQL poolov na pracovný priestor.
  • Keď je vlastný SQL pool odstránený počas bežiaceho dotazu v poole, dotaz zlyhá so správou Request to perform an external distributed computation has failed with error "Query canceled by user." : Zmena veľkosti vlastného SQL poolu nespôsobí zlyhanie dotazu.

Zmeny veľkosti kapacity tkaniny

Každý pracovný priestor má kapacitu s príslušnými kapacitnými jednotkami (CU), založenou na SKU, ktorú si kúpite. Kapacita burstovateľnosti vlastných SQL poolov závisí od veľkosti SKU. Takže keď zmeníte kapacitu, ovplyvníte maximálne množstvo zdrojov pre každý vlastný SQL pool.

Keď zmeníte veľkosť kapacity SKU alebo priradíte inú kapacitu pracovnému priestoru, ak sú povolené vlastné SQL pooly, automaticky škálujú na novú veľkosť SKU.

Ak zmenšenie prinúti SQL pool na nula priradených uzlov, počas behu sa zobrazí nasledujúca chyba: "Priradený SQL pool pre tento dotaz nemá žiadne zdroje a musí byť prekonfigurovaný." Administrátor musí prekonfigurovať vlastné SQL pooly, aby odstránil túto chybu.

Ďalší krok