Eşleme veri akışında arama dönüşümü

Uygulama hedefi: Azure SYNAPSE Analytics 'i Azure Data Factory

Veri akışı akışındaki başka bir kaynaktaki verilere başvurmak için arama dönüşümünü kullanın. Arama dönüştürmesi, eşleşen verilerden alınan sütunları kaynak verilerinize ekler.

Bir arama dönüştürmesi, bir sol dış birleşime benzer. Birincil akıştaki tüm satırlar, arama akışından ek sütunları olan çıkış akışında bulunur.

Yapılandırma

Ekran görüntüsü, aşağıdaki metinde açıklanan etiketlere sahip arama ayarları sekmesini gösterir.

Birincil akış: Gelen veri akışı. Bu akış, birleştirmenin sol tarafıyla eşdeğerdir.

Arama akışı: Birincil akışa eklenen veriler. Eklenen veriler arama koşullarına göre belirlenir. Bu akış, birleştirmenin sağ tarafıyla eşdeğerdir.

Birden çok satırı eşleştir: Etkinleştirilirse, birincil akışta birden fazla eşleşme içeren bir satır birden çok satır döndürür. Aksi takdirde, ' Match on ' koşuluna göre yalnızca tek bir satır döndürülür.

Eşleşme: Yalnızca ' birden fazla satır Eşleştir ' seçilirse görünür. Herhangi bir satır, ilk eşleşme veya son eşleşme ile eşleşmeyeceğinizi seçin. En hızlı şekilde çalıştığı için herhangi bir satır önerilir. İlk satır veya son satır seçiliyse sıralama koşullarını belirtmeniz gerekir.

Arama koşulları: Hangi sütunların eşleşeceğini seçin. Eşitlik koşulu karşılansa satırlar eşleşme olarak kabul edilir. Üzerine gelin ve 'Hesaplanan sütun' öğesini seçerek veri akışı ifade dilini kullanarak bir değeri ayıklar.

Her iki akıştan tüm sütunlar çıkış verilerine dahil edilir. Yinelenen veya istenmeyen sütunları bırakmak için arama dönüştürmenizin ardından bir seçim dönüşümü ekleyin. Sütunlar havuz dönüştürmesinde de bırakılır veya yeniden adlandırılamaz.

Denk olmayan birleşimler

Arama koşullarınız içinde eşittir (!=) veya daha büyük (>) gibi bir koşullu işleç kullanmak için, iki sütun arasındaki işleç açılan listesi'ne tıklayın. Denk olmayan birleşimler, İyileştir sekmesindeki Sabit yayın kullanılarak iki akışta en az birinin yayına ihtiyacı vardır.

Denk olmayan arama

Eşlene satırları analiz etme

Arama dönüştürmenizin ardından, isMatch() aramanın tek tek satırlar için eş olup olamay olduğunu görmek için işlev kullanılabilir.

Arama düzeni

Bu düzenin bir örneği, işlevde bölmek için koşullu bölme dönüştürmesi isMatch() kullanmaktır. Yukarıdaki örnekte, eşleşen satırlar en üst akışa gider ve eşleşmeyen satırlar akışta NoMatch akar.

Arama koşullarını test etme

Hata ayıklama modunda veri önizlemesi ile arama dönüştürmesini test etmek için bilinen küçük bir veri kümesi kullanın. Büyük bir veri kümesinden satır örneklemesi sırasında test için okunacak satırları ve anahtarları tahmin etmek mümkün değildir. Sonuç belirlenmci değildir, yani birleştirme koşullarınız herhangi bir eşleşmeyi getireyemz.

Yayın iyileştirmesi

Yayına Katılma

Birleşimler, aramalar ve mevcut dönüşümde, bir veya her iki veri akışı çalışan düğümü belleğine sığması halinde yayını etkinleştirerek performansı iyileştirebilirsiniz. Spark altyapısı, varsayılan olarak bir kenar yayınlanıp yayınlanmayacağını otomatik olarak karar verir. Hangi tarafın yayınlanmak üzere el ile seçmek için, sabit' i seçin.

Birleşimlerinizin zaman aşımı hatalarıyla çalışmadığı durumlar dışında yayınlamayı devre dışı bırakmanız önerilmez.

Önbelleğe alınan arama

Aynı kaynakta birden çok daha küçük arama yapıyorsanız, önbelleğe alınmış havuz ve arama arama dönüşümünüze göre daha iyi bir kullanım örneği olabilir. Bir önbellek havuzunun daha iyi bir veri deposunda en büyük değeri, bir hata iletisi veritabanına eşleşen hata kodlarını arayabileceği yaygın örnekler. Daha fazla bilgi için, önbellek havuzları ve önbelleğe alınmış aramalarhakkında bilgi edinin.

Veri akışı betiği

Syntax

<leftStream>, <rightStream>
    lookup(
        <lookupConditionExpression>,
        multiple: { true | false },
        pickup: { 'first' | 'last' | 'any' },  ## Only required if false is selected for multiple
        { desc | asc }( <sortColumn>, { true | false }), ## Only required if 'first' or 'last' is selected. true/false determines whether to put nulls first
        broadcast: { 'auto' | 'left' | 'right' | 'both' | 'off' }
    ) ~> <lookupTransformationName>

Örnek

Ekran görüntüsü aşağıdaki kodun arama ayarları sekmesini gösterir.

Yukarıdaki arama yapılandırması için veri akışı betiği aşağıdaki kod parçacığında bulunur.

SQLProducts, DimProd lookup(ProductID == ProductKey,
    multiple: false,
    pickup: 'first',
    asc(ProductKey, true),
    broadcast: 'auto')~> LookupKeys

Sonraki adımlar