Esercitazione: Unire dati da più tabelle
Si applica a: ✅Microsoft Fabric✅Azure Esplora dati✅ Azure Monitor✅Microsoft Sentinel
L'unione di dati da più tabelle consente un'analisi più completa combinando informazioni provenienti da origini diverse e creando nuove relazioni tra punti dati. Nell'Linguaggio di query Kusto (KQL) gli operatori di join e ricerca vengono usati per combinare i dati tra tabelle.
Questa esercitazione illustra come:
Gli esempi in questa esercitazione usano la StormEvents
tabella, disponibile pubblicamente nel cluster della Guida. Per esplorare con i propri dati, creare un cluster gratuito.
Gli esempi in questa esercitazione usano la StormEvents
tabella, disponibile pubblicamente nei dati di esempio di Analisi meteo.
Prerequisiti
Per eseguire le query seguenti, è necessario un ambiente di query con accesso ai dati di esempio. È possibile usare uno dei seguenti elementi:
- Un account Microsoft o un'identità utente di Microsoft Entra per accedere al cluster della Guida
- Un account Microsoft o un'identità utente di Microsoft Entra
- Un'area di lavoro infrastruttura con capacità abilitata per Microsoft Fabric
Usare l'operatore di join
Nel database Samples sono presenti due tabelle correlate agli eventi storm. Uno viene chiamato e l'altro viene chiamato StormEvents
PopulationData
. In questa sezione si aggiungeranno le tabelle per eseguire l'analisi dei dati che non sarebbero possibili con una sola tabella.
Informazioni sui dati
Usare l'operatore take per visualizzare i dati contenuti in ogni tabella.
StormEvents
| take 5
La tabella seguente mostra solo 6 delle 22 colonne restituite.
StartTime | EndTime | EpisodeId | EventId | Provincia | EventType | ... |
---|---|---|---|---|---|---|
2007-09-20T21:57:00Z | 2007-09-20T22:05:00Z | 11078 | 60913 | FLORIDA | Tornado | ... |
2007-12-20T07:50:00Z | 2007-12-20T07:53:00Z | 12554 | 68796 | MISSISSIPPI | Vento di tempesta | ... |
2007-12-30T16:00:00Z | 2007-12-30T16:05:00Z | 11749 | 64588 | GEORGIA | Vento di tempesta | ... |
2007-09-29T08:11:00Z | 2007-09-29T08:11:00Z | 11091 | 61032 | SUD ATLANTICO | Tromba marina | ... |
2007-09-18T20:00:00Z | 2007-09-19T18:00:00Z | 11074 | 60904 | FLORIDA | Pioggia intensa | ... |
PopulationData
| take 5
Output
Provincia | Popolazione |
---|---|
ALABAMA | 4918690 |
ALASKA | 727951 |
ARIZONA | 7399410 |
ARKANSAS | 3025880 |
CALIFORNIA | 39562900 |
Entrambe le tabelle contengono una State
colonna. La StormEvents
tabella contiene molte altre colonne e contiene solo un'altra PopulationData
colonna che contiene la popolazione dello stato specificato.
Unire le tabelle
Unire la PopulationData
tabella con StormEvents
nella colonna comune State
per trovare il danno totale della proprietà causato da tempeste per stato.
StormEvents
| summarize PropertyDamage = sum(DamageProperty) by State
| join kind=innerunique PopulationData on State
| project State, PropertyDamagePerCapita = PropertyDamage / Population
| sort by PropertyDamagePerCapita
Aggiungere | render columnchart
alla query per visualizzare il risultato.
Suggerimento
Esistono molti tipi di join che è possibile eseguire con l'operatore join
. Vedere un elenco di versioni di join.
Usare l'operatore lookup
L'operatore di ricerca ottimizza le prestazioni delle query in cui una tabella dei fatti è arricchita con i dati di una tabella delle dimensioni. Estende la tabella dei fatti con valori ricercati in una tabella delle dimensioni. Per ottenere prestazioni ottimali, il sistema presuppone per impostazione predefinita che la tabella dei fatti sinistra sia la tabella dei fatti più grande e che la tabella destra sia la tabella delle dimensioni più piccola. Questo è esattamente opposto al presupposto usato dall'operatore join
.
Nel cluster della Guida è presente un altro database denominato ContosoSales
che contiene i dati di vendita. La query seguente usa lookup
per unire le SalesFact
tabelle e Products
di questo database per ottenere le vendite totali per categoria di prodotti.
SalesFact
| lookup Products on ProductKey
| summarize TotalSales = count() by ProductCategoryName
| order by TotalSales desc
Output
ProductCategoryName | TotalSales |
---|---|
Giochi e giocattoli | 966782 |
TV e video | 715024 |
Fotocamere e videocamere | 323003 |
Computer | 313487 |
Elettrodomestici | 237508 |
Audio | 192671 |
Telefoni cellulari | 50342 |
Musica, film e audiobook | 33376 |
Nota
L'operatore lookup
supporta solo due versioni di join: leftouter
e inner
.
Unire tabelle generate da query
I join possono essere eseguiti anche in base ai risultati della query della stessa tabella.
Si supponga di voler creare un elenco di stati in cui si sono verificati sia eventi di fulmine che di valanga. Usare l'operatore join per unire le righe di due tabelle, una contenente i dati sugli eventi fulmine e l'altra contenente dati su eventi di valanga, in base alla State
colonna.
StormEvents
| where EventType == "Lightning"
| distinct State
| join kind=inner (
StormEvents
| where EventType == "Avalanche"
| distinct State
)
on State
| project State
Output
Provincia |
---|
OREGON |
UTAH |
WYOMING |
WASHINGTON |
COLORADO |
IDAHO |
NEVADA |
Contenuto correlato
- Informazioni sui diversi tipi di operatore join
- Informazioni su come eseguire query tra database e tra cluster
- Seguire l'esercitazione creare visualizzazioni geospaziali