Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:✅ endpoint di analisi SQL e magazzino dati in Microsoft Fabric
Il clustering di dati in Fabric Data Warehouse organizza i dati per ottenere prestazioni di query più veloci e ridurre l'utilizzo di calcolo. Questa esercitazione illustra i passaggi per creare tabelle con clustering di dati, dalla creazione di tabelle in cluster a una verifica dell'efficacia.
Prerequisiti
- Un account tenant Microsoft Fabric con una sottoscrizione attiva.
- Assicurarsi di disporre di un'area di lavoro abilitata per Microsoft Fabric: Creare un'area di lavoro.
- Assicurarsi di aver già creato un warehouse. Per creare un nuovo warehouse, vedere Creare un warehouse in Microsoft Fabric.
- Conoscenza di base di T-SQL ed esecuzione di query sui dati.
Importare i dati di esempio
Questa esercitazione usa il set di dati di esempio NY Taxi. Per importare i dati di NY Taxi nel magazzino. Usare l'esercitazione Caricare dati di esempio in Data Warehouse .
Crea una tabella con il clustering dei dati
Per questa esercitazione sono necessarie due copie della tabella NYTaxi: la copia regolare della tabella come importata dall'esercitazione e una copia che usa il clustering di dati. Usare il comando seguente per creare una nuova tabella usando CREATE TABLE AS SELECT (CTAS), in base alla tabella NYTaxi originale:
CREATE TABLE nyctlc_With_DataClustering
WITH (CLUSTER BY (lpepPickupDatetime))
AS SELECT * FROM nyctlc
Annotazioni
Nell'esempio si presuppone il nome della tabella assegnato al set di dati NY Taxi nell'esercitazione "Caricare dati di esempio nel Data Warehouse". Se è stato usato un nome diverso per la tabella, modificare il comando in modo da sostituire nyctlc con il nome della tabella.
Questo comando crea una copia esatta della tabella NYTaxi originale, ma con il clustering dei dati nella colonna lpepPickupDatetime. Verrà quindi usata questa colonna per l'esecuzione di query.
Dati di query
Eseguire una query sulla tabella NYTaxi e ripetere la stessa query nella tabella NYTaxi_With_DataClustering per il confronto.
Annotazioni
Per questa analisi, è utile esaminare le prestazioni della cache a freddo di entrambe le esecuzioni, ovvero senza usare le funzionalità di memorizzazione nella cache di Fabric Data Warehouse. Pertanto, esegui ogni query esattamente una volta prima di esaminare i risultati in Query Insights.
Viene usata una query che viene spesso ripetuta nel warehouse. Questa query calcola l'importo medio della tariffa per anno tra le date 2008-12-31 e 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');
Annotazioni
L'opzione etichetta usata in questa query è utile quando si confrontano i dettagli della query della tabella Regular con quelli di un'altra che utilizza il clustering dei dati, usata successivamente attraverso le viste di Query Insights.
Ripetiamo quindi esattamente la stessa query, ma sulla versione della tabella che utilizza il clustering dei dati:
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');
La seconda query usa l'etichetta Clustered per consentire di identificare questa query in un secondo momento con Informazioni dettagliate query.
Controllare l'efficacia del clustering dei dati
Dopo aver configurato il clustering, è possibile valutarne l'efficacia usando Query Insights. Query Insights in Fabric Data Warehouse acquisisce i dati cronologici di esecuzione delle query e lo aggrega in informazioni dettagliate utilizzabili, ad esempio l'identificazione di query a esecuzione prolungata o eseguite di frequente.
In questo caso, si usa Query Insights per confrontare la differenza nei dati analizzati tra i casi normali e i casi in cluster.
Usare la query seguente:
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;
Questa query recupera dettagli dalla vista exec_requests_history. Per altre informazioni, vedere queryinsights.exec_requests_history (Transact-SQL).
La query filtra i risultati nei modi seguenti:
- Recupera solo le righe che contengono il
NYTaxitesto nel nome del comando (come è stato usato nelle query di test) - Recupera solo le righe in cui il valore dell'etichetta era normale o raggruppato.
Annotazioni
La disponibilità dei dettagli della query in Query Insights potrebbe richiedere alcuni minuti. Se la query di Query Insights non restituisce risultati, riprovare dopo alcuni minuti.
L'esecuzione di questa query consente di osservare i risultati seguenti:
Entrambe le query hanno un numero di righe pari a 6 e tempi di invio simili. La Clustered query mostra total_elapsed_time_ms di 1794, allocated_cpu_time_ms di 1676 e data_scanned_remote_storage_mb di 77.519. La Regular query mostra total_elapsed_time_ms 2651, allocated_cpu_time_ms 2600 e data_scanned_remote_storage_mb 177.700. Questi numeri mostrano che anche se entrambe le query hanno restituito gli stessi risultati, la Clustered versione ha usato circa 36% meno tempo di CPU rispetto alla Regular versione e analizzato circa 56% meno dati su disco. Nessuna cache è stata usata in nessuna delle due esecuzioni di query. Si tratta di risultati significativi per ridurre i tempi di esecuzione delle query e il consumo di risorse e rendere la colonna lpepPickupDatetime un candidato ideale per il clustering di dati.
Annotazioni
Si tratta di una tabella di piccole dimensioni, con circa 76 milioni di righe e 2 GB di volume di dati. Anche se questa query restituisce solo sei righe sull'aggregazione (una per ogni anno nell'intervallo), analizza circa 8,3 milioni di righe nell'intervallo di date fornito prima che i risultati vengano aggregati. I dati di produzione effettivi con volumi di dati di dimensioni maggiori possono offrire risultati più significativi. I risultati possono variare in base alle dimensioni della capacità, ai risultati memorizzati nella cache o alla concorrenza durante le query.