Aracılığıyla paylaş


Fabric'de 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.

Önemli

Bu özellik önizleme aşamasındadır.

Not

Microsoft Fabric'teki otomatik sorgu optimizasyonu özelliği şu anda önizleme aşamasındadır. Autotune tüm üretim bölgelerinde kullanılabilir ancak varsayılan olarak devre dışıdır. Spark not defterinize veya Spark İş Tanımı koduna ilgili Spark ayarını ekleyerek ortamın içindeki veya tek bir oturumdaki Spark yapılandırma ayarı aracılığıyla etkinleştirebilirsiniz.

Sorgu optimizasyonu

Autotune, sorgularınızın her biri için ayrı olarak üç Apache 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 şu hedefleri gözetiyor:

  • Yinelenen sorgular
  • Uzun süre çalışan sorgular (15 saniyeden fazla süren yürütmeler)
  • Apache Spark SQL API sorguları (rdd API'sinde yazılmış sorgular hariç, nadirdir) ancak dil (Scala, PySpark, R, Spark SQL) ne olursa olsun tüm sorguları iyileştiriyoruz. Bu özellik not defterleri, Apache Spark iş 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 etkinleştirildiğinde 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, Fabric Runtime 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 entegre olur.

Spark not defterinize veya Spark İş Tanımı koduna ilgili Spark ayarını ekleyerek tek bir oturumda otomatiktune'u etkinleştirebilirsiniz.

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

İlgili Spark not defteriniz veya Spark iş tanımı kodunuz için Spark ayarları aracılığıyla otomatik ayarı denetleyebilirsiniz. Otomatiktune'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 Apache 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.

Monitoring Hub içindeki autotune kayıtlarının 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
OTOTON KAPALI (AUTOTUNE_DISABLED) Atlanır. Autotune devre dışı bırakıldı; bu, telemetri verilerinin alınmasını ve sorgu iyileştirilmesini engelliyor. Autotune'un müşteri gizliliğine saygı gösterirken özelliklerini tam olarak kullanmasını sağlayın."
SORGU_AYARLAMA_DEVREDIŞI 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.
SORGULAMA_DESENİ_UYUŞMUYOR Atlanır. Sorgu deseni eşleşmedi. Autotune sadece okunur sorgular için etkilidir.
Sorgu Süresi Çok Kısa 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.
SORGU_AYARLAMASI_BAŞARILI Başarı. 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çer:

  • Tuning algoritmasının etkinliğini doğrulamak için çeşitli Spark iş yükleriyle 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.