Uživatelsky definované fondy SQL

Platí pro:✅ Koncový bod analýzy SQL a datový sklad v Microsoft Fabric

Důležité

Tato funkce je ve verzi Preview.

Vlastní fondy SQL umožňují správcům mít větší kontrolu nad tím, jak se back-endové výpočetní prostředky přidělují ke svému skladu a koncovému bodu analýzy SQL v pracovním prostoru.

Diagram SQLového stroje s vlastními SQL fondy

Fabric Data Warehouse poskytuje autonomní správu úloh, která odděluje výpočetní prostředky do interních fondů SQL, které se škálují nezávisle na vyžádání.

Ve výchozím nastavení jsou hranice izolace příjmem dat (typy bezSELECT příkazů) a zpracování dotazů (SELECT příkazy). S vlastními SQL pooly mohou správci:

  • Změňte počet hranic izolace (přidejte další vlastní fondy SQL).
  • Vytvořte vlastní klasifikace úloh specifické pro název aplikace.
  • Řízení přidělování zdrojů jednotlivých fondů prostřednictvím maximálního procenta zdrojů

Případy použití vlastních fondů SQL

Vlastní fondy SQL mají dva hlavní případy použití: ochranu úloh před konkurencí zdrojů a ochranu před omezováním kapacity platformy kvůli vysoké spotřebě.

Souběžné zátěže s autonomními pooly úloh

Tento scénář platí, když různé úlohy soupeří o prostředky, což způsobuje, že kritické úlohy zmeškaly výkonnostní cíle.

Ukázkový scénář

  • Úloha podnikového generování sestav pracuje suboptimálně, když jsou z editoru dotazů SQL na portálu Fabric spuštěny ad-hoc dotazy uživatelů.

Doporučený přístup

  • Tyto úlohy rozdělte mezi dva samostatné vlastní fondy SQL.
  • Přidělte větší procento prostředků do fondu, který obsluhuje podnikovou reportovací aplikaci, aby měla aplikace kritická pro podnikání k dispozici více prostředků.

Omezování kapacity kvůli vysoké spotřebě

Tento scénář platí v případě, že vysoké využití kapacity Fabric způsobuje omezování, které má vliv na celkový výkon skladu.

Ukázkový scénář

Doporučený přístup

  • Snižte celkové procento prostředků přidělené příslušnému skladu.
  • Monitorujte, jestli tato změna snižuje omezování dotazů a zlepšuje celkový výkon.

Rozdíly mezi autonomní správou úloh a vlastními fondy SQL

Téma Autonomní správa úloh Uživatelsky definované fondy SQL
Konfigurace Žádné (mimo krabici) – Webové uživatelské rozhraní
-Rozhraní api
Povolení N/A Správce pracovního prostoru
Scope Pracovní prostor – zahrnuje koncový bod služby Warehouse i SQL Analytics. Pracovní prostor – zahrnuje koncový bod služby Warehouse i SQL Analytics.
Metoda klasifikace Typ příkazu (SELECT nebo jiný) – Název aplikace
– Regulární výraz názvu aplikace
Měrná jednotka N/A Procento celkového počtu back-endových uzlů
SQL pooly SELECT nebo jiné Přiřazení definované uživatelem
Překročitelná kapacita Spravováno službou Fabric (až 12x na fond SQL, celkem 24x) Uživatel definovaný na základě procenta přidělených back-endových uzlů. Celkové množství prostředků je stále 24krát.

Překročitelná kapacita

Vlastní fondy SQL umožňují správci nakonfigurovat maximální procento prostředků jako množství výpočetních prostředků, které je možné přidělit. Koeficient přetížení velikosti SKU kapacity bude aplikován a použito podle procenta určeného pro každý fond.

Třídění

Klasifikátor je atribut požadavku SQL, který informuje systém, jak směrovat do příslušného fondu SQL.

Datový sklad Fabric nabízí tři způsoby klasifikace požadavků:

Typ klasifikátoru Description Konfigurace
Typ příkazu Klasifikuje požadavky buď jako SELECT (dotaz) nebo jako jiné než SELECT (všechny příkazy DML, DDL). Pouze správa autonomních úloh
Název aplikace – Aplikace (nebo název programu) použitá v připojovacím řetězci při připojování ke koncovému bodu Fabric Warehouse nebo SQL Analytics.
– Podporuje více názvů aplikací pro vlastní fond SQL.
- 128 znaků nebo méně
– Vzájemně se vylučují mezi vlastními fondy SQL
Pouze vlastní fondy SQL
Regulární výraz pro název aplikace – Regulární výraz použitý k porovnání hodnoty názvu aplikace.
– Pro regulární výraz se vyhodnocuje pouze první hodnota v seznamu.
Pouze vlastní fondy SQL

Pokyny:

  • Pro každý pracovní prostor lze použít pouze jeden typ klasifikátoru. Všechny vlastní fondy SQL v jednom pracovním prostoru musí používat stejný klasifikátor.
  • V případě klasifikátoru regulárních výrazů názvu aplikace platí, že pokud požadavek splňuje dvě nebo více klasifikací, výběr vlastního fondu SQL je náhodný a neexistují žádná kritéria stanovení priority.

Povolení

  • Členové role pracovního prostoru Správce můžou pro pracovní prostor povolit nebo zakázat vlastní SQL pooly.
  • Členové role pracovního prostoru Správce mohou aktualizovat vlastní konfigurace fondu SQL.

Konfigurace vlastních fondů SQL

Vlastní fondy SQL ve službě Fabric Data Warehouse můžete nakonfigurovat na portálu Fabric nebo prostřednictvím volání rozhraní API.

Monitor

Název aplikace a fond SQL, které byly zaznamenány pro dotaz, můžete zobrazit v program_namesql_pool_name polích systémového queryinsights.exec_requests_history zobrazení.

Použijte program_name jako název aplikace v klasifikátoru nebo ve vzoru regulárního výrazu pro klasifikátor názvu aplikace.

Pokud například chcete najít všechny program_name položky a odpovídající sql_pool_name položky v nedávné historii:

SELECT DISTINCT 
         program_name
        ,sql_pool_name
FROM queryinsights.exec_requests_history;

Dotazem na zobrazení queryinsights.sql_pool_insights můžete zjistit, které SQL fondy jsou pod tlakem.

Můžete například najít časové období, kdy byl fond v minulém týdnu pod tlakem.

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;

Pokud chcete agregovat program_name hodnoty podle některých metrik nákladů na dotazy, můžete použít následující 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;

Omezení

  • Před spuštěním rozhraní API musí pracovní prostor obsahovat jeden nebo více skladů nebo koncových bodů analýzy SQL.
  • Pro každý pracovní prostor můžete vytvořit až osm vlastních fondů SQL.
  • Když se odstraní vlastní fond SQL, zatímco je v něm spuštěn dotaz, dotaz selže se zprávou Request to perform an external distributed computation has failed with error "Query canceled by user.". Změna velikosti vlastního fondu SQL nezpůsobí selhání dotazu.

Změny velikosti kapacity fabricu

Každý pracovní prostor má kapacitu s přidruženými jednotkami kapacity (CU) na základě zakoupené skladové položky. Dynamická kapacita vlastních SQL poolů závisí na velikosti SKU. Když tedy změníte kapacitu, ovlivníte maximální množství prostředků pro každý vlastní fond SQL.

Když změníte velikost SKU kapacity nebo přiřadíte k pracovnímu prostoru jinou kapacitu, pokud jsou povoleny vlastní fondy SQL, automaticky se škálují na novou velikost SKU.

Pokud snížení kapacity vynutí fond SQL na nulové přiřazené uzly, zobrazí se za běhu následující chyba: Přiřazený fond SQL pro tento dotaz nemá žádné prostředky a musí se překonfigurovat. Správce musí překonfigurovat vlastní fondy SQL, aby tuto chybu odebral.

Další krok