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. Kolaylık olması için Apache Spark tarafından doku çalışma zamanı olarak desteklenen Microsoft Fabric Runtime'a başvuruyoruz.

Doku Ç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ı. Doku Çalışma Zamanı ile tümleştirilen Delta Lake, veri işleme özelliklerini geliştirir ve birden çok eşzamanlı işlemde veri tutarlılığı sağlar.

  • 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 platformunda hem Runtime 1.1 hem de Runtime 1.2 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.

Çalışma Zamanı 1.1 Çalışma Zamanı 1.2 Çalışma Zamanı 1.3
Apache Spark 3.3.1 3.4.1 3.5.0
İşletim Sistemi Ubuntu 18.04 Mariner 2.0 Mariner 2.0
Java 8 11 11
Scala 2.12.15 2.12.17 2.12.17
Python 3,10 3,10 3,10
Delta Lake 2.2.0 2.4.0 3.0.0
R 4.2.2 4.2.2 Yok

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.1 veya Çalışma Zamanı 1.2'yi ziyaret edin.

Doku iyileştirmeleri

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 Doku Ç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 bölüm önbelleğe alma (meta veri deposu çağrılarını azaltmak için FileSystem bölüm önbelleğini etkinleştirme) ve Skalar Alt Sorgu projeksiyonu için Çapraz Birleştirme gibi özellikleri içerir.
  • Yerleşik akıllı önbellek.

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

  1. İş yükleri yazmak için farklı performans sunar ve yazma sürecini iyi hale getirmektedir.
  2. Delta Parquet dosyalarının V-Order iyileştirmesi varsayılan olarak kullanılır. Delta Lake V-Order iyileştirmesi, tüm Doku altyapıları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.2 olan en son ç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 Madenciliği > /Science > Spark İşlem > Çalışma Alanı Düzeyi Varsayılan'a gidin ve kullanılabilir seçenekler arasından istediğiniz çalışma zamanını seçin.

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.

Çalışma zamanı sürümünün nasıl değiştireceğini gösteren gif.

Spark Ayarlar ç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 belirtimini kullanır. 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ü. Hakkındaki ayrıntıları okumak 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. Bu, güncelleştirme yürütüldükten sonra geri alınamayacağı 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, Delta Lake'te yeni özelliklerin benimsenmesi gibi durumlarda dikkatli olmanız ve protokol sürümünü yükseltmeniz önerilir.

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.

Delta 2.2 ile Delta 2.4 değişiklikleri karşılaştırması

En son Doku Çalışma Zamanı olan sürüm 1.2'de varsayılan tablo biçimi (spark.sql.sources.default) artık deltaşeklindedir. Doku Çalışma Zamanı'nın önceki sürümlerinde, sürüm 1.1 ve Spark 3.3 veya üzerini içeren Apache Spark için tüm Synapse Runtime sürümlerinde varsayılan tablo biçimi olarak parquettanımlanmıştı. Azure Synapse Analytics ile Microsoft Fabric arasındaki farklar için Apache Spark yapılandırma ayrıntılarını içeren tabloyu denetleyin.

Spark SQL, PySpark, Scala Spark ve Spark R kullanılarak oluşturulan tüm tablolar, tablo türü atlandığında varsayılan olarak delta tabloyu oluşturur. Betikler tablo biçimini açıkça ayarlarsa, buna dikkat edilir. Spark tablo oluşturma komutlarındaki komut USING DELTA yedekli hale gelir.

Parquet tablo biçimini bekleyen veya kabul eden betikler düzeltilmelidir. Delta tablolarında aşağıdaki komutlar desteklenmez:

  • ANALYZE TABLE $partitionedTableName PARTITION (p1) COMPUTE STATISTICS
  • ALTER TABLE $partitionedTableName ADD PARTITION (p1=3)
  • ALTER TABLE DROP PARTITION
  • ALTER TABLE RECOVER PARTITIONS
  • ALTER TABLE SET SERDEPROPERTIES
  • LOAD DATA
  • INSERT OVERWRITE DIRECTORY
  • SHOW CREATE TABLE
  • CREATE TABLE LIKE

Sürüm oluşturma

Anlamsal Sürüm Oluşturma ile yakından ilişkili olan çalışma zamanı sürüm numaralandırmamız biraz farklı bir yaklaşım izler. Çalışma zamanı ana sürümü Apache Spark ana sürümüne karşılık gelir. Bu nedenle, Çalışma Zamanı 1 Spark sürüm 3'e karşılık gelir. Benzer şekilde, yaklaşan Çalışma Zamanı 2, Spark 4.0 ile uyumlu olacaktır. Geçerli çalışma zamanları, Çalışma Zamanı 1.1 ve Çalışma Zamanı 1.2 arasında, farklı kitaplıkların eklenmesi veya kaldırılması dahil olmak üzere değişikliklerin gerçekleşebileceğini unutmayın. Buna ek olarak, platformumuz kullanıcıların istenen kitaplıkları yüklemesini sağlayan bir kitaplık yönetimi özelliği sunar.