Aracılığıyla paylaş


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) DimensionTableher ç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 ve innerleftouter 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 tersidir join .
  • işleci lookup tabloyu otomatik olarak tabloya $right yayınlar $left (temelde, belirtilmiş gibi hint.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 $leftbelirtilir.
RightTable string ✔️ Olgu tablosundaki yeni sütunları "doldurmak" için kullanılan tablo veya tablosal ifade. olarak $rightbelirtilir.
Ö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 kindisekind=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 DimTablearası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