Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makale, toplam 4 aşamalı Azure Synapse Spark'tan Microsoft Fabric'e geçiş en iyi uygulamaları serisinin 2. aşamasıdır.
Bu makaleyi kullanarak Spark iş yüklerinizi Azure Synapse'tan Fabric'e taşıyabilirsiniz. Bu makalede Geçiş Yardımcısı çalıştırma, otomatik olarak dönüştürülemez kod desenlerini yeniden düzenleme ve Spark havuzu yapılandırmalarını, ortamlarını ve kitaplıklarını geçirme işlemleri ele alınmaktadır.
Bu makalede şunları öğreneceksiniz:
- Standart (Git olmayan) ve Git özellikli Synapse çalışma alanları için geçiş iş akışını anlayın.
- Not defterlerini, Spark iş tanımlarını ve havuzları geçirmek için Spark Geçiş Yardımcısı kullanın.
- Fabric uyumluluğu için Synapse'e özgü kod desenlerini yeniden düzenleme.
- Spark havuzu ayarlarını, ortamlarını ve kütüphanelerini taşıyın.
- Synapse ile Fabric arasındaki kitaplık uyumluluk boşluklarını belirleyin ve çözün.
"Göç Asistanı ile taşıma"
Spark Geçiş Yardımcısı not defterlerinin, Spark iş tanımlarının, havuzların ve göl veritabanı meta verilerinin Synapse'ten Fabric geçişini otomatikleştirir. Yardımcı öğelerinizi kopyalar ve dönüştürür, ancak geçişi tamamlamaz; yine de kodu yeniden düzenlemeniz, yapılandırma boşluklarını mutabakata bağlamanız ve sonuçları doğrulamanız gerekir.
Yardımcıyı çalıştırmayla ilgili adım adım yönergeler için bkz. Spark Synapse to Fabric Spark Geçiş Yardımcısı (Önizleme).
Bu yardımcı, aşağıdaki öğeleri aktarır:
- Kıvılcım havuzları Fabric Pools'a ve ilgili çevre öğelerine taşınır.
- Notebooklar ve ilişkili ortamlar taşındı.
- Spark iş tanımları ilişkili ortamlarla taşınır.
- Göl veritabanları Fabric şemalarla eşlenir; yönetilen Delta tabloları OneLake katalog kısayolları aracılığıyla geçirilir.
Important
Spark yapılandırmaları, özel kitaplıklar ve özel yürütücü ayarları yardımcı tarafından geçirilmez. Bunları Fabric'teki ortam öğelerinde manuel olarak yapılandırmanız gerekir. VNet altındaki Synapse çalışma alanları asistanla geçirilemiyor.
Standart (Git dışı) çalışma alanı geçişi
Not defterlerinin ve SJD'lerin doğrudan Synapse'te (Git deposunda değil) depolandığı çalışma alanları için:
Spark Geçiş Yardımcısı'ı Fabric çalışma alanınızdan (Migrate>Veri mühendisliği öğeleri) çalıştırın. Kaynak Synapse çalışma alanını seçin ve tüm Spark öğelerini taşıyın.
Bağımlılıkları doğrulama: Aynı Spark sürümünün kullanıldığından emin olun. Diğer not defterlerine
mssparkutils.notebook.run()aracılığıyla başvuruluyorsa, bunların da geçirildiğini doğrulayın. Geçiş Yardımcısı klasör yapısını korur (Fabric en fazla 10 iç içe yerleştirme düzeyini destekler).Yeniden düzenleme kodu:
mssparkutilsyerinenotebookutilsyazın, bağlı hizmet başvurularını Fabric Bağlantıları ile değiştirin ve dosya yollarını güncelleştirin. Ayrıntılar için Spark kodunu yeniden düzenleme bölümüne bakın.
Git özellikli çalışma alanı geçişi
Not defterlerinin ve SJD'lerin bir Azure DevOps veya GitHub deposunda depolandığı çalışma alanları için Synapse ve Fabric farklı Git serileştirme biçimleri kullandığını unutmayın. Synapse not defterlerini JSON olarak depolar; Fabric kaynak biçimini .py/.scala veya .ipynb kullanır. Bir Fabric çalışma alanını doğrudan aynı Synapse Git dalı üzerine işaretleyemezsiniz.
Öğeleri taşıma. Not defterlerini ve SJD'leri Synapse çalışma alanından Fabric çalışma alanına geçirmek için Spark Geçiş Yardımcısı kullanın. Bu, öğeleri Fabric uyumlu biçime dönüştürür.
Kodu yeniden düzenleme. Standart senaryoyla aynı kod yeniden düzenlemesini uygulayın: yerine
mssparkutils, dosya yollarını güncelleştirin, bağlı hizmetleri değiştirin. Ayrıntılar için Spark kodunu yeniden düzenleme bölümüne bakın.Fabric çalışma alanını Git'e bağlayın. Fabric çalışma alanınızı deponuzdaki yeni bir dal veya klasöre bağlayın (Workspace Settings>Source Control>Git Integration). Çakışmaları önlemek için Synapse içeriğinizden ayrı bir dal veya klasör kullanın. Yeni dalı oluşturmak için Fabric çalışma alanı içeriğini taahhüt edin.
Dağıtım işlem hatlarını ayarlama (isteğe bağlı). Devam eden CI/CD için Fabric dağıtım işlem hatlarını (Geliştirme → Test → Prod) yapılandırın. Fabric, aşamalar arasında dağıtım yaparken varsayılan lakehouse'lar ve ekli ortamlar için otomatik bağlamayı destekler.
Tip
Synapse Git dalınızı tarihsel bir referans olarak koruyun. Fabric içerik için yeni bir dal veya klasör oluşturun. Fabric not defterlerini JSON yerine kaynak dosyalar (PySpark için .py) olarak depolar ve bu da kod gözden geçirme için daha temiz Git farkları sağlar.
Spark kodunu yeniden düzenleme
Not defterlerinizi ve Spark iş tanımlarınızı geçirdikten sonra, Geçiş Yardımcısı'ın otomatik olarak dönüştüremediği kod desenlerini düzeltmeniz gerekiyor. Bu bölüm Synapse'e özgü API'leri değiştirme, dosya yollarını güncelleştirme ve kimlik bilgisi desenlerini Fabric ile çalışacak şekilde değiştirme konusunda size yol gösterir.
Ön yeniden düzenleme denetimi
Tek tek yeniden düzenleme düzenlerini ele almadan önce, değişiklik gerektiren Synapse'e özgü kodu tanımlamak için tüm not defterlerinde kod tabanı genelinde bir arama çalıştırın.
| Arama Düzeni | Category | Eylem Gerekli |
|---|---|---|
spark.synapse.linkedService |
Bağlı Hizmetler | Kaldır; yerine doğrudan uç nokta kimlik doğrulaması veya Key Vault sırları kullan |
getSecretWithLS |
Credentials | şununla değiştir getSecret(vaultUrl, secretName) |
TokenLibrary |
Belirteç/Kimlik Doğrulaması | Doğrudan OAuth yapılandırmasını veya notebookutils'i kullanın; kaldırın. |
synapsesql |
SQL Bağlayıcısı | Delta biçimi okuma ile spark.read.synapsesql() değiştir |
mssparkutils |
Spark Yardımcı Programları | şununla notebookutils değiştir (çoğu API aynı) |
spark.catalog.listDatabases |
Katalog API’si | şununla değiştir spark.sql("SHOW DATABASES") |
spark.catalog.currentDatabase |
Katalog API’si | şununla değiştir spark.sql("SELECT CURRENT_DATABASE()") |
spark.catalog.getDatabase |
Katalog API’si | şununla değiştir spark.sql("DESCRIBE DATABASE ...") |
spark.catalog.listFunctions |
Katalog API’si | Fabric desteklenmez — kaldır |
spark.catalog.registerFunction |
Katalog API’si | Desteklenmez — bunun yerine kullanın spark.udf.register() |
spark.catalog.functionExists |
Katalog API’si | Fabric desteklenmez — kaldır |
LinkedServiceBasedTokenProvider |
Kimlik Doğrulama Sağlayıcısı | şununla değiştir ClientCredsTokenProvider |
getPropertiesAsMap |
Bağlı Hizmetler | Kaldır ve depolama hesabını doğrudan yapılandır |
spark.storage.synapse |
Bağlı Hizmetler | Kaldır — Fabric tarafından desteklenmez |
/user/trusted-service-user/ |
Dosya Yolları | OneLake yolu veya kısayol yolu ile değiştirin |
cosmos.oltp |
Azure Cosmos DB veritabanı | Bağlı hizmet yerine gizli bilgiler için Key Vault kullanacak şekilde güncelle |
kusto.spark.synapse |
Kusto/ADX |
accessToken aracılığıyla getToken() ile bağlı hizmet kimlik doğrulamasını değiştirin |
Tip
Geçiş öncesinde bu aramaları not defteri deponuzun tamamında çalıştırın. Sıfır eşleşmesi olan not defterleri as-is olarak aktarılabilir, bu güvenlidir. Eşleşmeleri olan not defterleri, aşağıdaki bölümlerdeki ayrıntılı yönergeler kullanılarak kod yeniden düzenleme için önceliklendirilmelidir.
Dosya yolu kullanımı
Fabric'da doğrudan abfss:// yollarını veya OneLake yollarını kullanmak için göreli yolları veya Synapse tarafından yönetilen depolama yollarını kullanan Synapse not defterlerini güncelleştirin.
| Önce (Synapse) | After (Fabric) |
|---|---|
"abfss://...@<synapse_storage>.dfs.core.windows.net/user/trusted-service-user/deltalake" |
"abfss://<workspace_id>@onelake.dfs.fabric.microsoft.com/<lakehouse_id>/Tables/deltalake" |
spark.read.synapsesql("<pool>.<schema>.<table>") |
spark.read.format("delta").load("abfss://.../<lakehouse>/Tables/<table>") |
Tip
Synapse tarafından yönetilen tüm depolama yollarını OneLake yolu (abfss://<workspace_id>@onelake.dfs.fabric.microsoft.com/<item_id>/...) olarak değiştirin. ADLS 2. Nesil verileri için OneLake kısayolları oluşturun ve bunun yerine kısayol yollarına başvurun.
Spark Katalog API'si
Fabric birkaç spark.catalog yöntemini desteklemez. Bunları Spark SQL eşdeğerleriyle değiştirin.
| Önce (Synapse) | After (Fabric) |
|---|---|
spark.catalog.listDatabases() |
spark.sql("SHOW DATABASES").show() |
spark.catalog.currentDatabase() |
spark.sql("SELECT CURRENT_DATABASE()").first()["current_database()"] |
spark.catalog.getDatabase(db_name) |
spark.sql(f"DESCRIBE DATABASE {db_name}").show() |
spark.catalog.listFunctions() |
Fabric tarafından desteklenmiyor — kaldırın veya atlayın |
spark.catalog.registerFunction(name, fn) |
Fabric desteklenmez— bunun yerine spark.udf.register() kullanın |
spark.catalog.functionExists(name) |
Fabric tarafından desteklenmiyor — kaldırın veya atlayın |
Note
spark.catalog, createTable() ve tableExists() gibi listTables() tablo yöntemleri Fabric normal şekilde çalışır. Yalnızca veritabanı düzeyinde ve işlev düzeyinde katalog yöntemleri için yeniden düzenleme gerekir.
MSSparkUtils ve NotebookUtils
mssparkutils çağrılarını Fabric notebookutils eşdeğerleriyle değiştirin. Kimlik bilgileriyle ilgili en yaygın değişiklikler şunlardır:
| Önce (Synapse) | After (Fabric) |
|---|---|
mssparkutils.credentials.getSecretWithLS("sampleLS", secretKey) |
notebookutils.credentials.getSecret("https://<vault>.vault.azure.net/", secretKey) |
TokenLibrary.getSecret("foo", "bar") |
notebookutils.credentials.getSecret("https://foo.vault.azure.net/", "bar") |
Fabric, bağlı hizmet tabanlı gizli veri alma (getSecretWithLS) desteklenmez. Bunun yerine, notebookutils.credentials.getSecret(vaultUrl, secretName) kullanarak doğrudan Key Vault URL'sine başvurun. Aynı model TokenLibrary.getSecret() çağrıları için de geçerlidir.
Note
Çoğu mssparkutils.fs yöntemi (örneğin, ls, cp, mv, rm, mkdirs, head) Fabric'da notebookutils.fs ile aynı şekilde çalışır. Birincil değişiklikler kimlik bilgileri, gizli anahtar yöntemleri ve notebook.run() yol referanslarıdır.
Azure Veri Gezgini (Kusto) bağlayıcısı
Bağlı hizmetler aracılığıyla Azure Veri Gezgini 'a (Kusto) bağlanan Synapse not defterlerinin doğrudan uç nokta kimlik doğrulaması kullanacak şekilde yeniden düzenlenmesi gerekir.
| Önce (Synapse) | After (Fabric) |
|---|---|
.option("spark.synapse.linkedService", "AzureDataExplorer1") |
Bağlı hizmet referansını kaldırın |
| Bağlantılı hizmet seçeneği ayarlanmış olarak okuma | .option("accessToken", notebookutils.credentials.getToken("https://<cluster>.kusto.windows.net")) |
Bağlı hizmet seçeneğini bir accessToken seçenekle değiştirin. Kusto küme uç noktanız için belirteç almak için kullanın notebookutils.credentials.getToken() . Sorgu seçeneklerinin geri kalanı (kustoDatabase, kustoQuery) değişmeden kalır.
Cosmos DB bağlayıcısı
Synapse'Azure Cosmos DB bağlantıları bağlı hizmetler veya getSecretWithLS.
| Önce (Synapse) | After (Fabric) |
|---|---|
.option("spark.synapse.linkedService", "CosmosDbLS") |
Bağlı hizmet referansını kaldırın |
mssparkutils.credentials.getSecretWithLS("cosmosKeyLS", "cosmosKey") |
notebookutils.credentials.getSecret("https://<vault>.vault.azure.net/", "cosmosKey") |
Bağlantılı servis referansını doğrudan Azure Cosmos DB uç nokta yapılandırması ile değiştirin. Azure Cosmos DB hesap anahtarını Azure Key Vault'ta sakla ve yerine kullanarak notebookutils.credentials.getSecret(vaultUrl, secretName)getSecretWithLS()elde et.
Bağlı hizmet referansları
Fabric'deki tüm Synapse bağlı hizmet referanslarını değiştirin.
| Önce (Synapse) | After (Fabric) |
|---|---|
spark.conf.set("spark.storage.synapse.linkedServiceName", ls_name) |
Kaldır — Fabric tarafından desteklenmez |
spark.conf.set("fs.azure.account.oauth.provider.type", "com.microsoft.azure.synapse.tokenlibrary.LinkedServiceBasedTokenProvider") |
spark.conf.set("fs.azure.account.oauth.provider.type", "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider") |
TokenLibrary.getPropertiesAsMap(linked_service_cfg) |
Kaldır — doğrudan bağlantı dizesi veya hizmet öznesi yapılandırması kullanın |
Fabric'da bağlı hizmet yoktur. Synapse belirteci sağlayıcısını standart OAuth istemci kimlik bilgileriyle (hizmet sorumlusu) değiştirin.
fs.azure.account.auth.type, oauth.provider.type, client.id, client.secret ve client.endpoint'yi spark.conf.set() kullanarak doğrudan yapılandırın.
Jeton kitaplığı
Synapse'in belirteçleri almaya ve bağlı hizmet özelliklerini okumaya yönelik TokenLibrary Fabric'da kullanılamaz. Eşdeğer desenlerle değiştirin.
| Önce (Synapse) | After (Fabric) |
|---|---|
TokenLibrary.getPropertiesAsMap(serviceConnection) |
Kaldır — depolama hesabını doğrudan yapılandırma |
val my_account = conexion("Endpoint").toString.substring(8) |
val my_account = "<storage_account_name>" // Hardcode or retrieve via notebookutils |
mssparkutils.fs.head(internalPath, Int.MaxValue) |
notebookutils.fs.head(internalPath, Int.MaxValue) |
OAuth tabanlı ADLS 2. Nesil erişimi için, depolama hesabına özgü anahtarları (örneğin, spark.conf.set()) kullanarak fs.azure.account.auth.type.<account>.dfs.core.windows.net hizmet sorumlusu kimlik bilgilerini doğrudan yapılandırın; bağlı hizmet belirteci sağlayıcılarına güvenmeyin.
Important
Tam geçiş öncesinde bağlantılı hizmet referansları için tüm not defterlerini gözden geçirin. Kalan tüm spark.synapse.linkedService, TokenLibrary veya getSecretWithLS çağrıları Fabric çalışma zamanında başarısız olur.
Spark iş tanımı geçişi
Spark iş tanımları (SJD), bir ana yürütülebilir dosyaya (.py, .jar, veya .R), isteğe bağlı başvuru kitaplıklarına, komut satırı bağımsız değişkenlerine ve bir lakehouse bağlamına başvuran toplu iş yapılandırmalarıdır. Spark Geçiş Yardımcısı SJD geçişini otomatik olarak işlerken Synapse ile Fabric SJD'ler arasındaki önemli farklar dikkat gerektirir.
Synapse ile Fabric SJD'ler arasındaki önemli farklar
Lakehouse bağlamı gerekli. Fabric her SJD ile ilişkili en az bir göl evi olmalıdır. Bu lakehouse, Spark çalışma zamanı için varsayılan dosya sistemi olarak hizmet eder. Göreli yolları kullanan tüm kodlar varsayılan lakehouse'dan okur ve yazar. Synapse'te, SJD'ler varsayılan dosya sistemi olarak çalışma alanı varsayılan depolama alanını (ADLS 2. Nesil) kullanır.
Desteklenen diller. Fabric PySpark (Python), Spark (Scala/Java) ve SparkR'ı destekler. Spark için .NET (C#/F#) Fabric desteklenmez. Geçiş öncesinde bu iş yüklerini Python veya Scala'da yeniden yazmanız gerekir.
İlkeleri yeniden deneyin. Fabric SJDs, maksimum yeniden deneme sayısı ve yeniden deneme aralığı gibi yerleşik yeniden deneme ilkelerini destekler. Bu özellik, süresiz olarak çalışması gereken Spark Yapılandırılmış Akış işleri için kullanışlıdır.
Ortam bağlantısı. Synapse'te, SJD'ler bir Spark havuzuna bağlanır. Fabric'te, SJD'ler havuz yapılandırması, kütüphaneler ve Spark özelliklerini içeren bir ortam öğesine bağlanır. Geçiş Yardımcısı, Synapse havuz referanslarını Fabric'teki ortam öğelerine otomatik olarak eşler.
Zamanlama. Fabric SJD'lerin ayrı bir işlem hattı gerektirmeden yerleşik zamanlama (Settings>Schedule) vardır. SJD zamanlama işlemleri için Synapse'te Spark Görevi etkinliğine sahip bir işlem hattı gerekir. Yalnızca SJD'leri tetikleyen Synapse işlem hatlarınız varsa, işlem hattını geçirmek yerine Fabric yerleşik SJD zamanlamasını kullanmayı göz önünde bulundurun.
İçe/dışa aktarma. Synapse, SJD'ler için kullanıcı arabirimi tabanlı JSON içeri ve dışarı aktarmayı destekler. Fabric kullanıcı arabirimi içeri veya dışarı aktarmayı desteklemez. Program aracılığıyla SJD oluşturmak veya güncelleştirmek için Spark Geçiş Yardımcısı veya Fabric REST API'sini kullanın.
SJD kodunu yeniden düzenleme
Bu makaledeki kod yeniden düzenleme desenleri SJD ana dosyaları için de geçerlidir. Değişiklikler iki kategoriye ayrılır.
Kaynak kodu değişiklikleri (, .pyveya .jar ana dosyasının .Riçinde):
-
mssparkutilsilenotebookutilskimlik bilgileri ve dosya sistemi işlemleri için değiştirin. - Gerektiğinde koddaki sabit kodlanmış dosya yollarını OneLake
abfss://yollarına veya kısayol yollarına güncelleştirin. Varsayılan lakehouse üzerinde yalnızca göreli yollar kullanan SJD'ler değişiklik gerektirmeyebilir. - Kodda yer alan bağlı hizmet referanslarını Key Vault gizli anahtarları veya Fabric Bağlantıları ile değiştirin.
Note
DMTS Bağlantıları henüz Fabric Spark iş tanımlarında desteklenmemektedir (yalnızca not defterlerinde desteklenir). SJD kodunuz DMTS kullanıyorsa doğrudan uç nokta kimlik doğrulamasını kullanmak için yeniden düzenleme.
SJD yapılandırma değişiklikleri (Fabric SJD öğesi ayarlarında):
- Ana tanım dosyaları tarafından başvurulabilen ADLS 2. Nesil yollarına Fabric çalışma alanından erişilebildiğini doğrulayın. Dosyalar Synapse çalışma alanı-iç depolama alanında depolandıysa, bunları Fabric SJD'ye yeniden yükleyin veya erişilebilir bir ADLS 2. Nesil konumuna taşıyın.
- Geçiş sonrasında tüm başvuru dosyalarının (
.py,.R,.jar) erişilebilir olduğunu doğrulayın. Synapse çalışma alanı-iç depolama alanında depolanan tüm dosyaları yeniden karşıya yükleyin. - Komut satırı bağımsız değişkenleri Synapse'e özgü yollar veya bağlantı dizeleri içeriyorsa, bunları Fabric eşdeğerlerine güncelleştirin.
Havuzları, ortamları ve kitaplıkları geçirme
defterleriniz ve Spark iş tanımlamalarınız taşındıktan sonra havuz ve ortam stratejisine karar vermeniz gerekir. Bu bölümde, Fabric Başlangıç Havuzlarını ne zaman kullanabileceğiniz (geçiş yerine), özel ortamların ne zaman oluşturulacağı ve kitaplık uyumluluk boşluklarını tanımlama ve çözme işlemleri açıklanmaktadır.
Spark kümesi geçişi
Fabric başlangıç havuzları
Fabric Başlangıç Havuzları saniye düzeyinde Spark oturumu başlatma sağlar. Bu, kümeleri başlatmak için dakikalar süren soğuk başlangıçlar gerektiren Synapse Spark havuzlarına göre önemli bir gelişmedir. Başlangıç Havuzları platformdan kullanıma hazırdır ve yapılandırma gerektirmez.
Tip
Synapse Spark havuzunuzda özel yapılandırma, özel kitaplık ve Orta'nın ötesinde belirli bir düğüm boyutu gereksinimi yoksa havuzu transfer etmeyin. Bunun yerine, not defterlerinizin ve Spark iş tanımlarınızın Fabric çalışma alanı varsayılan Başlangıç Havuzu ayarlarını kullanmasına izin verin. Bu yaklaşım size en hızlı başlangıç sürelerini ve sıfır havuz yönetimi yükünü verir. Özel bir havuz veya ortam oluşturmanız sadece özel bir ihtiyacınız olduğunda.
Özel havuz veya ortam ne zaman oluşturulur?
Fabric özel havuzu ve/veya ortamı yalnızca iş yükünüz gerektirdiğinde oluşturun:
- Varsayılan Orta'dan farklı belirli bir düğüm boyutu (Küçük, Büyük, XLarge, XXLarge).
- Fabric yerleşik çalışma zamanında bulunmayan özel kitaplıklar (pip paketleri, conda paketleri, JAR'ler, wheel paketleri).
- Varsayılanların ötesinde özel Spark özellikleri (örneğin,
spark.sql.shuffle.partitions,spark.executor.memory). - Özel veri kaynaklarına erişmek için Yönetilen Özel Uç Noktalar (Özel Havuzlar gerektirir).
- Çalışma alanı varsayılanından farklı belirli bir Spark çalışma zamanı sürümü.
Yapılandırma ve kitaplık geçişi
Spark yapılandırmalarını ve kütüphanelerini Fabric'teki ortam öğelerine taşıyın.
Kütüphaneleri ortam öğelerine taşıma ile ilgili ayrıntılı adımlar için bkz. Migrate Spark Libraries from Azure Synapse to Fabric.
Spark yapılandırmalarını dışarı aktarın. Synapse Studio'da Yönet>Spark Havuzları> seçin havuzu, >Yapılandırmalar + Kitaplıklar olarak > indirin
.yml/.conf/.json.Ortam'a veri aktarımı. Fabric'te, bir çevre öğesi oluşturun. Spark İşlem>Spark Özellikleri> Dışarı aktarılan dosyayı
Sparkproperties.ymlgidin.Kitaplıkları taşıma. Havuz seviyesindeki kütüphaneler için, paketleri (tekerlekler, JAR'lar, tar'lar) ortamın kütüphane bölümüne yükleyin. PyPI/Conda paketleri için, bunları ortamın genel kütüphane yapılandırmasına ekleyin.
Important
Fabric çalışma alanı düzeyinde kitaplık ayarları kullanım dışıdır. Tüm kütüphaneleri ortam öğelerine taşıyın. Göç, mevcut çalışma alanı düzeyindeki yapılandırmaları kalıcı olarak kaldırır—ortamları etkinleştirmeden önce tüm ayarları indirin.
Kitaplık uyumluluğu: Synapse ve Fabric
Fabric Runtime 1.3 (Spark 3.5) 223 Python, 183 Java/Scala ve 135 R kitaplığı yerleşik olarak bulunur. Synapse kitaplıklarının çoğu Fabric kullanılabilir, ancak geçiş öncesinde giderilmemesi durumunda çalışma zamanı hatalarına neden olabilecek boşluklar vardır.
Not defterlerinizin gerçekte hangi kitaplıkları kullandığını belirlemek için boşluk tablolarını gözden geçirmeden önce şu denetimleri çalıştırın:
-
Python not defterleri: Tüm
importfrom ... import.pydosyalarında / ve.ipynbdeyimlerini arayın. -
Java/Scala not defterleri ve SJD'ler:
importdeyimlerini ve Maven koordinatlarını arayın;com.azure.cosmos.sparkveyacom.microsoft.kusto.sparkgibi paketleri arayın. -
Export tam bağımlılık listesi: Synapse not defterinde
pip freezeçalıştırın, Fabric Runtime 1.3 bildirimiyle karşılaştırın. Yalnızca hempip freezeçıktınızda hem de aşağıdaki boşluk tablolarında görünen kitaplıklar eylem gerektirir. - Havuz düzeyi ve çalışma alanı düzeyinde özel kütüphaneler: Synapse Studio'da,Apache Spark Pools'u>>> bölümünden havuz paketlerini seç ve bir ortam öğesine yeniden yüklenmesi gereken özel kütüphaneleri görün.
Fabric'de eksik olan Python kitaplıkları
| Category | Kütüphaneler | Eylem |
|---|---|---|
| CUDA / GPU (9 libs) | libcublas, libcufft, libcufile, libcurand, libcusolver, libcusparse, libnpp, libnvfatbin, libnvjitlink, libnvjpeg | Kullanılamaz; Fabric GPU havuzlarını desteklemez. CPU tabanlı alternatifleri kullanmak veya Synapse'te tutmak için GPU iş yüklerini yeniden düzenleme. |
| HTTP / API istemcileri | httpx, httpcore, h11, google-auth, jmespath | Ortam üzerinden kurulum: pip install httpx google-auth jmespath |
| ML / Yorumlanabilirlik | yorumla, çekirdeği yorumla | Ortam üzerinden kurulum: pip install interpret |
| Veri serileştirme | marshmallow, jsonpickle, frozendict, fixedint | Gerekirse ortam üzerinden kur: pip install marshmallow jsonpickle |
| Günlüğe Kaydetme / Telemetri | Akıcı-logger, insan dost, kütüphane-metadata-cooker, impulse-python-handler | fluent-logger: kullanılıyorsa yükleyin. Diğerleri Synapse-internal'tir; büyük olasılıkla gerekli değildir. |
| Jupyter iç işlevleri | jupyter-client, jupyter-core, jupyter-ui-poll, jupyterlab-widgets, ipython-pygments-lexers | Fabric Jupyter altyapısını dahili olarak yönetir. Bu kitaplıklar genellikle kullanıcı kodunda gerekli değildir. |
| Sistem / C kitaplıkları | libgcc, libstdcxx, libgrpc, libabseil, libexpat, libnsl, libzlib | Düşük düzeyli sistem kitaplıkları. Genellikle doğrudan içeri aktarılmaz. Yalnızca bunlara bağlı C uzantılarınız varsa yükleyin. |
| Dosya / eşzamanlılık | filelock, fsspec, knack | Kullanılıyorsa ortam üzerinden kurulum: pip install filelock fsspec |
Fabric'de Java/Scala kitaplıkları eksik.
| Kütüphane | Synapse Sürümü | Eylem |
|---|---|---|
| azure-cosmos-analytics-spark | 2.2.5 | Spark işleriniz Cosmos DB analitik bağlayıcısını kullanıyorsa, ortam öğesine özel bir JAR olarak kurun. |
| junit-jüpiter-params | 5.5.2 | Yalnızca test kitaplığı. Üretim not defterlerinde gerekli değildir. |
| junit-platform-commons | 1.5.2 | Yalnızca test kitaplığı. Üretim not defterlerinde gerekli değildir. |
R kütüphaneleri
Tek bir fark vardır: Synapse, Fabric olmayan lightgbm R paketini (v4.6.0) içerir. Gerekirse ortam üzerinden kur. Fabric, FabricTelemetry (v1.0.2) ekler, bu Fabric-internal'dır.
Önemli sürüm farklılıkları
68 Python kitaplığı her iki platformda da mevcuttur ancak farklı sürümleri vardır. Çoğu küçük sürüm farklılıklarıdır, ancak 17'de davranışı etkileyebilecek ana sürüm atlamaları vardır.
| Kütüphane | Yapı Sürümü | Synapse Sürümü | Etki |
|---|---|---|---|
| libxgboost | 2.0.3 | 3.0.1 | v2 ile v3 arasında XGBoost API değişiklikleri. Test modeli eğitimi/tahmin kodu. |
| Flask | 2.2.5 | 3.0.3 | Flask 3.x'de hataya neden olan değişiklikler var. Not defterlerinden Flask API'leri sunuyorsanız, kapsamlı bir şekilde test edin. |
| lxml | 4.9.3 | 5.3.0 | Küçük API değişiklikleri. XML ayrıştırma iş akışlarını test etme. |
| libprotobuf | 3.20.3 | 4.25.3 | Protobuf 4.x özel proto tanımları için hataya neden olan değişiklikler içeriyor. |
| markupsafe | 2.1.3 | 3.0.2 | MarkupSafe 3.x, Python 3.7 desteğini bırakır ancak API uyumluluğunu korur. |
| libpq | 12.17 | 17.4 | PostgreSQL istemci kitaplığı. Ana sürüm atlama — veritabanı bağlantılarını test edin. |
| libgcc-ng / libstdcxx-ng | 11.2.0 | 15.2.0 | GCC çalışma zamanı. C uzantısı uyumluluğunu etkileyebilir. |
Note
Synapse genellikle sistem düzeyindeki kitaplıkların (GCC, protobuf, libpq) daha yeni sürümlerini, Fabric ise veri/ML kitaplıklarının daha yeni sürümlerini (genel olarak daha fazla Python paket) iletir. Belirli bir sürüme ihtiyacınız varsa, ortam öğe yapılandırmanıza sabitleyin.
Tip
Hızlı bir uyumluluk kontrolü yapın: Synapse havuzunuzun kütüphane listesini dışa aktarın (pip freeze), Fabric Runtime 1.3 manifestosuyla karşılaştırın ve taşınan not defterlerini çalıştırmadan önce çevre öğenizde eksik kütüphaneleri önceden yükleyin. Fabric ile Synapse Spark çalışma zamanları arasındaki her yerleşik kitaplık ve sürümün satır satır karşılaştırması için bkz. microsoft/synapse-spark-runtime GitHub deposu.