Poznámka
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete sa skúsiť prihlásiť alebo zmeniť adresáre.
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete skúsiť zmeniť adresáre.
Vzťahuje sa na: ✅ SQL analytics endpoint a sklad v Microsoft Fabric
Vlastné SQL pooly dávajú administrátorom väčšiu kontrolu nad tým, ako sú zdroje prideľované na spracovanie požiadaviek. V tomto rýchlom štarte si nakonfigurujete vlastné SQL pooly a pozorujete hodnoty klasifikátorov pomocou Fabric REST API.
Administrátori pracovného priestoru môžu použiť názov aplikácie (alebo názov programu) z reťazca spojenia na smerovanie požiadaviek do rôznych výpočtových poolov. Administrátori pracovného priestoru môžu tiež kontrolovať percento zdrojov, ku ktorým má každý výpočtový SQL pool prístup, na základe limitu kapacity pracovného priestoru na burstovateľnú škálovateľnosť.
Fabric REST API definuje jednotný koncový bod pre operácie.
Predpoklady
- Prístup k skladovej položke v pracovnom priestore. Mali by ste byť členom administrátorskej roly.
Získajte aktuálnu konfiguráciu
Použite nasledujúce API na získanie aktuálnej konfigurácie.
Príklad látkového zápisníka
Nasledujúci príklad Python kódu môžete spustiť v zápisníku Fabric Spark.
- Kód odošle požiadavku
GETdo vlastného konfiguračného API SQL poolu a vráti vlastnú konfiguráciu SQL poolu pre daný pracovný priestor. - Pole
workspace_idpoužíva namssparkutils.runtime.contextzískanie GUID pracovného priestoru, v ktorom notebook beží. Ak chcete nastaviť vlastný SQL pool v inom pracovnom priestore, aktualizujte howorkspace_idna GUID pracovného priestoru, kde chcete nastaviť vlastné SQL pooly.
import requests
import json
from notebookutils import mssparkutils
# This will get the workspace_id where this notebook is running.
# Update to the workspace_id (guid) if running this notebook outside of the workspace where the warehouse exists.
workspaceId = mssparkutils.runtime.context.get('currentWorkspaceId')
url = f'https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/warehouses/sqlPoolsConfiguration?beta=true'
response = requests.request(method='get', url=url, headers={'Authorization': f'Bearer {mssparkutils.credentials.getToken("pbi")}'})
if response.status_code == 200:
print(json.dumps(response.json(), indent=4))
else:
print(response.text)
Konfigurácia vlastných SQL poolov
Nasledujúci príklad v Pythone umožňuje a konfiguruje vlastné SQL pooly. Tento Python kód môžete spustiť v notebooku Fabric Spark.
- Konfigurácia vlastných SQL poolov je aktívna len vtedy, keď
customSQLPoolsEnabledje atribút nastavený na true. Payload môžete definovať v definícii objektucustomSQLPools, ale ak nenastavíte customSQLPoolsEnabled na true, payload sa ignoruje a používa sa autonómne riadenie záťaže . - Kód konfiguruje dva vlastné SQL pooly
ContosoSQLPoolaAdhocPool.- Je nastavené, že dostane
ContosoSQLPool70% dostupných zdrojov. Klasifikátor názvu aplikácie má hodnotu .MyContosoApp - Všetky SQL dotazy, ktoré vychádzajú z reťazca spojenia, ktorý špecifikuje
MyContosoAppnázov aplikácie, sú klasifikované do vlastnéhoContosoSQLPoolSQL poolu a majú prístup k 70% z celkových uzlov s kapacitou pre burst. - Všetky SQL dotazy, ktoré neobsahujú
MyContosoAppv názve aplikácie connection string, sa posielajú do vlastnéhoAdhocSQL poolu, ktorý je definovaný ako predvolený pool. Tieto požiadavky získavajú prístup k 30% z celkových uzlov kapacity pre burst.
- Je nastavené, že dostane
- Všetky vlastné konfigurácie SQL poolu musia mať jeden predvolený SQL Pool identifikovaný nastavením
isDefaultatribútu na true. - Súčet všetkých
maxResourcePercentagehodnôt musí byť menší alebo rovný 100%. - Pole
workspace_idpoužíva namssparkutils.runtime.contextzískanie GUID pracovného priestoru, v ktorom notebook beží. Ak chcete nastaviť vlastný SQL pool v inom pracovnom priestore, aktualizujte howorkspace_idna GUID pracovného priestoru, kde chcete nastaviť vlastné SQL pooly.
import requests
import json
from notebookutils import mssparkutils
body = {
"customSQLPoolsEnabled": True,
"customSQLPools": [
{
"name": "ContosoSQLPool",
"isDefault": False,
"maxResourcePercentage": 70,
"optimizeForReads": False,
"classifier": {
"type": "Application Name",
"value": [
"MyContosoApp"
]
}
},
{
"name": "AdhocPool",
"isDefault": True,
"maxResourcePercentage": 30,
"optimizeForReads": True
}
]
}
# This will get the workspaceId where this notebook is running.
# Update to the workspace_id (guid) if running this notebook outside of the workspace where the warehouse exists.
workspace_id = mssparkutils.runtime.context.get('currentWorkspaceId')
url = f'https://api.fabric.microsoft.com/v1/workspaces/{workspace_id}/warehouses/sqlPoolsConfiguration?beta=true'
response = requests.request(method='patch', url=url, json=body, headers={'Authorization': f'Bearer {mssparkutils.credentials.getToken("pbi")}'})
if response.status_code == 200:
print("SQL Custom Pools configured successfully.")
else:
print(response.text)
Tip
Použite tieto užitočné hodnoty klasifikátora názvov aplikácií (regex) pre prevádzku z Fabric:
- Na klasifikáciu dotazov z Fabric pipeline použite
^Data Integration-to[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$. - Na klasifikáciu dotazov z Power BI použite
^(PowerBIPremium-DirectQuery|Mashup Engine(?: \(PowerBIPremium-Import\))?). - Na klasifikáciu dotazov z SQL editora dotazov portálu Fabric použite
DMS_user.
Nastavte názov aplikácie v SQL Server Management Studio (SSMS)
Klasifikátor pre vlastné SQL pooly používa názov aplikácie alebo parameter názvu programu bežných spojovacích reťazcov.
V SQL Server Management Studio (SSMS) zadajte názov servera pre sklad a zabezpečte autentifikáciu. Odporúča sa Microsoft Entra MFA .
Vyberte tlačidlo Pokročilé .
Na stránke Pokročilé vlastnosti , v sekcii Kontext, zmeňte hodnotu názvu aplikácie na
MyContosoApp.Vyberte položku OK.
Vyberte možnosť Pripojiť.
Na generovanie vzorky aktivity použite toto spojenie v SSMS na spustenie jednoduchého dotazu vo vašom sklade, napríklad:
SELECT * FROM dbo.DimDate;
Pozorujte query insights pre vlastný SQL pool
Prezrite
sys.dm_exec_sessionspohľad dynamickej správy, aby ste videli, čiMyContosoAppje rozpoznávaný názov aplikácie odovzdaný zo SSMS do SQL enginu.SELECT session_id, program_name FROM sys.dm_exec_sessions WHERE program_name = 'MyContosoApp';Príklad:
Keďže zodpovedá
program_namenázvu aplikácie v vlastnomMyContosoAppSQL poole, tento dotaz využíva zdroje v tomto poole. Aby ste dokázali, aký vlastný SQL pool dotaz použil, môžete dotazovať queryinsights.exec_requests_history systémový pohľad. Počkajte 10-15 minút, kým sa naplnia query insights, a potom spustite nasledujúci dotaz.SELECT distributed_statement_id, submit_time, program_name, sql_pool_name, start_time, end_time FROM queryinsights.exec_requests_history WHERE program_name = 'MyContosoApp';Skupinu dotazu môžete tiež identifikovať podľa jeho ID príkazu. V SQL query editore portálu Fabric spustite dotaz na vašom sklade alebo SQL analytickom endpointe.
SELECT * FROM dbo.DimDate;Vyberte záložku Správy a zaznamenajte ID príkazu pre vykonanie dotazu. V SQL query editore je
program_name,DMS_userktorý ste predtým nastavili na použitie vlastnéhoMyContosoAppSQL poolu.Počkajte 10-15 minút, kým sa naplnia query insights.
Získajte tieto
sql_pool_namea ďalšie informácie, aby ste overili, že bol použitý správny vlastný SQL pool.SELECT distributed_statement_id, submit_time, program_name, sql_pool_name, start_time, end_time FROM queryinsights.exec_requests_history WHERE distributed_statement_id = '<Statement ID>';
Vrátiť konfiguráciu vlastných SQL poolov
Na vrátenie pracovného priestoru do pôvodného stavu zmeňte customSQLPoolsEnabled vlastnosť na False. Ak chcete zachovať konfiguráciu vlastných SQL poolov, musíte každý názov poolu zadať ako v zozname customSQLPools .
Tento príklad Python kódu deaktivuje vlastné SQL pooly a vracia sa späť k autonómnej konfigurácii riadenia záťaže pre SELECT a ne-poolySELECT . Volá sa požiadavka s PATCH vlastnosťou nastavenou customSQLPoolsEnabled na .False
import requests
import json
from notebookutils import mssparkutils
body = {
"customSQLPoolsEnabled": False,
"customSQLPools": []
}
# This will get the workspaceId where this notebook is running.
# Update to the workspace_id (guid) if running this notebook outside of the workspace where the warehouse exists.
workspace_id = mssparkutils.runtime.context.get('currentWorkspaceId')
url = f'https://api.fabric.microsoft.com/v1/workspaces/{workspace_id}/warehouses/sqlPoolsConfiguration?beta=true'
response = requests.request(method='patch', url=url, json=body, headers={'Authorization': f'Bearer {mssparkutils.credentials.getToken("pbi")}'})
if response.status_code == 200:
print("SQL Custom Pools successfully disabled.")
else:
print(response.text)