lookup işleci
Şunlar için geçerlidir: ✅Microsoft Fabric✅
Olgu tablosunun sütunlarını boyut tablosunda aranan değerlerle genişletir.
Örneğin, aşağıdaki sorgu, bir arama yaparak FactTable
($left
) öğesini DimensionTable
($right
) verilerle genişleten bir tabloya neden olur. Arama, FactTable
'deki her çifti (CommonColumn
, Col1
) DimensionTable
her çiftle (CommonColumn
, Col2
) eşleştirir. Olgu ve boyut tabloları arasındaki farklar için bkz . olgu ve boyut tabloları.
FactTable | lookup kind=leftouter (DimensionTable) on CommonColumn, $left.Col1 == $right.Col2
işlecilookup
, aşağıdaki farklarla join işlecine benzer bir işlem gerçekleştirir:
- Sonuç, birleştirme işleminin
$right
temeli olan tablodaki sütunları yinelemez. - Yalnızca iki tür arama desteklenir
leftouter
veinner
leftouter
varsayılan aramadır. - Performans açısından, sistem varsayılan olarak tablonun daha büyük (olgular
$left
) tablosu,$right
tablonun ise daha küçük (boyutlar) tablosu olduğunu varsayar. Bu, işleç tarafından kullanılan varsayımın tam tersidirjoin
. - işleci
lookup
tabloyu otomatik olarak tabloya$right
yayınlar$left
(temelde, belirtilmiş gibihint.broadcast
davranır). Bu, tablonun boyutunu$right
sınırlar.
Not
Aramanın sağ tarafı birkaç onlarca MB'den büyükse sorgu başarısız olur.
Sağ tarafın bayt cinsinden boyutunu tahmin etmek için aşağıdaki sorguyu çalıştırabilirsiniz:
rightSide
| summarize sum(estimate_data_size(*))
Sözdizimi
LeftTable|
lookup
[kind
=
(leftouter
|inner
)] (
RightTable)
on
Öznitelikleri
Söz dizimi kuralları hakkında daha fazla bilgi edinin.
Parametreler
Ad | Tür | Zorunlu | Açıklama |
---|---|---|---|
LeftTable | string |
✔️ | Aramanın temeli olan tablo veya tablosal ifade. olarak $left belirtilir. |
RightTable | string |
✔️ | Olgu tablosundaki yeni sütunları "doldurmak" için kullanılan tablo veya tablosal ifade. olarak $right belirtilir. |
Öznitelikler | string |
✔️ | LeftTable'dan gelen satırların RightTable'dan gelen satırlarla nasıl eşleştirildiğini açıklayan bir veya daha fazla kuralın virgülle ayrılmış listesi. Mantıksal işleç kullanılarak and birden çok kural değerlendirilir. Bkz. Kurallar. |
kind |
string |
LeftTable'da RightTable'da eşleşmesi olmayan satırların nasıl işleneceğini belirler. Varsayılan olarak, leftouter kullanılır; bu da tüm bu satırların çıkışta işleç tarafından eklenen RightTable sütunlarının eksik değerleri için null değerlerle gösterildiği anlamına gelir. Kullanılırsa inner , bu tür satırlar çıkıştan atlanır. Diğer birleştirme türleri işleç tarafından lookup desteklenmez. |
Kurallar
Kural türü | Sözdizimi | Yüklem |
---|---|---|
Ada göre eşitlik | ColumnName |
where
LeftTable.ColumnName== RightTable.ColumnName |
Değere göre eşitlik |
$left.
LeftColumn== $right. RightColumn |
where
$left.
LeftColumn== $right. *RightColumn |
Not
'Değere göre eşitlik' durumunda, sütun adlarının $right
.
Döndürülenler
Aşağıdakiler içeren bir tablo:
- Eşleşen anahtarlar da dahil olmak üzere iki tablonun her birindeki her sütun için bir sütun. Ad çakışmaları varsa sağ taraftaki sütunlar otomatik olarak yeniden adlandırılır.
- Giriş tabloları arasındaki her eşleşme için bir satır. Eşleşme, bir tablodan seçilen ve tüm alanlar için diğer tablodaki
on
bir satırla aynı değere sahip olan bir satırdır. - Öznitelikleri (arama anahtarları) çıkış tablosunda yalnızca bir kez görünür.
- belirtilmemişse veya
kind
isekind=leftouter
, iç eşleşmelere ek olarak, eşleşmesi olmasa bile soldaki (ve/veya sağdaki) her satır için bir satır vardır. Bu durumda, eşleşmeyen çıkış hücreleri null içerir. - ise
kind=inner
, soldan ve sağdan eşleşen satırların her birleşimi için çıkışta bir satır vardır.
Örnekler
Aşağıdaki örnekte, Personal
ve Family
sütunlarındaki eşleşen değerlere göre FactTable
ve DimTable
arasında sol dış birleştirmenin nasıl gerçekleştirebileceğiniz gösterilmektedir.
let FactTable=datatable(Row:string,Personal:string,Family:string) [
"1", "Rowan", "Murphy",
"2", "Ellis", "Turner",
"3", "Ellis", "Turner",
"4", "Maya", "Robinson",
"5", "Quinn", "Campbell"
];
let DimTable=datatable(Personal:string,Family:string,Alias:string) [
"Rowan", "Murphy", "rowanm",
"Ellis", "Turner", "ellist",
"Maya", "Robinson", "mayar",
"Quinn", "Campbell", "quinnc"
];
FactTable
| lookup kind=leftouter DimTable on Personal, Family
çıkış
Satır | Bireysel | Aile | Diğer ad |
---|---|---|---|
1 | Üvez | Murphy | satıranm |
2 | Erdoğan | Turner | ellist |
3 | Erdoğan | Turner | ellist |
4 | Maya | Robinson | mayar |
5 | Quinn | Çalışkan | quinnc |
İlgili içerik
- Yayına katılma
- sol birleştirme
- İç birleşim
- join işleci