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:✅ Koncový bod a sklad analýzy SQL v službe Microsoft Fabric
Dátové zhlukovanie v Fabric Data Warehouse organizuje dáta pre rýchlejší výkon dotazov a zníženú výpočtovú náročnosť. Tento tutoriál prechádza krokmi vytvárania tabuliek pomocou dátového zhlukovania, od vytvárania zoskupených tabuliek až po kontrolu ich efektívnosti.
Prerequisites
- konto nájomníka služby Microsoft Fabric s aktívnym predplatným,
- Uistite sa, že máte povolený pracovný priestor služby Microsoft Fabric: Vytvorte pracovný priestor.
- Uistite sa, že ste už vytvorili sklad. Ak chcete vytvoriť nový sklad, pozrite si možnosť Vytvoriť sklad v Microsoft Fabric.
- Základné pochopenie T-SQL a dotazovania dát.
Importovať vzorové údaje
Tento tutoriál používa vzorkovú dátovú sadu NY Taxi. Importovať dáta z NY Taxi do vášho skladu. Použite tutoriál Load Sample data to Data Warehouse .
Vytvorte tabuľku pomocou dátového zhlukovania
Pre tento tutoriál potrebujeme dve kópie tabuľky NYTaxi: bežnú kópiu tabuľky importovanej z tutoriálu a kópiu, ktorá používa dátové zhlukovanie. Použite nasledujúci príkaz na vytvorenie novej tabuľky pomocou CREATE TABLE AS SELECT (CTAS), založenej na pôvodnej tabuľke NYTaxi:
CREATE TABLE nyctlc_With_DataClustering
WITH (CLUSTER BY (lpepPickupDatetime))
AS SELECT * FROM nyctlc
Poznámka
Príklad predpokladá názov tabuľky pridelený datasetu NY Taxi v tutoriáli Load Sample data to Data Warehouse. Ak ste použili iný názov pre svoju tabuľku, upravte príkaz tak, aby nahradil nyctlc názov vašej tabuľky.
Tento príkaz vytvára presnú kópiu pôvodnej tabuľky NYTaxi, ale s dátovým zhlukovaním v stĺpci lpepPickupDatetime . Ďalej používame tento stĺpec na dotazovanie.
Dotazovanie údajov
Spustite dotaz na tabuľke NYTaxi a zopakujte presne ten istý dotaz v tabuľke NYTaxi_With_DataClustering pre porovnanie.
Poznámka
Pre túto analýzu je užitočné pozrieť sa na výkon cold cache oboch behov – teda bez použitia cache funkcií Fabric Data Warehouse. Preto spustite každý dotaz presne raz predtým, než sa pozriete na výsledky v Query Insights.
Používame dotaz, ktorý sa často opakuje v sklade. Tento dotaz vypočíta priemernú sumu cestovného podľa rokov medzi dátumami 2008-12-31 a :2014-06-30
SELECT
YEAR(lpepPickupDatetime),
AVG(fareAmount) as [Average Fare]
FROM
NYTaxi
WHERE
lpepPickupDatetime BETWEEN '2008-12-31' AND '2014-06-30'
GROUP BY
YEAR(lpepPickupDatetime)
ORDER BY
YEAR(lpepPickupDatetime) DESC
OPTION (LABEL = 'Regular');
Poznámka
Možnosť označenia použitá v tomto dotaze je užitočná, keď porovnávame detaily dotazu tabuľky Regular s tým, ktorý neskôr používa dátové zhlukovanie pomocou zobrazení Query Insights.
Potom opakujeme presne ten istý dotaz, ale na verzii tabuľky, ktorá používa dátové zhlukovanie:
SELECT
YEAR(lpepPickupDatetime),
AVG(fareAmount) as [Average Fare]
FROM
NYTaxi_With_DataClustering
WHERE
lpepPickupDatetime BETWEEN '2008-12-31' AND '2014-06-30'
GROUP BY
YEAR(lpepPickupDatetime)
ORDER BY
YEAR(lpepPickupDatetime) DESC
OPTION (LABEL = 'Clustered');
Druhý dotaz používa tento štítok Clustered , aby sme ho mohli neskôr identifikovať pomocou Query Insights.
Skontrolujte efektívnosť zhlukovania dát
Po nastavení klastrovania môžete jeho efektívnosť posúdiť pomocou Query Insights. Query Insights in Fabric Data Warehouse zachytáva historické údaje o vykonávaní dopytov a agreguje ich do použiteľných poznatkov, ako je identifikácia dlhodobo bežiacich alebo často vykonávaných dotazov.
V tomto prípade používame Query Insights na porovnanie rozdielu v skenovaných dátach medzi bežnými a zhlukovanými prípadmi.
Použite nasledujúci dotaz:
SELECT
label,
submit_time,
row_count,
total_elapsed_time_ms,
allocated_cpu_time_ms,
result_cache_hit,
data_scanned_disk_mb,
data_scanned_memory_mb,
data_scanned_remote_storage_mb,
command
FROM
queryinsights.exec_requests_history
WHERE
command LIKE '%NYTaxi%'
AND label IN ('Regular','Clustered')
ORDER BY
submit_time DESC;
Tento dotaz získava podrobnosti z pohľadu exec_requests_history . Pre viac informácií pozri queryinsights.exec_requests_history (Transact-SQL).
Dotaz filtruje výsledky nasledovne:
- Načíta len riadky, ktoré obsahujú
NYTaxitext v názve príkazu (ako bolo použité v testovacích dotazoch) - Načíta len riadky, kde bola hodnota štítku buď pravidelná, alebo zoskupená
Poznámka
Môže trvať niekoľko minút, kým sa detaily vášho dotazu zobrazia v Query Insights. Ak váš dotaz Query Insights neprinesie žiadne výsledky, skúste to znova po niekoľkých minútach.
Pri spustení tohto dotazu pozorujeme nasledujúce výsledky:
Oba dotazy majú počet riadkov 6 a podobné časy odoslania. Dopyt Clustered uvádza total_elapsed_time_ms roky 1794, allocated_cpu_time_ms 1676 a data_scanned_remote_storage_mb 77,519. Dopyt Regular ukazuje total_elapsed_time_ms 2651, allocated_cpu_time_ms 2600 a data_scanned_remote_storage_mb 177 700. Tieto čísla ukazujú, že aj keď oba dotazy vrátili rovnaké výsledky, verzia Clustered spotrebovala približne o 36% menej času CPU než verzia Regular a na disku skenovala približne 56% menej dát. V žiadnom z týchto spustení nebola použitá žiadna cache. Ide o významné výsledky, ktoré pomáhajú znížiť čas vykonávania dotazov a spotrebu a robia stĺpec lpepPickupDatetime silným kandidátom na zhlukovanie dát.
Poznámka
Ide o malú tabuľku s približne 76 miliónmi riadkov a objemom dát 2 GB. Aj keď tento dotaz vráti len šesť riadkov v agregácii (jeden za každý rok v rozsahu), pred agregáciou prehľadá približne 8,3 milióna riadkov v danom časovom rozmedzí. Skutočné výrobné údaje s väčším objemom dát môžu priniesť významnejšie výsledky. Vaše výsledky sa môžu líšiť v závislosti od veľkosti kapacity, uložených výsledkov alebo súbežnosti počas dotazov.