operator union
Berlaku untuk: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Mengambil dua atau beberapa tabel dan menampilkan baris dari semuanya.
[ T |
] union
[ UnionParameters ] [kind=
outer
|inner
] [withsource=
ColumnName] [isfuzzy=
|true
false
] Tables
[ T |
] union
[kind=
outer
|inner
] [withsource=
ColumnName] [isfuzzy=
|true
false
] Tables
Pelajari selengkapnya tentang konvensi sintaksis.
Catatan
Operasi union
operator dapat diubah dengan mengatur best_effort
properti permintaan ke true
, menggunakan pernyataan yang ditetapkan atau melalui properti permintaan klien. Ketika properti ini diatur ke true
, union
operator akan mengabaikan resolusi fuzzy dan kegagalan konektivitas untuk menjalankan salah satu sub-ekspresi yang "disatukan" dan memberikan peringatan dalam hasil status kueri.
Nama | Tipe | Wajib | Deskripsi |
---|---|---|---|
T | string |
Ekspresi tabular input. | |
UnionParameters | string |
Nol atau lebih parameter yang dipisahkan spasi dalam bentuk Nilai Nama = yang mengontrol perilaku operasi pencocokan baris dan rencana eksekusi. Lihat parameter union yang didukung. |
|
kind |
string |
Salah satu inner atau outer . inner menyebabkan hasilnya memiliki subset kolom yang umum untuk semua tabel input. outer menyebabkan hasilnya memiliki semua kolom yang terjadi di salah satu input. Sel yang tidak ditentukan oleh baris input diatur ke null . Default adalah outer .Dengan outer , hasilnya memiliki semua kolom yang terjadi di salah satu input, satu kolom untuk setiap nama dan jenis kemunculan. Ini berarti bahwa jika kolom muncul di beberapa tabel dan memiliki beberapa jenis, kolom tersebut memiliki kolom yang sesuai untuk setiap jenis dalam hasil union. Nama kolom ini diafiks dengan '_' diikuti dengan jenis kolom asal. |
|
withsource= ColumnName |
string |
Jika ditentukan, output menyertakan kolom yang disebut ColumnName yang nilainya menunjukkan tabel sumber mana yang telah berkontribusi setiap baris. Jika kueri secara efektif mereferensikan tabel dari lebih dari satu database termasuk database default, maka nilai kolom ini memiliki nama tabel yang memenuhi syarat dengan database. kualifikasi kluster dan database ada dalam nilai jika lebih dari satu kluster dirujuk. | |
isfuzzy |
bool |
Jika diatur ke true , memungkinkan resolusi fuzzy kaki serikat. Kumpulan sumber gabungan dikurangi ke kumpulan referensi tabel yang ada dan dapat diakses pada saat menganalisis kueri dan bersiap untuk eksekusi. Jika setidaknya satu tabel tersebut ditemukan, kegagalan resolusi apa pun menghasilkan peringatan dalam hasil status kueri, tetapi tidak akan mencegah eksekusi kueri. Jika tidak ada resolusi yang berhasil, kueri mengembalikan kesalahan. Default adalah false .isfuzzy=true hanya berlaku untuk fase resolusi sumber union . Setelah kumpulan tabel sumber ditentukan, kemungkinan kegagalan kueri tambahan tidak akan ditekan. |
|
Tabel | string |
Satu atau beberapa referensi tabel yang dipisahkan koma, ekspresi kueri yang diapit dengan tanda kurung, atau sekumpulan tabel yang ditentukan dengan kartubebas. Misalnya, E* akan membentuk union dari semua tabel dalam database yang namanya dimulai dengan E . |
Nama | Tipe | Wajib | Deskripsi |
---|---|---|---|
hint.concurrency |
int |
Memberi sistem petunjuk berapa banyak subkueri bersamaan dari operator union yang harus dijalankan secara paralel. Defaultnya adalah jumlah inti CPU pada simpul tunggal kluster (2 hingga 16). |
|
hint.spread |
int |
Memberi sistem petunjuk berapa banyak node yang harus digunakan oleh eksekusi subkueri union bersamaan. Defaultnya adalah 1. |
Nama | Tipe | Wajib | Deskripsi |
---|---|---|---|
T | string |
Ekspresi tabular input. | |
kind |
string |
Salah satu inner atau outer . inner menyebabkan hasilnya memiliki subset kolom yang umum untuk semua tabel input. outer menyebabkan hasilnya memiliki semua kolom yang terjadi di salah satu input. Sel yang tidak ditentukan oleh baris input diatur ke null . Default adalah outer .Dengan outer , hasilnya memiliki semua kolom yang terjadi di salah satu input, satu kolom untuk setiap nama dan jenis kemunculan. Ini berarti bahwa jika kolom muncul di beberapa tabel dan memiliki beberapa jenis, kolom tersebut memiliki kolom yang sesuai untuk setiap jenis dalam hasil union. Nama kolom ini diafiks dengan '_' diikuti dengan jenis kolom asal. |
|
withsource= ColumnName |
string |
Jika ditentukan, output menyertakan kolom yang disebut ColumnName yang nilainya menunjukkan tabel sumber mana yang telah berkontribusi setiap baris. Jika kueri secara efektif mereferensikan tabel dari lebih dari satu database termasuk database default, maka nilai kolom ini memiliki nama tabel yang memenuhi syarat dengan database. kualifikasi kluster dan database ada dalam nilai jika lebih dari satu kluster dirujuk. | |
isfuzzy |
bool |
Jika diatur ke true , memungkinkan resolusi fuzzy kaki serikat. Kumpulan sumber gabungan dikurangi ke kumpulan referensi tabel yang ada dan dapat diakses pada saat menganalisis kueri dan bersiap untuk eksekusi. Jika setidaknya satu tabel tersebut ditemukan, kegagalan resolusi apa pun menghasilkan peringatan dalam hasil status kueri, tetapi tidak akan mencegah eksekusi kueri. Jika tidak ada resolusi yang berhasil, kueri mengembalikan kesalahan. Namun, dalam kueri lintas ruang kerja dan lintas aplikasi, jika salah satu ruang kerja atau aplikasi tidak ditemukan, kueri akan gagal. Default adalah false .isfuzzy=true hanya berlaku untuk fase resolusi sumber union . Setelah kumpulan tabel sumber ditentukan, kemungkinan kegagalan kueri tambahan tidak akan ditekan. |
|
Tabel | string |
Satu atau beberapa referensi tabel yang dipisahkan koma, ekspresi kueri yang diapit dengan tanda kurung, atau sekumpulan tabel yang ditentukan dengan kartubebas. Misalnya, E* akan membentuk union dari semua tabel dalam database yang namanya dimulai dengan E .Setiap kali daftar tabel diketahui, sebaiknya jangan gunakan kartubebas. Beberapa ruang kerja berisi sejumlah besar tabel yang akan menyebabkan eksekusi yang tidak efisien. Tabel juga dapat ditambahkan seiring waktu yang menyebabkan hasil tidak terduga. |
Catatan
- Cakupan
union
dapat menyertakan pernyataan let jika dikaitkanview
dengan kata kunci. - Cakupan
union
tidak akan menyertakan fungsi. Untuk menyertakan fungsi, tentukan pernyataan let denganview
kata kunci. - Tidak ada jaminan urutan di mana kaki serikat akan muncul, tetapi jika setiap kaki memiliki
order by
operator, maka setiap kaki akan diurutkan.
Tabel dengan baris sebanyak yang ada di semua tabel input.
union K* | where * has "Kusto"
Baris dari semua tabel dalam database saat ini yang namanya dimulai dengan K
, dan di kolom mana pun yang menyertakan kata Kusto
.
union withsource=SourceTable kind=outer Query, Command
| where Timestamp > ago(1d)
| summarize dcount(UserId)
Jumlah pengguna berbeda yang telah menghasilkan peristiwa Query
atau peristiwa Command
selama sehari terakhir. Hasilnya, kolom 'SourceTable' akan menunjukkan "Kueri" atau "Perintah".
Query
| where Timestamp > ago(1d)
| union withsource=SourceTable kind=outer
(Command | where Timestamp > ago(1d))
| summarize dcount(UserId)
Versi yang lebih efisien ini menghasilkan hasil yang sama. Ini menyaring setiap tabel sebelum membuat union.
// Using union isfuzzy=true to access non-existing view:
let View_1 = view () { print x=1 };
let View_2 = view () { print x=1 };
let OtherView_1 = view () { print x=1 };
union isfuzzy=true
(View_1 | where x > 0),
(View_2 | where x > 0),
(View_3 | where x > 0)
| count
Hasil
Hitung |
---|
2 |
Mengamati Status Kueri - peringatan berikut ditampilkan: Failed to resolve entity 'View_3'
// Using union isfuzzy=true and wildcard access:
let View_1 = view () { print x=1 };
let View_2 = view () { print x=1 };
let OtherView_1 = view () { print x=1 };
union isfuzzy=true View*, SomeView*, OtherView*
| count
Hasil
Hitung |
---|
3 |
Mengamati Status Kueri - peringatan berikut ditampilkan: Failed to resolve entity 'SomeView*'
let View_1 = view () { print x=1 };
let View_2 = view () { print x=toint(2) };
union withsource=TableName View_1, View_2
Hasil
TableName | x_long | x_int |
---|---|---|
View_1 | 1 | |
View_2 | 2 |
let View_1 = view () { print x=1 };
let View_2 = view () { print x=toint(2) };
let View_3 = view () { print x_long=3 };
union withsource=TableName View_1, View_2, View_3
Hasil
TableName | x_long1 | x_int | x_long |
---|---|---|---|
View_1 | 1 | ||
View_2 | 2 | ||
View_3 | 3 |
Kolom x
dari View_1
menerima akhiran _long
, dan sebagai kolom bernama x_long
sudah ada dalam skema hasil, nama kolom yang de-diduplikasi, menghasilkan kolom baru- x_long1