Fabric'te Apache Spark çalışma zamanları

Fabric Runtime, veri mühendisliği ve veri bilimi deneyimlerinin yürütülmesini ve yönetimini mümkün kılan Apache Spark tabanlı Azure entegre bir platformdur. Hem iç hem de açık kaynak kaynaklarından temel bileşenleri bir araya getirerek müşterilere kapsamlı bir çözüm sunar. Basitlik için, Fabric Runtime powered by Apache Spark sayfasına Fabric Runtime olarak bakabilirsiniz.

Fabric Çalışma Zamanı'nın ana bileşenleri:

  • Apache Spark : Büyük ölçekli veri işleme ve analiz görevlerine olanak tanıyan güçlü bir açık kaynak dağıtılmış bilgi işlem kitaplığıdır. Apache Spark, veri mühendisliği ve veri bilimi deneyimleri için çok yönlü ve yüksek performanslı bir platform sağlar.

  • Delta Lake - ACID işlemlerini ve diğer veri güvenilirliği özelliklerini Apache Spark'a getiren açık kaynak depolama katmanı. Fabric Runtime ile tümleştirilen Delta Lake, veri işleme yeteneklerini artırır ve birden çok eşzamanlı işlemde veri tutarlılığını sağlar.

  • Native Execution Engine - Apache Spark iş yükleri için dönüştürücü bir geliştirme, göl evi altyapısında doğrudan Spark sorgularını çalıştırarak önemli performans artışları sunuyor. Sorunsuz entegre edildiğinde, kod değişikliği gerektirmez ve tedarikçi kilitlenmesini engeller. Runtime 1.3 (Spark 3.5) ve Runtime 2.0 (Spark 4.1) sistemlerinde hem Parquet hem de Delta formatlarını Apache Spark API'lerinde destekler.

    Desteklenen işleçler JVM tabanlı Spark'tan Apache Gluten ve Velox aracılığıyla vektörleştirilmiş bir C++ yürütme yoluna yüklenerek Parquet ve Delta biçimleri için yerel destekle sütunlu, SIMD hızlandırmalı işleme sağlar. Bir işleç desteklenmediğinde yürütme otomatik olarak JVM tabanlı Spark'a geri döner. Temsili karşılaştırmalarda (Delta kullanarak ölçek faktörü 1000'de TPC-DS), motor açık kaynak Spark'a kıyasla altı kata kadar daha hızlı performans elde etti ve sabit boyutlu Doku kümesinde yaklaşık %83 işlem maliyeti tasarrufuna çevrildi.

    Yerel yol uyarlamalı sorgu yürütme, maliyet tabanlı yeniden yazmalar, sütun ayıklama ve koşul gönderme dahil olmak üzere Doku Spark sorgu iyileştirmelerini korur. Yapılandırmayı kullanarak spark.native.enabled uygulama başına yerel çalıştırmayı açabilirsin. Not defteri hücre yürütmesi sırasında, Fabric Spark Advisor, yürütme JVM tabanlı Spark’a geri döndüğünde, yerel boşaltmanın uygulanmadığı durumları teşhis etmenize yardımcı olmak için gerçek zamanlı uyarılar gösterir.

  • Java/Scala, Python ve R için varsayılan düzeyde paketler - çeşitli programlama dillerini ve ortamlarını destekleyen paketler. Bu paketler otomatik olarak yüklenir ve yapılandırılır, böylece geliştiriciler veri işleme görevleri için tercih ettikleri programlama dillerini uygulayabilir.

  • Fabric Runtime, çeşitli donanım yapılandırmaları ve sistem gereksinimleriyle uyumluluğu sağlayan sağlam bir açık kaynak işletim sistemi üzerine inşa edilmiştir.

Aşağıdaki tabloda, Fabric platformunda Apache Spark tabanlı çalışma zamanları için Apache Spark sürümleri, desteklenen işletim sistemleri, Java, Scala, Python, Delta Lake ve R gibi temel bileşenlerin kapsamlı bir karşılaştırmasını bulacaksınız.

Tavsiye

Şu anda Çalışma Zamanı 1.3 olan üretim iş yükünüz için her zaman en son, genel kullanıma açık (GA) çalışma zamanı sürümünü kullanın.

Bileşen Çalışma Zamanı 1.3 Çalışma Zamanı 2.0
Sürüm Aşaması Georgia Genel Önizleme
Apache Spark sürümü 3.5.5 4.1
İşletim Sistemi Mariner 2.0 Mariner 3.0
Java sürümü 11 21
Scala sürümü 2.12.17 2.13.16
Python sürümü 3.11 3.13
Delta Lake sürümü 3.2 4.2

Belirli çalışma zamanı sürümüne ilişkin ayrıntıları, yeni özellikleri, iyileştirmeleri ve geçiş senaryolarını keşfetmek için Çalışma Zamanı 1.3 veya Çalışma Zamanı 2.0'ı ziyaret edin.

Ağ Yapısı Optimizasyonları

Fabric'te, hem Spark motoru hem de Delta Lake uygulamaları platforma özgü optimizasyonlar ve özellikler içerir. Bu özellikler, platform içinde yerel entegrasyonlar kullanır. Tüm bu özellikleri devre dışı bırakarak standart Spark ve Delta Lake işlevselliğini elde edebilirsiniz. Apache Spark için Kumaş Çalışma Zamanları aşağıdakileri kapsar:

  • Apache Spark'ın tam açık kaynak sürümü.
  • Yaklaşık 100 yerleşik, ayrı sorgu performansı geliştirmelerinden oluşan bir koleksiyon. Bu geliştirmeler, meta veri deposu çağrılarını azaltmak için FileSystem bölüm önbelleklemesini etkinleştiren bölüm önbellekleme ve Skalar Alt Sorgu Projeksiyonuna Çapraz Birleştirme gibi özellikleri içerir.
  • Yerleşik akıllı önbellek.

Apache Spark ve Delta Lake için Fabric Runtime içinde, yerel yazar yetenekleri iki temel amaca hizmet eder:

  • Yazma iş yükleri için farklı performans sunar ve yazma sürecini optimize eder.
  • Delta Parquet dosyalarının varsayılan olarak V-order optimizasyonuna yönelirler. Delta Lake V-order optimizasyonu, tüm Fabric motorlarında üstün okuma performansı sağlamak için kritik öneme sahiptir. Nasıl çalıştığını ve nasıl yönetileceğini daha derinlemesine anlamak için Delta Lake tablo optimizasyonu ve V-order bölümlerine bakınız.

Birden çok çalışma zamanı desteği

Fabric birden fazla çalışma zamanını destekliyor, böylece aralarında geçiş yapabilir ve uyumluluk sorunları veya kesintiler riskini azaltabilirsiniz.

Note

Bir Spark çalışma zamanı, bileşen setinin bir parçası olarak belirli bir Python sürümünü içerir. Örneğin, Runtime 1.3 Python 3.11'i içerir. Bu Python sürümü, yalnızca Python içeren not defterleri için seçtiğiniz Python not defteri çekirdeğinden ayrıdır. Python notebook çekirdeği yaşam döngüsü için, Python notebook çalışma zamanı ve Fabric'teki çekirdek yaşam döngüsü sayfalarına bakınız.

Varsayılan olarak, tüm yeni çalışma alanları şu anda Çalışma Zamanı 1.3 olan en son GA çalışma zamanı sürümünü kullanır.

Çalışma zamanı sürümünü çalışma alanı düzeyinde değiştirmek için Çalışma Alanı Ayarları>Veri Mühendisliği/Bilim>Spark ayarlarıgidin. Ortam sekmesinde, kullanılabilir seçenekler arasından istediğiniz çalışma zamanı sürümünü seçin. Seçiminizi onaylamak için Kaydet'i seçin.

Çalışma alanı ayarları için çalışma zamanı sürümü nereden seçileceğini gösteren ekran görüntüsü.

Bu değişikliği yaptıktan sonra, çalışma alanı içindeki tüm sistem tarafından oluşturulan öğeler, göl evleri, Spark iş tanımları ve defterler dahil, bir sonraki Spark Oturumundan itibaren yeni seçilen çalışma alanı seviyesinde çalışma zamanı sürümünü kullanır. Şu anda bir iş veya göl eviyle ilgili herhangi bir etkinlik için mevcut bir oturumu içeren bir defter kullanıyorsanız, o Spark oturumu olduğu gibi devam eder. Ancak, bir sonraki oturum veya işten itibaren seçilen çalışma zamanı sürümü geçerlidir.

Eşya Environment seviyesinde çalışma zamanını değiştirmek için yeni bir Ortam öğesi oluşturun veya mevcut bir öğeyi açın. Runtime açılır menüsünden, mevcut seçeneklerden istediğiniz çalışma zamanı sürümünü seçin, Save, ve ardından Publish değişikliklerinizi seçin. Ardından, bu Environment öğeyi Notebook veya Spark Job Definition ile kullanabilirsiniz.

Ortam öğesi için çalışma zamanı sürümünün seçileceği yeri gösteren ekran görüntüsü.

Spark Ayarları'nda çalışma zamanı değişikliklerinin sonuçları

Sistem tüm Spark ayarlarını taşır. Ancak, sistem bir Spark ayarının Runtime B ile uyumlu olmadığını tespit ederse, uyarı mesajı gösterir ve ayarı uygulamaz.

Spark Ayarları Çalışma Zamanı Değişikliği.

Kitaplık yönetimindeki çalışma zamanı değişikliklerinin sonuçları

Kütüphane yönetim sistemi, hem genel hem de özel çalışma zamanları dahil olmak üzere tüm kütüphaneleri Çalışma Zamanı A'dan Çalışma Zamanı B'ye taşır. Python ve R sürümleri aynı kalırsa, kütüphaneler düzgün çalışır. Ancak JAR'lar için, bağımlılıklardaki değişiklikler ve Scala, Java, Spark ile işletim sistemindeki değişiklikler gibi diğer faktörler nedeniyle çalışmama ihtimali yüksek.

Runtime B ile çalışmayan kütüphaneleri güncellemek veya değiştirmek sizin. Bir çatışma varsa, yani Runtime B, başlangıçta Runtime A'da tanımlanmış bir kütüphaneyi içeriyorsa, kütüphane yönetim sistemi ayarlarınıza göre Runtime B için gerekli bağımlılığı oluşturmaya çalışır. Ancak, bir çakışma oluşursa derleme işlemi başarısız olur. Hata kaydında, hangi kütüphanelerin çakışmaya yol açtığını görebilir ve sürümlerinde veya spesifikasyonlarında ayarlamalar yapabilirsiniz.

Kitaplık Yönetimi Çalışma Zamanı Değişikliği.

Delta Lake protokollerini yükseltme

Delta Lake özellikleri her zaman geriye doğru uyumludur, böylece daha düşük Delta Lake versiyonunda oluşturulan tablolar daha yüksek sürümlerle sorunsuz etkileşime girebilir. Ancak, belirli özellikleri etkinleştirdiğinizde (örneğin, yöntemi delta.upgradeTableProtocol(minReaderVersion, minWriterVersion) kullanarak), daha düşük Delta Lake sürümleriyle ileri uyumluluğu tehlikeye atabilirsiniz. Böyle durumlarda, yükseltilmiş tablolara referans veren iş yüklerini, uyumluluğu koruyan bir Delta Lake sürümüyle uyumlu hale getirmek için değiştirmeniz gerekir.

Her Delta tablosu, desteklediği özellikleri tanımlayan bir protokol spesifikasyonuyla ilişkilendirilir. Tabloyla okuma veya yazma için etkileşim kuran uygulamalar, tablonun özellik kümesiyle uyumlu olup olmadığını belirlemek için bu protokol belirtimine güvenir. Bir uygulama, tablonun protokolünde desteklenen olarak listelenen bir özelliği işleme yeteneğine sahip değilse, o tablodan okuyamaz veya o tabloya yazamaz.

Protokol belirtimi iki ayrı bileşene ayrılır: "okuma" protokolü ve "yazma" protokolü. Daha fazla bilgi için Delta Lake özellikler uyumluluğunu nasıl yönetiyor?

upgradeTableProtocol yöntemi kullanıldığında anında uyarıyı gösteren GIF.

Komutu delta.upgradeTableProtocol(minReaderVersion, minWriterVersion) PySpark ortamında çalıştırabilirsin, Spark SQL ve Scala'da da çalıştırabilirsin. Bu komut, Delta tablosunda bir güncelleme başlatır.

Bu yükseltmeyi yaptığınızda, Delta protokol sürümünün güncellenmesinin geri döndürülemez bir süreç olduğu uyarısı alırsınız. Bu süreç, güncellemeyi bir kez yürüttükten sonra geri alamayacağınız anlamına gelir.

Protokol sürümü yükseltmeleri mevcut Delta Lake tablo okuyucularının, yazarlarının veya her ikisinin uyumluluğunu etkileyebilir. Bu nedenle dikkatli ilerleyin ve protokol sürümünü yalnızca gerektiğinde, örneğin Delta Lake'te yeni özellikleri benimserken, yükseltin.

Önemli

Tüm Fabric deneyimlerinde hangi protokol sürümlerinin ve özelliklerinin uyumlu olduğunu öğrenmek için Delta Lake tablo formatı uyumluluğuna bakınız.

Delta Lake protokolünü yükseltirken uyarıyı gösteren ekran görüntüsü.

Ayrıca, tüm mevcut ve gelecekteki üretim iş yükleri ve süreçlerinin yeni protokol versiyonunu kullanarak Delta Lake tablolarıyla uyumlu olduğundan emin olun; böylece sorunsuz bir geçiş sağlanır ve olası kesintiler önlenir.