Aracılığıyla paylaş


Doku'da Apache Spark yapılandırmaları için autotune nedir?

Autotune, iş yükü yürütmeyi hızlandırmak ve genel performansı iyileştirmek için Apache Spark yapılandırmasını otomatik olarak ayarlar. Autotune, el ile yapılan ayarlamaya kıyasla zaman ve kaynak tasarrufu sağlar ve bu da kapsamlı bir çaba, kaynak, zaman ve deneme gerektirir. Autotune, belirli bir iş yükü için en etkili yapılandırmaları yinelemeli olarak bulmak ve uygulamak için iş yüklerinizdeki geçmiş yürütme verilerini kullanır.

Not

Microsoft Fabric'teki otomatik sorgu ayarlama özelliği şu anda önizleme aşamasındadır.

Sorgu ayarlama

Autotune, sorgularınızın her biri için ayrı olarak üç Spark ayarı yapılandırır:

  • 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 değer 200'dür.
  • spark.sql.autoBroadcastJoinThreshold - Birleştirme işlemi yürütülürken tüm çalışan düğümlerine yayınlanan bayt cinsinden en büyük tablo boyutunu ayarlar. Varsayılan değer 10 MB'tır.
  • spark.sql.files.maxPartitionBytes - Dosyaları okurken tek bir bölüme paketlenmesi gereken bayt sayısı üst sınırını tanımlar. Parquet, JSON ve ORC dosya tabanlı kaynaklarda çalışır. Varsayılan değer 128 MB'tır.

İpucu

Otomatik sorgu ayarlama tek tek sorguları inceler ve her sorgu için ayrı bir ML modeli oluşturur. Özellikle hedefleri:

  • Yinelenen sorgular
  • Uzun süre çalışan sorgular (yürütme süresi 15 saniyeden uzun olanlar)
  • Spark SQL API sorguları (RDD API'sinde yazılanlar hariç, çok nadirdir) ancak dili ne olursa olsun tüm sorguları iyileştiriyoruz (Scala, PySpark, R, Spark SQL)

Bu özellik not defterleri, Spark İş Tanımları ve işlem hatları ile uyumludur. Avantajları sorgunun karmaşıklığı, kullanılan yöntemler ve yapıya göre değişir. Kapsamlı test, verileri okuma, birleştirmeleri çalıştırma, toplamalar ve sıralama gibi keşif veri analiziyle ilgili sorgularla en büyük avantajların gerçekleştirildiğini göstermiştir.

Autotune Etkin olarak yürütme zamanının ekran görüntüsü.

Autotune'un arkasındaki yapay zeka tabanlı sezgi

Autotune özelliği, sorgu performansını iyileştirmek için yinelemeli bir işlem kullanır. Varsayılan yapılandırmayla başlar ve verimliliği değerlendirmek için bir makine öğrenmesi modeli kullanır. Kullanıcı bir sorgu gönderdiğinde, sistem önceki etkileşimleri temel alarak depolanan modelleri alır. Centroid adlı varsayılan ayar etrafında olası yapılandırmalar oluşturur. Model tarafından tahmin edilen en iyi aday uygulanır. Sorgu yürütmeden sonra performans verileri modeli geliştirmek için sisteme geri gönderilir.

Geri bildirim döngüsü, centroid'i kademeli olarak en uygun ayarlara kaydırır. Zaman içindeki performansı iyileştirerek regresyon riskini en aza indirir. Kullanıcı sorgularını temel alan sürekli güncelleştirmeler, performans karşılaştırmalarının iyileştirilebilmesini sağlar. Ayrıca işlem, modelin artımlı olarak daha verimli ayarlara doğru ilerlediğinden emin olmak için centroid yapılandırmalarını güncelleştirir. Bu, geçmiş performansları değerlendirerek ve gelecekteki ayarlamalara yol göstermek için bunları kullanarak elde edilir. Anomalilerin etkisini azaltmak için tüm veri noktalarını kullanır.

Sorumlu bir yapay zeka perspektifinden bakıldığında Autotune özelliği, veri kullanımınız ve avantajlarınız hakkında sizi bilgilendirmek için tasarlanmış saydamlık mekanizmaları içerir. Güvenlik ve gizlilik, Microsoft'un standartlarıyla uyumludur. Devam eden izleme, başlatma sonrasında performansı ve sistem bütünlüğünü korur.

Otomatiktune'un etkinleştirilmesi

Autotune tüm üretim bölgelerinde kullanılabilir ancak varsayılan olarak devre dışıdır. Ortamın içindeki Spark yapılandırma ayarı aracılığıyla etkinleştirebilirsiniz. Autotune'u etkinleştirmek için yeni bir ortam oluşturun veya mevcut ortam için aşağıdaki ekran görüntüsünde gösterildiği gibi Spark özelliğini 'spark.ms.autotune.enabled = true' olarak ayarlayın. Bu ayar daha sonra bu ortamda çalışan tüm not defterleri ve işler tarafından devralınır ve otomatik olarak ayarlanır.

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

Autotune, performansı izlemek ve performans regresyonlarını algılamak için yerleşik bir mekanizma içerir. Örneğin, bir sorgu olağan dışı derecede büyük miktarda veriyi işlerse Autotune otomatik olarak devre dışı bırakılır. En iyi yapılandırmayı öğrenmek ve tanımlamak için genellikle 20-25 yineleme gerekir.

Not

Autotune, Doku Çalışma Zamanı 1.1 ve Çalışma Zamanı 1.2 ile uyumludur. Autotune, yüksek eşzamanlılık modu veya özel uç nokta etkinleştirildiğinde çalışmaz. Ancak autotune, yapılandırmasından bağımsız olarak otomatik ölçeklendirme ile sorunsuz bir şekilde tümleşir.

Autotune'u ilgili Spark not defteriniz veya Spark İş Tanımı kodunuz için Spark Ayarlar aracılığıyla denetleyebilirsiniz. Autotune'u devre dışı bırakmak için aşağıdaki komutları kodun ilk hücresi (not defteri) veya satırı (SJD) olarak yürütebilirsiniz.

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

Örnek olay incelemesi

Bir Spark sorgusu yürütürken, autotune sorgunun yürütülmesini iyileştirmeye ayrılmış özelleştirilmiş bir ML modeli oluşturur. Sorgu desenlerini ve kaynak gereksinimlerini analiz eder. Bir veri kümesini ülke gibi belirli bir özniteliğe göre filtreleyerek ilk sorguyu göz önünde bulundurun. Bu örnekte coğrafi filtreleme kullanılırken, ilke sorgu içindeki tüm özniteliklere veya işlemlere evrensel olarak uygulanır:

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

Autotune, sonraki yürütmeleri iyileştirerek bu sorgudan öğrenir. Örneğin, filtre değerini değiştirerek veya farklı bir veri dönüşümü uygulayarak sorgu değiştiğinde, sorgunun yapısal özü genellikle tutarlı kalır:

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

Değişikliklere rağmen, autotune yeni sorgunun temel yapısını tanımlar ve daha önce öğrenilen iyileştirmeleri uygular. Bu özellik, her yeni sorgu yinelemesi için el ile yeniden yapılandırmaya gerek kalmadan sürekli yüksek verimlilik sağlar.

Günlükler

Sorgularınızın her biri için autotune, üç Spark yapılandırması için en uygun ayarları belirler. Günlüklere giderek önerilen ayarları görüntüleyebilirsiniz. Autotune tarafından önerilen yapılandırmalar, sürücü günlüklerinde, özellikle de [Autotune] ile başlayan girişlerde bulunur.

İzleme Merkezi'nin içindeki otomatik kayıt günlüklerinin ekran görüntüsü.

Günlüklerinizde çeşitli giriş türleri bulabilirsiniz. Aşağıda önemli olanlar yer alır:

Çalıştırma Durumu Açıklama
AUTOTUNE_DISABLED Atlanır. Otomatiktune devre dışı bırakıldı; telemetri verilerini alma ve sorgu iyileştirmeyi engelleme. Autotune'un müşteri gizliliğine saygı gösterirken özelliklerini tam olarak kullanmasını sağlayın."
QUERY_TUNING_DISABLED Atlanır. Otomatiktune sorgu ayarlama devre dışı bırakıldı. Spark SQL sorgularınızın ayarlarına ince ayar yapmak için etkinleştirin.
QUERY_PATTERN_NOT_MATCH Atlanır. Sorgu düzeni eşleşmedi. Autotune salt okunur sorgular için etkilidir.
QUERY_DURATION_TOO_SHORT Atlanır. Sorgu süreniz iyileştirilemeyecek kadar kısa. Autotune, etkin ayarlama için daha uzun sorgular gerektirir. Sorgular en az 15 saniye çalıştırılmalıdır.
QUERY_TUNING_SUCCEED Başarılı. Sorgu ayarlama tamamlandı. En uygun spark ayarları uygulandı.

Saydamlık notu

Sorumlu Yapay Zeka Standardına uygun olarak, bu bölüm Autotune özelliğinin kullanımını ve doğrulamasını netleştirmeyi, şeffaflığı teşvik etmeyi ve bilinçli karar almayı sağlamayı amaçlar.

Autotune'un Amacı

Autotune, öncelikli olarak veri uzmanları için Apache Spark iş yükü verimliliğini artırmak için geliştirilmiştir. Temel işlevleri şunlardır:

  • Yürütme sürelerini azaltmak için Apache Spark yapılandırma ayarlamasını otomatikleştirme.
  • El ile ayarlama çalışmalarını en aza indirme.
  • Yapılandırmaları yinelemeli olarak geliştirmek için geçmiş iş yükü verilerini kullanma.

Autotune Doğrulaması

Autotune, etkinliğini ve güvenliğini sağlamak için kapsamlı testlerden geçmiştir:

  • Algoritma etkinliğini ayarlamayı doğrulamak için çeşitli Spark iş yüklerine sahip zorlu testler.
  • Performans avantajlarını göstermek için standart Spark iyileştirme yöntemleriyle karşılaştırma.
  • Autotune'un pratik değerini vurgulayan gerçek dünya örnek olay incelemeleri.
  • Kullanıcı verilerini korumak için katı güvenlik ve gizlilik standartlarına uymak.

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.