operator join
Berlaku untuk: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
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. Warna bayangan mewakili kolom yang dikembalikan, dan area ber bayangan mewakili baris yang dikembalikan.
Sintaks
LeftTable |
join
[ kind
=
JoinFlavor ] [ Petunjuk ](
Kondisi RightTable)
on
Pelajari selengkapnya tentang konvensi sintaksis.
Parameter
Nama | Tipe | Wajib | 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 bentuk Nilai Nama = 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 acak |
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 acak |
hint.strategy=shuffle |
Kueri shuffle strategi berbagi beban kueri pada node kluster, di mana setiap simpul memproses satu partisi data. |
Lihat kueri acak |
Catatan
Petunjuk gabungan tidak mengubah semantik join
tetapi dapat memengaruhi performa.
Mengembalikan
Skema pengembalian dan baris bergantung pada rasa gabungan. Rasa gabungan ditentukan dengan kata kunci jenis . Tabel berikut ini memperlihatkan ragam gabungan yang didukung. Untuk melihat contoh untuk ragam gabungan tertentu, pilih tautan di kolom Gabungkan rasa .
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 deduplikasi 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 |
Anti join kanan dan varian semi Skema: Semua kolom dari tabel kanan Baris: Semua rekaman dari tabel kanan yang tidak cocok dengan rekaman dari tabel kiri |
![]() |
Gabungan lintas
KQL tidak menyediakan rasa gabungan silang. 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 lintas-gabungan seperti:
X | extend placeholder=1 | join kind=inner (Y | extend placeholder=1) on placeholder