Ekinlikler
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.
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 tümleştirilmiştir, kod değişikliği gerektirmez ve Çalışma Zamanı 1.3'te (Spark 3.5) Apache Spark API'leri genelinde hem Parquet hem de Delta biçimlerini destekleyen satıcı kilitlenmesini önler. Bu altyapı, TPC-DS 1TB karşılaştırması tarafından gösterildiği gibi sorgu hızlarını geleneksel OSS Spark'a göre dört kat daha hızlı artırır; operasyonel maliyetleri azaltır ve veri alımı, ETL, analiz ve etkileşimli sorgular gibi çeşitli veri görevlerinde 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.
İpucu
Şu anda Çalışma Zamanı 1.3 olan üretim iş yükünüz için her zaman en son GA çalışma zamanı sürümünü kullanın.
Ç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.11 |
Delta Lake | 2.2.0 | 2.4.0 | 3.2 |
R | 4.2.2 | 4.2.2 | 4.4.1 |
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, Çalışma Zamanı 1.2 veya Çalışma Zamanı 1.3'e gidin.
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:
- İş yükleri yazmak için farklı performans sunar ve yazma sürecini iyi hale getirmektedir.
- 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.
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 ç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ında çalışma zamanı sürümünün nasıl değiştireceğini 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.
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.
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.
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ü. Ayrıntıları okumak için "Delta Lake özellik uyumluluğunu nasıl yönetir?"
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.
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.
En son Doku Çalışma Zamanı, sürüm 1.3 ve Doku Çalışma Zamanı, 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 parquet
tanı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