Aracılığıyla paylaş


Kümeler arası join işleci

Şunlar için geçerlidir: ✅Microsoft Fabric

Kümeler arası birleştirme, farklı kümelerde bulunan veri kümelerinden veri birleştirmeyi içerir.

Kümeler arası birleştirmede, sorgu üç olası konumda yürütülebilir ve her birinin bu belge boyunca başvuru için belirli bir ataması vardır:

  • Yerel küme: İsteğin gönderildiği kümedir ve bu küme, veritabanını bağlamda barındıran küme olarak da bilinir.
  • Sol küme: Birleştirme işleminin sol tarafında verileri barındıran küme.
  • Sağ küme: Birleştirme işleminin sağ tarafında verileri barındıran küme.

Sorguyu çalıştıran küme, verileri diğer kümeden getirir.

Not

Birleştirme işleminin sol ve sağ tarafındaki veriler aynı kümede barındırılıyorsa, veriler yerel küme dışında barındırılıyor olsa bile kümeler arası birleştirme olarak kabul edilmez.

Sözdizimi

[ cluster(ClusterName).database(DatabaseName).]LeftTable| ...
| join [ hint.remote=Strateji ](
  [ cluster(ClusterName).database(DatabaseName).]RightTable| ...
)Koşullarda

Söz dizimi kuralları hakkında daha fazla bilgi edinin.

Parametreler

Ad Tür Zorunlu Açıklama
LeftTable string ✔️ Satırları birleştirilecek olan sol tablo veya tablosal ifade. olarak $leftbelirtilir.
Strateji string Birleştirmenin yürütüleceği kümeyi belirler. Desteklenen değerler şunlardır: left, right, localve auto. Daha fazla bilgi için bkz . Stratejiler.
ClusterName string Birleştirme verileri yerel kümenin dışında bulunuyorsa kümeyi belirtmek için cluster() işlevini kullanın.
DatabaseName string Birleştirme verileri yerel veritabanı bağlamının dışında bulunuyorsa veritabanını belirtmek için database() işlevini kullanın.
RightTable string ✔️ Satırları birleştirilecek olan sağ tablo veya tablosal ifade. olarak $rightbelirtilir.
Koşullar string ✔️ LeftTable'dan gelen satırların RightTable'dangelen satırlarla nasıl eşleşeceğini belirler. Eşleştirmek istediğiniz sütunların adı her iki tabloda da aynıysa ColumnName söz dizimini ONkullanın. Aksi takdirde, LeftColumn RightColumnON $left.==söz dizimini $right.kullanın. Birden çok koşul belirtmek için "ve" anahtar sözcüğünü kullanabilir veya bunları virgülle ayırabilirsiniz. Virgül kullanırsanız, koşullar "ve" mantıksal işleci kullanılarak değerlendirilir.

Stratejiler

Aşağıdaki listede Strategy parametresi için desteklenen değerler açıklanmaktadır:

  • left: Sol tablonun veya sol kümenin kümesinde birleştirmeyi yürütür.
  • right: Birleştirmeyi doğru tablonun veya sağ kümenin kümesinde yürütür.
  • local: Geçerli kümenin kümesinde veya yerel kümede birleştirmeyi yürütür.
  • auto: (Varsayılan) Uzaktan iletişim kararını Kusto verir.

Not

İpuculandırılmış strateji birleştirme işlemi için geçerli değilse birleştirme uzaktan iletişim ipucu yoksayılır.

Otomatik strateji nasıl çalışır?

Varsayılan olarak, auto stratejisi aşağıdaki kurallara göre kümeler arası birleştirmenin nerede yürütüleceğini belirler:

  • Tablolardan biri yerel kümede barındırılıyorsa, birleştirme yerel kümede gerçekleştirilir. Örneğin, otomatik strateji ile bu sorgu yerel kümede yürütülür:

    T | ... | join (cluster("B").database("DB").T2 | ...) on Col1
    
  • Her iki tablo da yerel kümenin dışında barındırılıyorsa, sağ kümede birleştirme gerçekleştirilir. Örneğin, iki kümenin de yerel küme olmadığını varsayarsak, birleştirme sağ kümede yürütülür:

    cluster("B").database("DB").T | ... | join (cluster("C").database("DB2").T2 | ...) on Col1
    

Performans değerlendirmeleri

En iyi performans için sorguyu en büyük tabloyu içeren kümede çalıştırmanızı öneririz.

Aşağıdaki örnekte, T | ... tarafından üretilen veri kümesi cluster("B").database("DB").T2 | ... tarafından üretilen veri kümesinden küçükse, birleştirme işlemini Bkümede yürütmek daha verimli olacaktır. Bu durumda yerel küme yerine doğru kümede yürütülür.

T | ... | join (cluster("B").database("DB").T2 | ...) on Col1

Performansı iyileştirmek için hint.remote=right kullanmak üzere sorguyu yeniden yazabilirsiniz. Bu şekilde, sol tablo yerel kümede olsa bile birleştirme işlemi sağ kümede gerçekleştirilir.

T | ... | join hint.remote=right (cluster("B").database("DB").T2 | ...) on Col1