Del via


Bruk dataklynging i Fabric Data Warehouse

Gjelder for:✅ SQL Analytics-endepunkt og Warehouse i Microsoft Fabric

Dataklynging i Fabric Data Warehouse organiserer data for raskere spørringsytelse og redusert beregningsbruk. Denne veiledningen går gjennom stegene for å lage tabeller med dataklynging, fra å lage klyngede tabeller til å sjekke hvor effektive de er.

Forutsetninger

  • En Microsoft Fabric-leierkonto med et aktivt abonnement.
  • Kontroller at du har et Microsoft Fabric-aktivert arbeidsområde: Opprett et arbeidsområde.
  • Sørg for at du allerede har opprettet et lager. For å opprette et nytt lager, se Opprett et lager i Microsoft Fabric.
  • Grunnleggende forståelse av T-SQL og å spørre data.

Importer eksempeldata

Denne veiledningen bruker NY Taxi-eksempeldatasettet. For å importere NY Taxi-dataene til lageret ditt. Bruk veiledningen Load Sample data to Data Warehouse .

Lag en tabell med dataklynging

For denne veiledningen trenger vi to kopier av NYTaxi-tabellen: den vanlige kopien av tabellen slik den ble importert fra veiledningen, og en kopi som bruker dataklynging. Bruk følgende kommando for å lage en ny tabell med CREATE TABLE AS SELECT (CTAS), basert på den opprinnelige NYTaxi-tabellen:

CREATE TABLE nyctlc_With_DataClustering 
WITH (CLUSTER BY (lpepPickupDatetime)) 
AS SELECT * FROM nyctlc

Note

Eksempelet antar tabellnavnet som er gitt til NY Taxi-datasettet i Load Sample data to Data Warehouse-veiledningen. Hvis du brukte et annet navn på tabellen din, juster kommandoen til å erstatte nyctlc den med tabellnavnet ditt.

Denne kommandoen lager en nøyaktig kopi av den opprinnelige NYTaxi-tabellen, men med dataklynging i kolonnen lpepPickupDatetime . Deretter bruker vi denne kolonnen til forespørsler.

Spørringsdata

Kjør en spørring på NYTaxi-tabellen, og gjenta nøyaktig samme spørring på NYTaxi_With_DataClustering tabellen for sammenligning.

Note

For denne analysen er det nyttig å se på cold cache-ytelsen til begge kjøringene – altså uten å bruke cache-funksjonene i Fabric Data Warehouse. Kjør derfor hver spørring nøyaktig én gang før du ser på resultatene i Query Insights.

Vi bruker en forespørsel som ofte gjentas i lageret. Denne spørringen beregner gjennomsnittlig billettpris per år mellom datoene 2008-12-31 og 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');

Note

Label-alternativet som brukes i denne spørringen er nyttig når vi sammenligner spørringsdetaljene i Regular tabellen med tabellen som senere bruker dataklynging ved bruk av Query Insights-visninger.

Deretter gjentar vi nøyaktig samme spørring, men på den versjonen av tabellen som bruker dataklynging:

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');

Den andre spørringen bruker etiketten Clustered for å la oss identifisere denne spørringen senere med Query Insights.

Sjekk effektiviteten av dataklynging

Etter å ha satt opp klynging, kan du vurdere effektiviteten ved hjelp av Query Insights. Query Insights in Fabric Data Warehouse fanger opp historiske spørringsutførelsesdata og aggregerer dem til handlingsrettede innsikter, som å identifisere langvarige eller ofte utførte spørringer.

I dette tilfellet bruker vi Query Insights for å sammenligne forskjeller i data som er skannet mellom de vanlige og de klyngede tilfellene.

Bruk følgende spørring:

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;

Denne spørringen henter detaljer fra visningen exec_requests_history . For mer informasjon, se queryinsights.exec_requests_history (Transact-SQL).

Spørringen filtrerer resultatene på følgende måter:

  • Henter kun rader som inneholder teksten NYTaxi i kommandonavnet (slik det ble brukt i testspørringene)
  • Henter kun rader der etikettverdien enten var vanlig eller klynget

Note

Det kan ta noen minutter før søkedetaljene dine blir tilgjengelige i Query Insights. Hvis Query Insights-spørringen din ikke gir noen resultater, prøv igjen etter noen minutter.

Når vi kjører denne spørringen, ser vi følgende resultater:

Tabell som sammenligner spørringsutførelsesmetrikker for to etiketter: Clustered og Regular. Regular-spørringen brukte flere ressurser.

Begge spørringene har 6 rader og lignende innsendingstider. Undersøkelsen Clustered viser total_elapsed_time_ms fra 1794, allocated_cpu_time_ms 1676 og data_scanned_remote_storage_mb 77,519. Søket Regular viser total_elapsed_time_ms 2651, allocated_cpu_time_ms 2600 og data_scanned_remote_storage_mb 177 700. Disse tallene viser at selv om begge spørringene ga samme resultater, Clustered brukte versjonen omtrent 36% mindre CPU-tid enn versjonen Regular og skannet omtrent 56% mindre data på disken. Ingen cache ble brukt i noen av spørringene. Dette er viktige resultater som bidrar til å redusere spørringskjøringstid og forbruk, og gjør kolonnen lpepPickupDatetime til en sterk kandidat for dataklynging.

Note

Dette er en liten tabell, med omtrent 76 millioner rader og 2 GB datavolum. Selv om denne spørringen kun gir seks rader i aggregeringen (én for hvert år i området), skanner den omtrent 8,3 millioner rader i det oppgitte datoområdet før resultatene aggregeres. Faktiske produksjonsdata med større datavolumer kan gi mer signifikante resultater. Resultatene dine kan variere basert på kapasitetsstørrelse, bufrede resultater eller samtidighet under spørringene.