Aracılığıyla paylaş


Dokuda Apache Spark Çalışma Zamanları

Microsoft Fabric Runtime, veri mühendisliği ve veri bilimi deneyimlerinin yürütülmesini ve yönetilmesini sağlayan Apache Spark'ı temel alan Azure ile tümleşik 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 olması için Apache Spark tarafından desteklenen Microsoft Fabric Runtime'ı Fabric Runtime olarak adlandırıyoruz.

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.

  • Yerel Yürütme Altyapısı - Apache Spark iş yükleri için dönüştürücü bir geliştirmedir ve Lakehouse altyapısında Spark sorgularını doğrudan yürüterek önemli performans kazanımları sunar. Sorunsuz bir şekilde entegre edilen sistem, kod değişikliği gerektirmeden hem Parquet hem de Delta biçimlerini Çalışma Zamanı 1.3'te (Spark 3.5) Apache Spark API'leri genelinde destekleyerek tedarikçi bağımlılığını önler. Bu altyapı, TPC-DS 1 TB karşılaştırması ile gösterildiği gibi sorgu hızlarını geleneksel OSS Spark'a göre dört kat daha hızlı artırır ve veri alımı, ETL, analiz ve etkileşimli sorgular gibi çeşitli veri görevlerinde operasyonel maliyetleri azaltır ve verimliliği artırır. Meta'nın Velox ve Intel apache glüteni üzerine kurulu olan bu uygulama, farklı veri işleme senaryolarını işlerken kaynak kullanımını iyileştirir.

  • 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 ve geliştiricilerin veri işleme görevleri için tercih ettikleri programlama dillerini uygulamasına olanak sağlar.

  • Microsoft Fabric Runtime, çeşitli donanım yapılandırmaları ve sistem gereksinimleriyle uyumluluk sağlayan sağlam bir açık kaynak işletim sistemi üzerine kurulmuştur.

Aşağıda, Microsoft Fabric platformundaki 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 önemli bileşenlerin kapsamlı bir karşılaştırmasını bulabilirsiniz.

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.2 Çalışma Zamanı 1.3 Çalışma Zamanı 2.0
Sürüm Aşaması EOSA Georgia Deneysel (Önizleme)
Apache Spark sürümü 3.4.1 3.5.5 4.0.0
İşletim Sistemi Mariner 2.0 Mariner 2.0 Mariner 3.0
Java sürümü 11 11 21
Scala sürümü 2.12.17 2.12.17 2.13.16
Python sürümü 3.10 3.11 3.12.11
Delta Lake sürümü 2.4.0 3.2 4.0.0

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.2, Çalışma Zamanı 1.3 veya Çalışma Zamanı 2.0'ı ziyaret edin.

Ağ Yapısı Optimizasyonları

Microsoft Fabric'te hem Spark altyapısı hem de Delta Lake uygulamaları platforma özgü iyileştirmeleri ve özellikleri içerir. Bu özellikler, platform içindeki yerel tümleştirmeleri kullanacak şekilde tasarlanmıştır. Standart Spark ve Delta Lake işlevselliği elde etmek için tüm bu özelliklerin devre dışı bırakılabildiğini unutmayın. 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.

Fabric Çalışma Zamanı'nın içinde, Apache Spark ve Delta Lake için iki temel amaca hizmet eden yerel yazıcı özellikleri vardır.

  • Yazma iş yükleri için farklı performans sunar ve yazma sürecini optimize eder.
  • Delta Parquet dosyalarının V-Order iyileştirmesini varsayılan olarak kullanırlar. Delta Lake V-Order iyileştirmesi, tüm Fabric motorlarında üstün okuma performansı sunmak için çok önemlidir. Nasıl çalıştığı ve nasıl yönetileceğini daha iyi anlamak için Delta Lake tablo iyileştirme ve V-Order ile ilgili özel makaleye bakın.

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

Doku birden çok çalışma zamanını destekler ve kullanıcılara aralarında sorunsuz geçiş yapma esnekliği sunarak uyumsuzluk veya kesinti riskini en aza indirir.

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ünün seçileceği yeri gösteren ekran görüntüsü.

Bu değişikliği yaptıktan sonra, Lakehouses, SJD'ler ve Not Defterleri dahil olmak üzere çalışma alanı içinde sistem tarafından oluşturulan tüm öğeler, sonraki Spark Oturumu'ndan başlayarak yeni seçilen çalışma alanı düzeyinde çalışma zamanı sürümü kullanılarak çalışır. Şu anda bir iş veya lakehouse ile ilgili herhangi bir etkinlik için mevcut oturuma sahip bir not defteri kullanıyorsanız bu Spark oturumu olduğu gibi devam eder. Ancak, sonraki oturumdan veya işten başlayarak, seçilen çalışma zamanı sürümü uygulanır.

Ayrıca, çalışma zamanını Environment öğe düzeyinde değiştirmek için yeni bir Ortam öğesi oluşturun veya mevcut bir öğeyi açın, çalışma zamanı açılan listesinden istediğiniz çalışma zamanı sürümünü seçin, ardından Save ve Publish değişikliklerinizi kaydedin. 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ı

Genel olarak tüm Spark ayarlarını geçirmeyi hedefliyoruz. Ancak Spark ayarının Çalışma Zamanı B ile uyumlu olmadığını belirlersek bir uyarı iletisi gönderir ve ayarı uygulamayı engelleriz.

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

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

Genel olarak yaklaşımımız, Hem Genel hem de Özel Çalışma Zamanları dahil olmak üzere tüm kitaplıkları Çalışma Zamanı A'dan Çalışma Zamanı B'ye geçirmektir. Python ve R sürümleri değişmeden kalırsa, kitaplıkların düzgün çalışması gerekir. Ancak Jars için bağımlılıklardaki değişiklikler ve Scala, Java, Spark ve işletim sistemindeki değişiklikler gibi diğer faktörler nedeniyle çalışmama olasılığı çok fazladır.

Kullanıcı, Çalışma Zamanı B ile çalışmayan kitaplıkları güncelleştirmek veya değiştirmekle sorumludur. Bir çakışma varsa ve bu da Çalışma Zamanı B'nin başlangıçta Çalışma Zamanı A'da tanımlanmış bir kitaplık içerdiği anlamına gelirse, kitaplık yönetim sistemimiz kullanıcının ayarlarına göre Çalışma Zamanı 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 günlüğünde, kullanıcılar hangi kitaplıkların çakışmalara neden olduğunu görebilir ve sürümlerinde veya belirtimlerinde ayarlamalar yapabilir.

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

Delta Lake protokollerini yükseltme

Delta Lake özellikleri her zaman geriye dönük olarak uyumludur ve daha düşük bir Delta Lake sürümünde oluşturulan tabloların daha yüksek sürümlerle sorunsuz bir şekilde etkileşim kurabilmesini sağlar. Ancak, belirli özellikler etkinleştirildiğinde (örneğin, yöntemi kullanılarak delta.upgradeTableProtocol(minReaderVersion, minWriterVersion) , daha düşük Delta Lake sürümleriyle ileriye dönük uyumluluk tehlikeye girebilir. Bu gibi durumlarda, yükseltilen tablolara başvuran iş yüklerini uyumluluğu koruyan bir Delta Lake sürümüyle uyumlu olacak şekilde değiştirmek önemlidir.

Her Delta tablosu, desteklediği özellikleri tanımlayan bir protokol belirtimi ile 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 şekilde listelenen bir özelliği işleme özelliğine sahip değilse, bu tablodan okuyamaz veya bu tabloya yazamaz.

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

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

Kullanıcılar komutu delta.upgradeTableProtocol(minReaderVersion, minWriterVersion) PySpark ortamında ve Spark SQL ile Scala'da yürütebilir. Bu komut, Delta tablosunda bir güncelleştirme başlatmalarına olanak tanır.

Bu yükseltmeyi gerçekleştirirken kullanıcıların Delta protokolü sürümünü yükseltmenin geri alınamaz bir işlem olduğunu belirten bir uyarı aldıklarını unutmayın. Başka bir deyişle, güncelleştirme yürütüldükten sonra geri alınamaz.

Protokol sürümü yükseltmeleri mevcut Delta Lake tablo okuyucularının, yazarlarının veya her ikisinin uyumluluğunu etkileyebilir. Bu nedenle, Delta Lake'te yeni özelliklerin benimsenmesi gibi durumlarda dikkatli olmanız ve protokol sürümünü yükseltmeniz önerilir.

Önemli

Tüm Microsoft Fabric deneyimlerinde hangi protokol sürümlerinin ve özelliklerinin uyumlu olduğu hakkında daha fazla bilgi edinmek için Delta Lake tablo biçimi birlikte çalışabilirliği makalesini okuyun.

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

Ayrıca, kullanıcıların sorunsuz bir geçiş sağlamak ve olası kesintileri önlemek için yeni protokol sürümünü kullanarak tüm geçerli ve gelecekteki üretim iş yüklerinin ve işlemlerinin Delta Lake tablolarıyla uyumlu olduğunu doğrulamaları gerekir.