union işleci
Şunlar için geçerlidir: ✅Microsoft Fabric✅Azure Veri Gezgini✅ Azure İzleyici✅Microsoft Sentinel
İki veya daha fazla tablo alır ve tümünün satırlarını döndürür.
Sözdizimi
[ T |
] union
[ UnionParameters ] [kind=
outer
|inner
] [withsource=
ColumnName] [isfuzzy=
|true
false
] Tables
[ T |
] union
[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 istek özelliği olarak true
ayarlanarak best_effort
işlecin işlemi union
değiştirilebilir. Bu özellik olarak true
union
ayarlandığında, işleç "birleşimli" alt ifadelerden herhangi birini yürütmek için benzer çözümleme ve bağlantı hatalarını göz ardı eder ve sorgu durumu sonuçlarında bir uyarı verir.
Parametreler
Ad | Tür | Zorunlu | 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 girişlerden herhangi birinde 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şim sonucundaki her tür için karşılık gelen bir sütunu vardır. Bu sütun adı bir '_' ve ardından kaynak sütun türü ile son eklenmiştir. |
|
withsource= ColumnName |
string |
Belirtilirse, çıkışta değeri her satıra katkıda bulunan kaynak tabloyu gösteren ColumnName adlı bir sütun bulunur. 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şvurulsa değerde küme ve veritabanı nitelikleri bulunur. | |
isfuzzy |
bool |
olarak ayarlanırsa true , birleşim bacaklarını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. Bu tür tablolardan 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ı olmadıysa 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 | Zorunlu | 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 ile 16). |
|
hint.spread |
int |
Sisteme eşzamanlı union alt sorgu yürütmesi tarafından kaç düğüm kullanılması gerektiğini gösterir. Varsayılan değer 1'dir. |
Adı | Tür | Zorunlu | 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 girişlerden herhangi birinde 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şim sonucundaki her tür için karşılık gelen bir sütunu vardır. Bu sütun adı bir '_' ve ardından kaynak sütun türü ile son eklenmiştir. |
|
withsource= ColumnName |
string |
Belirtilirse, çıkışta değeri her satıra katkıda bulunan kaynak tabloyu gösteren ColumnName adlı bir sütun bulunur. 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şvurulsa değerde küme ve veritabanı nitelikleri bulunur. | |
isfuzzy |
bool |
olarak ayarlanırsa true , birleşim bacaklarını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. Bu tür tablolardan 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ı olmadıysa 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çının. Bazı çalışma alanları, verimsiz yürütmeye yol açabilecek çok sayıda tablo içerir. Tablolar da zaman içinde eklenerek öngörülemeyen sonuçlar elde edilebilir. |
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üğüyle bir let deyimiview
tanımlayın. - Birleşim bacaklarının hangi sırada görüneceğinin 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 tablolardaki 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 oluşturan farklı kullanıcıların sayısı. Sonuç olarak , 'SourceTable' sütunu "Sorgu" veya "Komut" olarak gösterilir.
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şturulmadan ö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
Çıktı
Sayı |
---|
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
Çıktı
Sayı |
---|
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
Çıktı
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
Çıktı
TableName | x_long1 | x_int | x_long |
---|---|---|---|
View_1 | 1 | ||
View_2 | 2 | ||
View_3 | 3 |
x
sütunundan View_1
alınan sonek _long
ve adlı x_long
sütun sonuç şemasında zaten var olduğundan, sütun adları yinelenenleri kaldırılarak yeni bir sütun oluşturulur:x_long1