union işleci
İki veya daha fazla tablo alır ve bunların tümünün satırlarını döndürür.
Syntax
[ T|
] union
[ UnionParameters ] [kind=
|outer
inner
] [withsource=
ColumnName] [isfuzzy=
|true
false
] Tablolar
Söz dizimi kuralları hakkında daha fazla bilgi edinin.
Not
bir set deyimi kullanılarak veya istemci isteği özellikleri aracılığıyla request özelliği true
olarak ayarlanarak best_effort
işlecin işlemi union
değiştirilebilir. Bu özellik olarak true
union
ayarlandığında, işleç "birleştirilmiş" alt ifadelerden herhangi birini yürütmek için benzer çözümlemeyi ve bağlantı hatalarını göz ardı eder ve sorgu durumu sonuçlarında bir uyarı verir.
Parametreler
Ad | Tür | Gerekli | Açıklama |
---|---|---|---|
T | string |
Giriş tablosal ifadesi. | |
UnionParameters | string |
Satır eşleştirme işleminin ve yürütme planının davranışını denetleen Ad= Değeri biçiminde sıfır veya daha fazla boşlukla ayrılmış parametre. Desteklenen birleşim parametrelerine bakın. |
|
kind |
string |
inner veya outer . inner , sonucun tüm giriş tablolarında ortak olan sütunların alt kümesine sahip olmasını neden olur. outer , sonucun herhangi bir girişte oluşan tüm sütunlara sahip olmasını sağlar. Giriş satırı tarafından tanımlanmayan hücreler olarak null ayarlanır. Varsayılan değer: outer .ile outer sonuç, her ad ve tür oluşumları için bir sütun olan herhangi bir girişte oluşan tüm sütunları içerir. Başka bir deyişle, bir sütun birden çok tabloda görünüyorsa ve birden çok türe sahipse, birleşimin sonucundaki her tür için karşılık gelen bir sütunu vardır. Bu sütun adı, '_' ve ardından kaynak sütun türü ile son eklenmiştir. |
|
withsource= Columnname |
string |
Belirtilirse çıkışta ColumnName adlı bir sütun bulunur ve değeri her satıra hangi kaynak tablonun katkıda bulunduğunu gösterir. Sorgu, varsayılan veritabanı da dahil olmak üzere birden fazla veritabanındaki tablolara etkili bir şekilde başvuruyorsa, bu sütunun değeri veritabanıyla nitelenmiş bir tablo adına sahiptir. birden fazla kümeye başvurulursa değerde küme ve veritabanı nitelikleri bulunur. | |
isfuzzy |
bool |
olarak ayarlanırsa true , birleşim bacakların belirsiz çözünürlüğüne izin verir. Birleşim kaynakları kümesi, sorgu analiz edilirken ve yürütülmeye hazırlanırken var olan ve o sırada erişilebilir olan tablo başvuruları kümesine indirgenir. Böyle bir tablodan en az biri bulunursa, herhangi bir çözüm hatası sorgu durumu sonuçlarında bir uyarı verir, ancak sorgunun yürütülmesini engellemez. Hiçbir çözüm başarılı olmazsa, sorgu bir hata döndürür. Varsayılan değer: false .isfuzzy=true yalnızca kaynak çözümleme aşaması için union geçerlidir. Kaynak tablo kümesi belirlendikten sonra, olası ek sorgu hataları gizlenmeyecektir. |
|
Tablolar | string |
Bir veya daha fazla virgülle ayrılmış tablo başvurusu, parantez içine alınmış bir sorgu ifadesi veya joker karakterle belirtilen bir tablo kümesi. Örneğin, E* veritabanında adları başlayan E tüm tabloların birleşimini oluşturur. |
Desteklenen birleşim parametreleri
Ad | Tür | Gerekli | Açıklama |
---|---|---|---|
hint.concurrency |
int |
Sisteme, işlecin kaç eş zamanlı alt sorgunun union paralel olarak yürütülmesi gerektiğini gösterir. Varsayılan değer, kümenin tek düğümündeki CPU çekirdeklerinin sayısıdır (2 - 16). |
|
hint.spread |
int |
Eşzamanlı alt sorgu yürütmesi tarafından union kaç düğüm kullanılması gerektiğini sisteme ipuçları. Varsayılan değer 1'dir. |
Ad | Tür | Gerekli | Açıklama |
---|---|---|---|
T | string |
Giriş tablosal ifadesi. | |
kind |
string |
inner veya outer . inner , sonucun tüm giriş tablolarında ortak olan sütunların alt kümesine sahip olmasını neden olur. outer , sonucun herhangi bir girişte oluşan tüm sütunlara sahip olmasını sağlar. Giriş satırı tarafından tanımlanmayan hücreler olarak null ayarlanır. Varsayılan değer: outer .ile outer sonuç, her ad ve tür oluşumları için bir sütun olan herhangi bir girişte oluşan tüm sütunları içerir. Başka bir deyişle, bir sütun birden çok tabloda görünüyorsa ve birden çok türe sahipse, birleşimin sonucundaki her tür için karşılık gelen bir sütunu vardır. Bu sütun adı, '_' ve ardından kaynak sütun türü ile son eklenmiştir. |
|
withsource= Columnname |
string |
Belirtilirse çıkışta ColumnName adlı bir sütun bulunur ve değeri her satıra hangi kaynak tablonun katkıda bulunduğunu gösterir. Sorgu, varsayılan veritabanı da dahil olmak üzere birden fazla veritabanındaki tablolara etkili bir şekilde başvuruyorsa, bu sütunun değeri veritabanıyla nitelenmiş bir tablo adına sahiptir. birden fazla kümeye başvurulursa değerde küme ve veritabanı nitelikleri bulunur. | |
isfuzzy |
bool |
olarak ayarlanırsa true , birleşim bacakların belirsiz çözünürlüğüne izin verir. Birleşim kaynakları kümesi, sorgu analiz edilirken ve yürütülmeye hazırlanırken var olan ve o sırada erişilebilir olan tablo başvuruları kümesine indirgenir. Böyle bir tablodan en az biri bulunursa, herhangi bir çözüm hatası sorgu durumu sonuçlarında bir uyarı verir, ancak sorgunun yürütülmesini engellemez. Hiçbir çözüm başarılı olmazsa, sorgu bir hata döndürür. Ancak, çalışma alanları ve uygulamalar arası sorgularda çalışma alanlarından veya uygulamalardan herhangi biri bulunamazsa sorgu başarısız olur. Varsayılan değer: false .isfuzzy=true yalnızca kaynak çözümleme aşaması için union geçerlidir. Kaynak tablo kümesi belirlendikten sonra, olası ek sorgu hataları gizlenmeyecektir. |
|
Tablolar | string |
Bir veya daha fazla virgülle ayrılmış tablo başvurusu, parantez içine alınmış bir sorgu ifadesi veya joker karakterle belirtilen bir tablo kümesi. Örneğin, E* veritabanında adları başlayan E tüm tabloların birleşimini oluşturur.Tablo listesi her bilindiği zaman joker karakter kullanmaktan kaçınabilirsiniz. Bazı çalışma alanları, verimsiz yürütmeye yol açabilecek çok sayıda tablo içerir. Zaman içinde tablolar da eklenebilir ve bu da öngörülemeyen sonuçlara yol açabilir. |
Not
- Kapsam,
union
anahtar sözcüğüyleview
ilişkilendirildiyse let deyimlerini içerebilir. - Kapsam
union
işlevleri içermez. İşlev eklemek için anahtar sözcüğüyleview
bir let deyimi tanımlayın. - Birleşim bacakların görüneceği sıranın garantisi yoktur, ancak her bacağın bir
order by
operatörü varsa, her bacak sıralanır.
Döndürülenler
Tüm giriş tablolarında olduğu kadar çok satırı olan bir tablo.
Örnekler
Ad veya sütunda dize içeren tablolar
union K* | where * has "Kusto"
Veritabanındaki adı ile K
başlayan ve herhangi bir sütunun sözcüğünü Kusto
içerdiği tüm tablolardan satırlar.
Ayrı sayı
union withsource=SourceTable kind=outer Query, Command
| where Timestamp > ago(1d)
| summarize dcount(UserId)
Geçen gün içinde bir Query
olay veya Command
olay üreten ayrı kullanıcıların sayısı. Sonuçta, 'SourceTable' sütunu "Query" veya "Command" değerini gösterir.
Query
| where Timestamp > ago(1d)
| union withsource=SourceTable kind=outer
(Command | where Timestamp > ago(1d))
| summarize dcount(UserId)
Bu daha verimli sürüm aynı sonucu verir. Birleşim oluşturmadan önce her tabloyu filtreler.
isfuzzy=true
kullanma
// 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
Çıkış
Count |
---|
2 |
Sorgu Durumunu Gözlemleme - aşağıdaki uyarı döndürüldü: 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
Çıkış
Count |
---|
3 |
Sorgu Durumunu Gözlemleme - aşağıdaki uyarı döndürüldü: Failed to resolve entity 'SomeView*'
Kaynak sütun türleri uyuşmazlığı
let View_1 = view () { print x=1 };
let View_2 = view () { print x=toint(2) };
union withsource=TableName View_1, View_2
Çıkış
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
Çıkış
TableName | x_long1 | x_int | x_long |
---|---|---|---|
View_1 | 1 | ||
View_2 | 2 | ||
View_3 | 3 |
x
'den View_1
alınan sütun sonekini _long
alır ve sonuç şemasında adlı x_long
bir sütun zaten var olduğundan, sütun adları yinelenenleri kaldırılarak yeni bir sütun oluşturulur.x_long1
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin