Tutorial: Menggabungkan data dari beberapa tabel
Menggabungkan data dari beberapa tabel memungkinkan analisis yang lebih komprehensif dengan menggabungkan informasi dari sumber yang berbeda dan membuat hubungan baru antar titik data. Dalam Bahasa Kueri Kusto (KQL), operator gabungan dan pencarian digunakan untuk menggabungkan data di seluruh tabel.
Dalam tutorial ini, Anda akan mempelajari cara:
Contoh dalam tutorial ini menggunakan kluster bantuan yang tersedia untuk umum. Untuk menjelajahi dengan data Anda sendiri, buat kluster gratis Anda sendiri.
Prasyarat
- Akun Microsoft atau Microsoft Entra identitas pengguna untuk masuk ke kluster bantuan
Gunakan operator join
Ada dua tabel dalam database Sampel yang terkait dengan peristiwa badai. Satu dipanggil StormEvents
dan yang lainnya disebut PopulationData
. Di bagian ini, Anda akan menggabungkan tabel untuk melakukan analisis data yang tidak akan dimungkinkan dengan satu tabel saja.
Memahami data
Gunakan operator take untuk melihat data apa yang dikandung setiap tabel.
StormEvents
| take 5
Tabel berikut ini hanya memperlihatkan 6 dari 22 kolom yang dikembalikan.
Waktu mulai | Akhir waktu | EpisodeId | EventId | Provinsi | 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 | Angin Badai Petir | ... |
2007-12-30T16:00:00Z | 2007-12-30T16:05:00Z | 11749 | 64588 | GEORGIA | Angin Badai Petir | ... |
2007-09-29T08:11:00Z | 2007-09-29T08:11:00Z | 11091 | 61032 | ATLANTIK SELATAN | Puting beliung | ... |
2007-09-18T20:00:00Z | 2007-09-19T18:00:00Z | 11074 | 60904 | FLORIDA | Hujan Deras | ... |
PopulationData
| take 5
Output
Provinsi | Populasi |
---|---|
ALABAMA | 4918690 |
ALASKA | 727951 |
ARIZONA | 7399410 |
ARKANSAS | 3025880 |
CALIFORNIA | 39562900 |
Kedua tabel berisi State
kolom. Tabel StormEvents
memiliki lebih banyak kolom, dan PopulationData
hanya memiliki satu kolom lain yang berisi populasi status yang diberikan.
Menggabungkan tabel
Gabungkan PopulationData
tabel dengan StormEvents
pada kolom umum State
untuk menemukan total kerusakan properti yang disebabkan oleh badai per kapita berdasarkan status.
StormEvents
| summarize PropertyDamage = sum(DamageProperty) by State
| join kind=innerunique PopulationData on State
| project State, PropertyDamagePerCapita = PropertyDamage / Population
| sort by PropertyDamagePerCapita
Tambahkan | render columnchart
ke kueri untuk memvisualisasikan hasilnya.
Tip
Ada banyak jenis gabungan yang dapat Anda lakukan dengan join
operator. Lihat daftar rasa gabungan.
Menggunakan operator pencarian
Operator pencarian mengoptimalkan performa kueri di mana tabel fakta diperkaya dengan data dari tabel dimensi. Ini memperluas tabel fakta dengan nilai yang dicari dalam tabel dimensi. Untuk performa terbaik, sistem secara default mengasumsikan bahwa tabel kiri adalah tabel fakta yang lebih besar, dan tabel kanan adalah tabel dimensi yang lebih kecil. Ini persis berlawanan dengan asumsi yang digunakan oleh join
operator.
Dalam kluster bantuan, ada database lain yang disebut ContosoSales
yang berisi data penjualan. Kueri berikut ini menggunakan lookup
untuk menggabungkan SalesFact
tabel dan Products
dari database ini untuk mendapatkan total penjualan menurut kategori produk.
SalesFact
| lookup Products on ProductKey
| summarize TotalSales = count() by ProductCategoryName
| order by TotalSales desc
Output
ProductCategoryName | TotalSales |
---|---|
Game dan Mainan | 966782 |
TV dan Video | 715024 |
Kamera dan camcorder | 323003 |
Komputer | 313487 |
Peralatan Rumah Tangga | 237508 |
Audio | 192671 |
Ponsel | 50342 |
Buku Musik, Film, dan Audio | 33376 |
Catatan
Operator lookup
hanya mendukung dua rasa gabungan: leftouter
dan inner
.
Menggabungkan tabel yang dihasilkan kueri
Gabungan juga dapat dilakukan berdasarkan hasil kueri dari tabel yang sama.
Katakanlah Anda ingin membuat daftar status di mana peristiwa petir dan longsoran salju terjadi. Gunakan operator gabungan untuk menggabungkan baris dua tabel—satu berisi data tentang peristiwa petir dan yang lain yang berisi data pada peristiwa longsoran salju—berdasarkan State
kolom.
StormEvents
| where EventType == "Lightning"
| distinct State
| join kind=inner (
StormEvents
| where EventType == "Avalanche"
| distinct State
)
on State
| project State
Output
Provinsi |
---|
OREGON |
UTAH |
WYOMING |
WASHINGTON |
COLORADO |
IDAHO |
NEVADA |
Konten terkait
- Pelajari tentang berbagai jenis join-operator
- Pelajari cara melakukan kueri lintas database dan lintas kluster
- Ikuti tutorial membuat visualisasi geospasial
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk