Fabric'de Apache Spark yapılandırmaları için autotune nedir?

Autotune, iş yükü yürütme süresini kısaltmak ve performansı geliştirmek için Apache Spark yapılandırmalarını otomatik olarak ayarlar. Genellikle yinelenen deneme ve hata gerektiren el ile ayarlamayı önlemenize yardımcı olur. Autotune, her iş yükü için geçerli ayarları yinelemeli olarak bulmak ve uygulamak için iş yüklerinizdeki geçmiş yürütme verilerini kullanır.

Not

Microsoft Fabric'da otomatik sorgu ayarlama şu anda önizleme aşamasındadır. Tüm üretim bölgelerinde kullanılabilir, ancak varsayılan olarak devre dışıdır. Bir ortamda Spark yapılandırmasında veya not defterinde veya Spark İş Tanımı kodunda tek bir oturum için etkinleştirin.

Yapılandırma varsayılanları ve gereksinimleri

  • Varsayılan davranış: Autotune varsayılan olarak kapalıdır .
  • Kapalıyken kurulum gerekmez: Autotune'u etkinleştirmezseniz Spark, standart yapılandırma davranışını kullanır.
  • Autotune kullanmak için gerekli kurulum: Aşağıdakilerden birini ayarlayın spark.ms.autotune.enabled=true :

Sorgu optimizasyonu

Autotune, her sorgu için şu üç Apache Spark ayarını ayarlar:

  • spark.sql.shuffle.partitions: Birleştirmeler veya toplamalar sırasında veri karıştırma için bölüm sayısını ayarlar. Varsayılan 200 değeridir.
  • spark.sql.autoBroadcastJoinThreshold: Birleştirme sırasında çalışan düğümlerine yayın yapmak için bayt cinsinden en büyük tablo boyutunu ayarlar. Varsayılan 10 MB değeridir.
  • spark.sql.files.maxPartitionBytes: Dosyaları okurken bir bölüme paketlenmesi için en fazla bayt sayısını ayarlar. Parquet, JSON ve ORC dosya kaynakları için geçerlidir. Varsayılan 128 MB değeridir.

Autotune sorgu ayarlaması her sorguyu inceler ve bu sorgu için ayrı bir makine öğrenmesi modeli oluşturur. En iyi şekilde çalıştığı durumlar:

  • Yinelenen sorgular
  • Uzun süre çalışan sorgular (15 saniyeden fazla)
  • Apache Spark SQL API sorguları (RDD API'si değil)

Autotune'u not defterleri, Spark İş Tanımları ve işlem hatları ile kullanabilirsiniz. Avantaj, sorgu karmaşıklığı ve veri şekline göre değişir. Testte en büyük kazanç okumalar, birleştirmeler, toplamalar ve sıralamalar gibi keşif veri analizi desenlerinde görünür.

Autotune etkinken çalışma süresinin ekran görüntüsü.

Autotune nasıl çalışır?

Autotune yinelemeli bir iyileştirme döngüsü kullanır:

  1. Varsayılan Spark yapılandırma değerlerinden başlayın.
  2. Temel (centroid) çevresinde aday yapılandırmaları oluşturun.
  3. Önceki çalıştırmalarda eğitilmiş bir model kullanarak en iyi adayı tahmin edin.
  4. Adayı uygulayın ve sorguyu yürütün.
  5. Yürütme sonuçlarını modele geri aktarın.

Zaman içinde taban çizgisi daha iyi ayarlara doğru kayarak regresyon riskini azaltır. Toplanan tüm veri noktalarının kullanılması anomalilerin etkisini azaltmaya da yardımcı olur.

Otomatiktune'un etkinleştirilmesi

Autotune tüm üretim bölgelerinde kullanılabilir, ancak varsayılan olarak devre dışıdır. Ortam düzeyinde etkinleştirmek için Spark özelliğini spark.ms.autotune.enabled=true yeni veya mevcut bir ortamda ayarlayın. Bu ortamı kullanan tüm defterler ve görevler ayarları devralır.

Otomatiktune'un etkinleştirilmesinin ekran görüntüsü.

Autotune yerleşik regresyon algılamayı içerir. Örneğin, bir sorgu olağan dışı derecede büyük miktarda veriyi işlerse, autotune bu çalıştırma için ayarlamayı kendi kendine atlayabilir. Birçok senaryoda, autotune'un ideal ayarlara yakınsaması için yaklaşık 20 ila 25 yineleme gerekir.

Not

Autotune, Çalışma Zamanı 1.2 ile uyumludur. 1.2'den sonraki çalışma zamanı sürümlerinde etkinleştiremezsiniz. Yüksek eşzamanlılık modu veya özel uç nokta etkinleştirildiğinde çalışmaz. Autotune, herhangi bir otomatik ölçeklendirme yapılandırmasında otomatik ölçeklendirme ile çalışır.

Ayrıca, not defterinizdeki Spark özelliğini veya Spark İş Tanımı'nı ayarlayarak tek bir oturum için autotune'u etkinleştirebilirsiniz.

Tek bir oturum için otomatiktune'yi etkinleştirme

%%sql
SET spark.ms.autotune.enabled=TRUE

Tek bir oturum için otomatiktune özelliğini devre dışı bırakma

Not defterinde veya Spark İş Tanımı'nda otomatiktune özelliğini devre dışı bırakmak için, aşağıdaki komutlardan birini kodun ilk hücresi veya ilk satırı olarak çalıştırın.

%%sql 
SET spark.ms.autotune.enabled=FALSE 

Örnek olay incelemesi

Bir Apache Spark sorgusu çalıştırdığınızda, autotune bu sorgu şekli için bir model oluşturur ve zaman içinde en iyi ayarları öğrenir. Örneğin, şu filtre sorgusuyla başlayın:

%%pyspark
df.filter(df.country == "country-A")

Autotune bu çalıştırmadan öğreniyor. Daha sonra yalnızca filtre değerini değiştirirseniz, sorgu şekli benzer kalır:

%%pyspark
df.filter(df.country == "country-B")

Autotune, önceki öğrenmeleri bu benzer sorgu düzeni için yeniden kullanabilir ve bu da el ile retuning olmadan performansın korunmasına yardımcı olur.

Günlükler

Autotune, her sorgu için desteklenen üç Spark yapılandırması için önerilen değerleri hesaplar. Önerileri incelemek için sürücü günlüklerinde [Autotune] ile başlayan girişleri denetleyin.

Monitoring Hub içindeki autotune kayıtlarının ekran görüntüsü.

Yaygın günlük durumu örnekleri şunlardır:

Çalıştırma Durumu Açıklama
AUTOTUNE_DISABLED Atlanır. Otomatiktune devre dışı bırakıldığından telemetri toplama ve iyileştirme uygulanmaz.
QUERY_TUNING_DISABLED Atlanır. Sorgu ayarlama devre dışı bırakıldı.
QUERY_PATTERN_NOT_MATCH Atlanır. Sorgu düzeni desteklenen salt okunur sorgu türleriyle eşleşmiyor.
QUERY_DURATION_TOO_SHORT Atlanır. Sorgu 15 saniyeden kısa süreyle çalıştırılır ve bu, etkin ayarlama için çok kısadır.
QUERY_TUNING_SUCCEED Başarı. Sorgu ayarlama tamamlandı ve iyileştirilmiş Spark ayarları uygulandı.

Saydamlık notu

Sorumlu Yapay Zeka Standardına uygun olarak, bu bölümde autotune'un nasıl kullanıldığı ve doğrulanması açıklanmaktadır.

Autotune'un amacı

Autotune, veri uzmanları için Apache Spark iş yükü verimliliğini artırmak üzere tasarlanmıştır. O:

  • Yürütme süresini kısaltmak için Apache Spark yapılandırmalarını otomatik olarak ayarlır.
  • El ile ayarlama çabalarını azaltır.
  • Yapılandırma seçimlerini yinelemeli olarak iyileştirmek için geçmiş iş yükü verilerini kullanır.

Autotune doğrulaması

Autotune, etkinliğin ve güvenliğin sağlanmasına yardımcı olmak için kapsamlı doğrulamadan geçer:

  • Ayarlama algoritmasının verimliliğini doğrulamak için çeşitli Spark iş yükleri arasında sıkı testler kullanır.
  • Performans avantajlarını göstermek için standart Spark iyileştirme yöntemleriyle karşılaştırmalar.
  • Pratik değeri göstermek için gerçek dünya örnek olay incelemelerini içerir.
  • Kullanıcı verilerini korumak için katı güvenlik ve gizlilik standartlarını izler.

Kullanıcı verileri yalnızca iş yükünüzün performansını geliştirmek ve hassas bilgilerin kötüye kullanılmasını veya açığa çıkmasını önlemek için sağlam korumalar sağlamak için kullanılır.