Dönüştürmeleri iyileştirme

Azure Data Factory ve Azure Synapse Analytics işlem hatlarındaki eşleme veri akışlarında dönüşümlerin performansını iyileştirmek için aşağıdaki stratejileri kullanın.

Birleştirmeleri, Var Olma Durumunu ve Arama İşlemlerini İyileştirme

Yayın

Birleştirmelerde, aramalarda ve var olan dönüştürmelerde, veri akışlarından biri veya her ikisi de çalışan düğümü belleğine sığacak kadar küçükse, Yayını etkinleştirerek performansı en iyi duruma getirebilirsiniz. Yayın, kümedeki tüm düğümlere küçük veri çerçeveleri gönderdiğiniz zamandır. Bu, Spark altyapısının büyük akıştaki verileri yeniden birleştirmeden birleştirme gerçekleştirmesine olanak tanır. Varsayılan olarak Spark altyapısı, birleştirmenin bir tarafının yayınlanıp yayınlanmaymayacağına otomatik olarak karar verir. Gelen verileriniz hakkında bilgi sahibiyseniz ve bir akışın diğerinden küçük olduğunu biliyorsanız Sabit yayın'ı seçebilirsiniz. Sabit yayın, Spark'ı seçili akışı yayınlamaya zorlar.

Yayınlanan verilerin boyutu Spark düğümü için çok büyükse bellek yetersiz hatası alabilirsiniz. Yetersiz bellek hatalarını önlemek için bellek için iyileştirilmiş kümeleri kullanın. Veri akışı yürütmeleri sırasında yayın zaman aşımlarıyla karşılaşırsanız yayın iyileştirmesini kapatabilirsiniz. Ancak bu, veri akışlarının daha yavaş performans göstermesine neden oluyor.

Büyük veritabanı sorguları gibi sorgulaması daha uzun sürebilecek veri kaynaklarıyla çalışırken, birleştirmeler için yayının kapatılması önerilir. Kaynak, uzun sorgu sürelerine sahip olduğunda ve küme işlem düğümlerine yayın yapmaya çalıştığında Spark zaman aşımlarına neden olabilir. Yayını kapatmak için bir diğer iyi seçenek de veri akışınızda daha sonra arama dönüşümünde kullanılacak değerleri toplayan bir akışınız olmasıdır. Bu düzen Spark iyileştiricisinin kafasını karıştırabilir ve zaman aşımlarına neden olabilir.

Birleştirme Dönüşümü iyileştirmesi

Çapraz birleşimler

Birleştirme koşullarınızda sabit değerler kullanıyorsanız veya birleşimin her iki tarafında birden çok eşleşme varsa, Spark birleştirmeyi çapraz birleşim olarak gerçekleştirir. Çapraz birleşim, daha sonra birleştirilen değerleri filtreleyen tam kartezyen bir üründür. Bu, diğer birleştirme türlerinden daha yavaştır. Performansı etkilememek için birleştirme koşullarınızın her iki tarafında da sütun referanslarının olduğundan emin olun.

Birleştirmelerden önce sıralama

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ı, dönüştürmeden önce sıralama gerektirmez. Eşleme veri akışlarında Sıralama dönüşümlerinin kullanılması önerilmez.

Pencere dönüştürme performansı

Eşleme veri akışındaki Pencere Dönüşümü, dönüşüm ayarlarında over() yan tümcesinin bir parçası olarak seçtiğiniz sütunlardaki verilerinizi, değerlerine göre bölümlendirir. Windows dönüşümünde kullanıma sunulan birçok popüler toplama ve analiz işlevi vardır. Ancak, kullanım örneğiniz derecelendirme rank() veya satır numarası rowNumber()için veri kümenizin tamamı üzerinde bir pencere oluşturmaksa, bunun yerine Derece dönüştürmesini ve Vekil Anahtar dönüştürmesini kullanmanız önerilir. Bu dönüşümler, bu işlevleri kullanarak tam veri kümesi işlemlerini yeniden daha iyi gerçekleştirir.

Çarpık verileri yeniden bölümleme

Birleştirmeler ve toplamalar gibi bazı dönüştürmeler veri bölümlerinizi yeniden karıştırır ve bazen verilerin dengesiz hale getirilmesine neden olabilir. Kaydırılmış veya dengesiz veri, verilerin bölümler arasında eşit bir şekilde dağıtılmadığı anlamına gelir. Yoğun şekilde dengesiz veriler, daha yavaş aşağı akış dönüşümlerine ve havuz yazma işlemlerine yol açabilir. İzleme ekranındaki dönüştürmeye tıklayarak bir veri akışı çalıştırmasının herhangi bir noktasında verilerinizin dengesizliğini de kontrol edebilirsiniz.

Dengesizlik ve basıklık

İzleme ekranı, iki ölçümle birlikte verilerin her bölüme nasıl dağıtıldığını gösterir: çarpıklık ve basıklık. Çarpıklık , verilerin ne kadar asimetrik olduğunu gösteren bir ölçüdür ve pozitif, sıfır, negatif veya tanımsız bir değere sahip olabilir. Negatif eğme, sol kuyruğun sağdan daha uzun olduğu anlamına gelir. Kurtosis , verilerin ağır kuyruklu veya hafif kuyruklu olup olmadığının ölçüsüdür. Yüksek basıklık değerleri arzu edilmez. İdeal dengesizlik aralıkları -3 ile 3 arasında uzanır ve kurtoz aralıkları 10'dan azdır. Bu sayıları yorumlamanın kolay bir yolu, bölüm grafiğine bakmak ve 1 çubuğun diğerlerinden daha büyük olup olmadığını görmektir.

Verileriniz bir dönüştürmeden sonra eşit bir şekilde bölümlenmezse, yeniden bölümlendirmek için en iyi duruma getirme sekmesini kullanabilirsiniz. Verilerin yeniden yapılandırılması zaman alır ve veri akışı performansınızı geliştirmeyebilir.

İpucu

Verilerinizi yeniden bölümleseniz bile, daha sonra verilerinizi yeniden düzenleyen sonraki dönüşümleriniz varsa, birleştirme anahtarı olarak kullanılan bir sütunda karma bölümleme kullanın.

Uyarı

Veri akışınızdaki dönüştürmeler (Sink dönüşümü dışında), veri dinlendirilmesi sırasında dosya ve klasör bölümlendirmesini değiştirmez. Her dönüştürmede bölümleme, verileri ADF'nin veri akışı yürütmelerinizin her biri için yönettiği geçici sunucusuz Spark kümesinin veri çerçeveleri içinde yeniden bölümler.

Performansla ilgili diğer Veri Akışı makalelerine bakın: