Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
ŞUNLARA UYGULANIR:
Azure Data Factory
Azure Synapse Analytics
İpucu
Microsoft Fabric'daki
Veri akışları hem Azure Data Factory işlem hatlarında hem de Azure Synapse Analytics işlem hatlarında kullanılabilir. Bu makale, eşleme veri akışları için geçerlidir. Dönüştürmeler hakkında yeniyseniz , Eşleme veri akışlarını kullanarak verileri dönüştürme başlıklı giriş makalesine bakın.
İpucu
Veri Akışı 2. Nesil'deki eşdeğer dönüştürme (Sorguları birleştirme) için bkz. Veri akışı kullanıcılarını eşlemek için Veri Akışı 2. Nesil kılavuzu.
Bir eşleme veri akışında iki kaynaktan veya akıştan verileri birleştirmek için "join" dönüştürmesini kullanın. Çıkış akışı, birleştirme koşuluna göre eşleştirilen her iki kaynaktan tüm sütunları içerir.
Birleştirme türleri
Eşleme veri akışları şu anda beş farklı birleştirme türünü destekler.
İç Birleşim
İç birleşim yalnızca her iki tabloda da eşleşen değerlere sahip satırların çıkışını verir.
Sol Dış
Sol dış bağlantı, sol akıştan tüm satırları ve sağ akıştan eşleşen kayıtları döndürür. Sol akıştan bir satır için eşleşme bulunmuyorsa, sağ akıştan çıkış sütunları NULL olarak ayarlanır. Çıkış, iç bağlama tarafından döndürülen satırlar artı sol kaynaktan eşleşmeyen satırlar içerir.
Not
Veri akışları tarafından kullanılan Spark motoru, birleşim koşullarınızdaki olası kartezyen ürünler nedeniyle zaman zaman başarısız olur. Bu durumda, özel çapraz birleştirmeye geçebilir ve birleştirme koşulunuzu el ile girebilirsiniz. Yürütme altyapısının ilişkinin her iki tarafından tüm satırları hesaplaması ve sonra satırları filtrelemesi gerekebileceğinden bu durum veri akışlarınızda daha yavaş performansa neden olabilir.
Sağ Dış
Sağ dış birleşim, sağ akıştan tüm satırları ve sol akıştan eşleşen kayıtları döndürür. Sağ akıştan bir satırda eşleşme yoksa, sol akıştan çıkış sütunları NULL olarak ayarlanır. Çıktı, iç birleşim tarafından döndürülen satırlar ile sağ veri akışından eşleşmeyen satırları içerir.
Tam Dış
Tam dış birleştirme, eşleşmeyen sütunlar için NULL değerleriyle her iki taraftan gelen tüm sütunları ve satırları çıktıda gösterir.
Özel çapraz birleştirme
Çapraz birleştirme işlemi, bir koşul temelinde iki akışın çapraz çarpımı sonuçlarını üretir. Eşitlik olmayan bir koşul kullanıyorsanız, çapraz birleştirme koşulunuz olarak özel bir ifade belirtin. Çıkış akışı, birleştirme koşuluna uyan tüm satırlardır.
Bu birleştirme türünü, equi olmayan birleşimler ve OR koşullar için kullanabilirsiniz.
Tam bir Kartezyen çarpımı açık bir şekilde üretmek istiyorsanız, eşleşecek yapay bir anahtar oluşturmak için, birleştirmeden önce iki bağımsız akışın her birinde Türetilmiş Sütun dönüşümünü kullanın. Örneğin, her akışta Türetilmiş Sütun'da SyntheticKey adlı yeni bir sütun oluşturun ve bunun değerini 1 olarak ayarlayın. Ardından özel birleştirme ifadeniz olarak kullanın a.SyntheticKey == b.SyntheticKey .
Not
Özel bir cross join yaparken sol veya sağ ilişkinizden en az bir sütun eklediğinizden emin olun. Çapraz birleştirmelerin her iki taraftan sütunlar yerine statik değerlerle yürütülmesi, veri kümesinin tamamında tam tarama yapılmasına ve veri akışınızın kötü performans göstermesine neden olur.
Bulanık birleşim
"Benzer eşleştirmeyi kullan" onay kutusunu açarak tam sütun değeri eşleştirmesi yerine benzer birleşim mantığına göre birleştirmeyi seçebilirsiniz.
- Metin bölümlerini birleştirme: Sözcükler arasındaki boşluğu kaldırarak eşleşmeleri bulmak için bu seçeneği kullanın. Örneğin, bu seçenek etkinleştirildiğinde Data Factory, DataFactory ile eşleştirilir.
- Benzerlik puanı sütunu: İsteğe bağlı olarak, bu değeri depolamak için buraya yeni bir sütun adı girerek bir sütundaki her satır için eşleşen puanı depolamayı seçebilirsiniz.
- Benzerlik eşiği: Seçtiğiniz sütunlardaki değerler arasında yüzde eşleşmesi olarak 60 ile 100 arasında bir değer seçin.
Not
Benzer eşleştirme şu anda yalnızca dize sütun türleriyle ve iç, sol dış ve tam dış birleşim türleriyle çalışır. Fuzzing eşleşmeli birleştirmeler kullanırken yayın optimizasyonunu kapatmanız gerekir.
Yapılandırma
- Sağ akış açılan listesinde hangi veri akışına katılacağınız seçin.
- Katılma türünüzü seçin
- Birleştirme koşulunuz için hangi anahtar sütunlarını eşleştirmek istediğinizi seçin. Varsayılan olarak, veri akışı her akıştaki bir sütun arasında eşitlik arar. Hesaplanan değerle karşılaştırmak için sütun açılır menüsünün üzerine gelin ve Hesaplanan sütun seçeneğini seçin.
Eşit olmayan birleşimler
Birleştirme koşullarınızda "eşit değildir" (!=) veya "büyüktür" (>) gibi bir koşullu işlemci kullanmak için, iki sütun arasındaki işlemci açılan listesini değiştirin. Eşdeğer olmayan birleşimler, Optimize sekmesinde Sabit yayın kullanılarak iki akıştan en az birinin yayınlanmasını gerektirir.
Birleştirme performansını iyileştirme
SSIS gibi araçlardaki birleştirme işlemlerinden farklı olarak, birleştirme dönüşümü zorunlu birleştirme işlemi değildir. Birleştirme anahtarları sıralama gerektirmez. Birleştirme işlemi, Spark'taki en uygun birleştirme işlemine (bütüncül yayma veya harita yönlü birleştirme) göre gerçekleşir.
Birleştirme, arama ve varlık dönüşümlerinde, veri akışlarından biri veya her ikisi de işçi düğümü belleğine sığıyorsa, Yayını etkinleştirerek performansı iyileştirebilirsiniz. Varsayılan olarak, Spark motoru bir tarafı yayınlayıp yayınlamamaya otomatik olarak karar verir. Yayınlamak istediğiniz tarafı el ile seçmek için Sabit'i seçin.
Yayını Kapalı seçeneği aracılığıyla devre dışı bırakmanız, yalnızca birleşimleriniz zaman aşımı hatalarıyla karşılaşıyorsa önerilir.
Öz Katılım
Bir veri akışını kendi kendine birleştirmek için, mevcut bir akışı seçme dönüşümü ile diğer adıyla yeniden adlandırın. Bir dönüşümün yanındaki artı simgesine tıklayıp Yeni dal'ı seçerek yeni bir dal oluşturun. Özgün akışı başka bir adla kullanmak için bir seçim dönüştürmesi ekleyin. Birleştirme dönüştürmesi ekleyin ve özgün akışı Sol akış ve seçili dönüştürmeyi Sağ akış olarak seçin.
Birleştirme koşullarını test etme
Birleştirme dönüştürmelerini hata ayıklama modunda veri önizlemesi ile test ederken, bilinen küçük bir veri kümesi kullanın. Büyük bir veri kümesinden satır örneklemesi yaparken, test için hangi satırların ve anahtarların okunacağını tahmin edemezsiniz. Sonuç belirsizdir, yani birleştirme koşullarınız herhangi bir eşleşme döndürmeyebilir.
Veri akışı betiği
Sözdizimi
<leftStream>, <rightStream>
join(
<conditionalExpression>,
joinType: { 'inner'> | 'outer' | 'left_outer' | 'right_outer' | 'cross' }
broadcast: { 'auto' | 'left' | 'right' | 'both' | 'off' }
) ~> <joinTransformationName>
Inner Join örneği
Bu örnek, sol veri akışı TripData ve sağ veri akışı TripFare alan JoinMatchedData adlı bir birleştirme dönüşümüdür. Birleştirme koşulu, her akıştaki hack_license == { hack_license} && TripData@medallion == TripFare@medallion && vendor_id == { vendor_id} && pickup_datetime == { pickup_datetime}, hack_license, medallionve vendor_id sütunları eşleşirse true döndüren ifadedirpickup_datetime.
joinType şeklindedir'inner'. Yalnızca sol akışta yayın yapmayı etkinleştirdiğimiz için broadcast'nin değeri 'left' vardır.
Kullanıcı arabiriminde bu dönüşüm şöyle görünür:
Bu dönüşümün veri akışı betiği şu kod parçacığındadır:
TripData, TripFare
join(
hack_license == { hack_license}
&& TripData@medallion == TripFare@medallion
&& vendor_id == { vendor_id}
&& pickup_datetime == { pickup_datetime},
joinType:'inner',
broadcast: 'left'
)~> JoinMatchedData
Özel çapraz birleştirme örneği
Bu örnek, sol akış LeftStream ve sağ akış RightStream alan JoiningColumns adlı bir birleştirme dönüşümüdür. Bu dönüşüm, iki akışı alır ve leftstreamcolumn sütunu rightstreamcolumn sütunundan büyük olan tüm satırları birleştirir.
joinType şeklindedircross. Yayın etkin değil broadcast değerine sahiptir 'none'.
Kullanıcı arabiriminde bu dönüşüm şöyle görünür:
Bu dönüşümün veri akışı betiği kod parçacığındadır:
LeftStream, RightStream
join(
leftstreamcolumn > rightstreamcolumn,
joinType:'cross',
broadcast: 'none'
)~> JoiningColumns
İlgili içerik
Verileri birleştirdikten sonra bir türetilmiş sütun oluşturun ve verilerinizi hedef veri deposuna yazın.