operator join
Gabungkan baris dua tabel untuk membentuk tabel baru dengan mencocokkan nilai kolom yang ditentukan dari setiap tabel.
Bahasa Kueri Kusto (KQL) menawarkan berbagai jenis gabungan yang masing-masing memengaruhi skema dan baris dalam tabel yang dihasilkan dengan cara yang berbeda. Misalnya, jika Anda menggunakan inner
gabungan, tabel memiliki kolom yang sama dengan tabel kiri, ditambah kolom dari tabel kanan. Untuk performa terbaik, jika satu tabel selalu lebih kecil dari tabel lainnya, gunakan sebagai sisi join
kiri operator.
Gambar berikut menyediakan representasi visual operasi yang dilakukan oleh setiap gabungan.
Sintaks
LeftTable|
join
[ kind
=
JoinFlavor ] [ Petunjuk ] (
Kondisi RightTable)
on
Pelajari selengkapnya tentang konvensi sintaksis.
Parameter
Nama | Jenis | Diperlukan | Deskripsi |
---|---|---|---|
LeftTable | string |
✔️ | Tabel kiri atau ekspresi tabular, terkadang disebut tabel luar, yang barisnya akan digabungkan. Dilambangkan sebagai $left . |
JoinFlavor | string |
Jenis gabungan untuk melakukan: innerunique , , inner , leftouter , rightouter , fullouter leftanti , rightanti , , leftsemi rightsemi . Default adalah innerunique . Untuk informasi selengkapnya tentang ragam gabungan, lihat Mengembalikan. |
|
Petunjuk | string |
Nol atau lebih petunjuk gabungan yang dipisahkan spasi dalam bentukNilaiNama= yang mengontrol perilaku operasi pencocokan baris dan rencana eksekusi. Untuk informasi selengkapnya, lihat Petunjuk. |
|
RightTable | string |
✔️ | Tabel kanan atau ekspresi tabular, terkadang disebut tabel dalam, yang barisnya akan digabungkan. Dilambangkan sebagai $right . |
Kondisi | string |
✔️ | Menentukan bagaimana baris dari LeftTable dicocokkan dengan baris dari RightTable. Jika kolom yang ingin Anda cocokkan memiliki nama yang sama di kedua tabel, gunakan sintaks ON ColumnName. Jika tidak, gunakan sintaks ON $left. LeftColumn== $right. RightColumn. Untuk menentukan beberapa kondisi, Anda dapat menggunakan kata kunci "dan" atau memisahkannya dengan koma. Jika Anda menggunakan koma, kondisi dievaluasi menggunakan operator logis "dan". |
Tip
Untuk performa terbaik, jika satu tabel selalu lebih kecil dari tabel lainnya, gunakan sebagai sisi kiri gabungan.
Petunjuk
Kunci petunjuk | Nilai | Deskripsi |
---|---|---|
hint.remote |
auto , left , local , right |
Lihat Gabungan Lintas Kluster |
hint.strategy=broadcast |
Menentukan cara berbagi beban kueri pada node kluster. | Lihat gabungan siaran |
hint.shufflekey=<key> |
Kueri shufflekey membagikan muatan kueri pada node kluster, menggunakan kunci ke data partisi. |
Lihat kueri shuffle |
hint.strategy=shuffle |
Kueri shuffle strategi berbagi beban kueri pada node kluster, di mana setiap simpul memproses satu partisi data. |
Lihat kueri acak |
Nama | Nilai | Deskripsi |
---|---|---|
hint.remote |
auto , left , local , right |
|
hint.strategy=broadcast |
Menentukan cara berbagi beban kueri pada node kluster. | Lihat gabungan siaran |
hint.shufflekey=<key> |
Kueri shufflekey membagikan muatan kueri pada node kluster, menggunakan kunci ke data partisi. |
Lihat kueri shuffle |
hint.strategy=shuffle |
Kueri shuffle strategi berbagi beban kueri pada node kluster, di mana setiap simpul memproses satu partisi data. |
Lihat kueri shuffle |
Catatan
Petunjuk gabungan tidak mengubah semantik join
tetapi dapat memengaruhi performa.
Mengembalikan
Skema dan baris yang dikembalikan bergantung pada rasa gabungan. Rasa gabungan ditentukan dengan kata kunci jenis . Tabel berikut ini memperlihatkan ragam gabungan yang didukung. Untuk melihat contoh ragam gabungan tertentu, pilih tautan di kolom Gabungkan ragam .
Rasa gabungan | Mengembalikan | Ilustrasi |
---|---|---|
innerunique (default) | Gabungan dalam dengan deduplikasi sisi kiri Skema: Semua kolom dari kedua tabel, termasuk kunci yang cocok Baris: Semua baris yang dideduplikasi dari tabel kiri yang cocok dengan baris dari tabel kanan |
|
Batin | Gabungan dalam standar Skema: Semua kolom dari kedua tabel, termasuk kunci yang cocok Baris: Hanya baris yang cocok dari kedua tabel |
|
leftouter | Gabungan luar kiri Skema: Semua kolom dari kedua tabel, termasuk kunci yang cocok Baris: Semua rekaman dari tabel kiri dan hanya baris yang cocok dari tabel kanan |
|
rightouter | Gabungan luar kanan Skema: Semua kolom dari kedua tabel, termasuk kunci yang cocok Baris: Semua rekaman dari tabel kanan dan hanya baris yang cocok dari tabel kiri |
|
fullouter | Gabungan luar penuh Skema: Semua kolom dari kedua tabel, termasuk kunci yang cocok Baris: Semua rekaman dari kedua tabel dengan sel yang tidak cocok diisi dengan null |
|
leftsemi | Semi-gabungan kiri Skema: Semua kolom dari tabel kiri Baris: Semua rekaman dari tabel kiri yang cocok dengan rekaman dari tabel kanan |
|
leftanti , anti , leftantisemi |
Anti join kiri dan varian semi Skema: Semua kolom dari tabel kiri Baris: Semua rekaman dari tabel kiri yang tidak cocok dengan rekaman dari tabel kanan |
|
rightsemi | Semi-gabungan kanan Skema: Semua kolom dari tabel kanan Baris: Semua rekaman dari tabel kanan yang cocok dengan rekaman dari tabel kiri |
|
rightanti , rightantisemi |
Varian anti join dan semi kanan Skema: Semua kolom dari tabel kanan Baris: Semua rekaman dari tabel kanan yang tidak cocok dengan rekaman dari tabel kiri |
Gabungan lintas
KQL tidak memberikan rasa lintas-gabungan. Namun, Anda dapat mencapai efek gabungan silang dengan menggunakan pendekatan kunci tempat penampung.
Dalam contoh berikut, kunci tempat penampung ditambahkan ke kedua tabel lalu digunakan untuk operasi gabungan dalam, secara efektif mencapai perilaku seperti lintas gabungan:
X | extend placeholder=1 | join kind=inner (Y | extend placeholder=1) on placeholder
Konten terkait
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