Sdílet prostřednictvím


Runtime Apache Spark ve Fabric

Microsoft Fabric Runtime je platforma integrovaná v Azure založená na Apache Sparku, která umožňuje spouštění a správu dat a prostředí pro datové vědy. Kombinuje klíčové komponenty z interních i opensourcových zdrojů a poskytuje zákazníkům komplexní řešení. Pro zjednodušení odkazujeme na Microsoft Fabric Runtime, který využívá Apache Spark, jako Fabric Runtime.

Hlavní komponenty řídicího prostředí Fabric:

  • Apache Spark – výkonná opensourcová distribuovaná výpočetní knihovna, která umožňuje rozsáhlé úlohy zpracování a analýzy dat. Apache Spark poskytuje univerzální a vysoce výkonnou platformu pro datové inženýrství a prostředí pro datové vědy.

  • Delta Lake – opensourcová vrstva úložiště, která do Apache Sparku přináší transakce ACID a další funkce spolehlivosti dat. Delta Lake integrovaná v prostředí Fabric Runtime vylepšuje možnosti zpracování dat a zajišťuje konzistenci dat napříč několika souběžnými operacemi.

  • Nativní prováděcí modul – je transformativní vylepšení úloh Apache Sparku, které nabízí významné zvýšení výkonu přímo spouštěním dotazů Sparku na infrastrukturu lakehouse. Bezproblémově integrované, nevyžaduje žádné změny kódu a vyhýbá se závislosti na dodavateli, podporuje formáty Parquet i Delta napříč rozhraními Apache Spark API v Runtime 1.3 (Spark 3.5). Tento modul zvyšuje rychlost dotazů až čtyřikrát rychleji než tradiční Spark operačního systému, jak ukazuje srovnávací test TPC-DS 1TB, snižuje provozní náklady a zlepšuje efektivitu napříč různými úlohami dat, včetně příjmu dat, ETL, analýz a interaktivních dotazů. Nativní prováděcí modul je založen na dvou klíčových komponentách operačního systému: Velox, knihovna akcelerace databáze C++, kterou zavádí Meta a Apache Gluten (inkutující) střední vrstva zodpovědná za snižování spouštění modulů SQL založených na JVM na nativní moduly představené Společností Intel.

  • Balíčky na úrovni výchozí úrovně pro balíčky Java/Scala, Python a R – které podporují různé programovací jazyky a prostředí. Tyto balíčky se instalují a konfigurují automaticky, což vývojářům umožňuje použít upřednostňované programovací jazyky pro úlohy zpracování dat.

  • Modul Runtime Microsoft Fabric je založený na robustním opensourcovém operačním systému, který zajišťuje kompatibilitu s různými konfiguracemi hardwaru a požadavky na systém.

Níže najdete komplexní porovnání klíčových komponent, včetně verzí Apache Sparku, podporovaných operačních systémů, Javy, Scaly, Pythonu, Delta Lake a R pro moduly runtime založené na Apache Sparku v rámci platformy Microsoft Fabric.

Návod

Pro produkční úlohu, která je aktuálně Runtime 1.3, vždy používejte nejnovější obecně dostupnou verzi modulu runtime (GA).

Součást Runtime 1.2 Runtime 1.3 Runtime 2.0
fáze vydání EOSA GA Experimentální (Preview)
Verze Apache Sparku 3.4.1 3.5.5 4.0.0
Operační systém Mariner 2.0 Mariner 2.0 Mariner 3.0
Verze Javy 11 11 21
Verze Scala 2.12.17 2.12.17 2.13.16
Verze Pythonu 3,10 3.11 3.12.11
Verze Delta Lake 2.4.0 3.2 4.0.0

Navštivte modul Runtime 1.2, Runtime 1.3 nebo Runtime 2.0 a prozkoumejte podrobnosti, nové funkce, vylepšení a scénáře migrace pro konkrétní verzi modulu runtime.

Optimalizace fabricu

V Microsoft Fabric zahrnuje modul Spark i implementace Delta Lake optimalizace a funkce specifické pro danou platformu. Tyto funkce jsou navržené tak, aby používaly nativní integrace v rámci platformy. Je důležité si uvědomit, že všechny tyto funkce je možné zakázat, abyste dosáhli standardních funkcí Sparku a Delta Lake. Prostředí pro běh Apache Spark zahrnují:

  • Kompletní opensourcová verze Apache Sparku.
  • Kolekce téměř 100 integrovaných, jedinečných vylepšení výkonu dotazů. Mezi tato vylepšení patří funkce, jako je ukládání do mezipaměti oddílů (povolení ukládání oddílové mezipaměti souborového systému ke snížení počtu volání metadatového úložiště) a křížové spojení s projekcí skalárního poddotazu.
  • Integrovaná inteligentní mezipaměť.

V prostředí Fabric Runtime pro Apache Spark a Delta Lake jsou k dispozici nativní funkce zápisu, které slouží dvěma klíčovým účelům:

  • Nabízejí diferencovaný výkon pro psaní úloh a optimalizaci procesu zápisu.
  • Ve výchozím nastavení mají optimalizaci V-Order souborů Delta Parquet. Optimalizace pořadí V-Order v Delta Lake je zásadní pro zajištění špičkového výkonu čtení napříč všemi motory Fabric. Pokud chcete získat hlubší přehled o tom, jak funguje a jak ho spravovat, přečtěte si vyhrazený článek o optimalizaci tabulek Delta Lake a V-Order.

Podpora více běhových prostředí

Fabric podporuje více runtime prostředí, nabízejíc uživatelům flexibilitu při bezproblémovém přepínání mezi nimi a minimalizaci rizika nekompatibility nebo přerušení.

Ve výchozím nastavení všechny nové pracovní prostory používají nejnovější verzi modulu runtime GA, která je aktuálně Runtime 1.3.

Pokud chcete změnit verzi modulu runtime na úrovni pracovního prostoru, přejděte na Nastavení pracovního prostoru>Data Engineering/Science>Nastavení Sparku. Na kartě Prostředí vyberte požadovanou verzi modulu runtime z dostupných možností. Výběrem možnosti Uložit potvrďte výběr.

Snímek obrazovky znázorňující, kde vybrat verzi modulu runtime pro nastavení pracovního prostoru

Po provedení této změny budou všechny položky vytvořené systémem v pracovním prostoru, včetně objektů Lakehouses, SJD a Notebooks, fungovat pomocí nově vybrané verze modulu runtime na úrovni pracovního prostoru počínaje příští relací Sparku. Pokud aktuálně používáte notebook s existující relací pro úlohu nebo jakoukoli aktivitu související s lakehousem, relace Sparku bude pokračovat nezměněně. Ale počínaje další relací nebo úlohou se použije vybraná verze modulu runtime.

Pokud chcete také změnit modul runtime na Environment úrovni položky, vytvořte novou položku prostředí nebo otevřete a existující položku v rozevíracím seznamu Runtime vyberte požadovanou verzi modulu runtime z dostupných možností, vyberte Save a pak Publish provedené změny. Dále můžete tuto Environment položku použít se svým Notebook nebo Spark Job Definition.

Snímek obrazovky znázorňující, kde vybrat verzi modulu runtime pro položku Prostředí

Důsledky změn modulu runtime v nastavení Sparku

Obecně se snažíme migrovat všechna nastavení Sparku. Pokud ale zjistíme, že nastavení Sparku není kompatibilní s modulem Runtime B, vydáme zprávu s upozorněním a nebudeme nastavení implementovat.

Změna běhového prostředí nastavení Spark

Důsledky změn modulu runtime při správě knihoven

Obecně platí, že naším přístupem je migrovat všechny knihovny z modulu runtime A do modulu runtime B, včetně veřejných i vlastních modulů runtime. Pokud verze Pythonu a R zůstanou beze změny, měly by knihovny správně fungovat. U Jars ale existuje velká pravděpodobnost, že nemusí fungovat kvůli změnám závislostí a dalším faktorům, jako jsou změny v jazyce Scala, Java, Spark a operační systém.

Uživatel zodpovídá za aktualizaci nebo nahrazení všech knihoven, které nefungují s modulem Runtime B. Pokud dojde ke konfliktu, což znamená, že modul runtime B obsahuje knihovnu původně definovanou v modulu runtime A, náš systém pro správu knihoven se pokusí vytvořit potřebnou závislost pro modul Runtime B na základě nastavení uživatele. Proces sestavování ale selže, pokud dojde ke konfliktu. V protokolu chyb můžou uživatelé zjistit, které knihovny způsobují konflikty, a provádět úpravy jejich verzí nebo specifikací.

Změna modulu runtime správy knihovny

Upgrade Delta Lake protokolu

Funkce Delta Lake jsou vždy zpětně kompatibilní a zajišťují, aby tabulky vytvořené v nižší verzi Delta Lake mohly bezproblémově pracovat s vyššími verzemi. Pokud jsou ale některé funkce povolené (například pomocí delta.upgradeTableProtocol(minReaderVersion, minWriterVersion) metody, může dojít k ohrožení kompatibility s nižšími verzemi Delta Lake. V takových případech je nezbytné upravit úlohy odkazující na upgradované tabulky tak, aby odpovídaly verzi Delta Lake, která udržuje kompatibilitu.

Každá tabulka Delta je přidružená ke specifikaci protokolu a definuje funkce, které podporuje. Aplikace, které pracují s tabulkou, ať už pro čtení nebo zápis, spoléhají na tuto specifikaci protokolu, aby určily, jestli jsou kompatibilní se sadou funkcí tabulky. Pokud aplikace nemá možnost zpracovat funkci uvedenou jako podporovanou v protokolu tabulky, nemůže do ní číst ani zapisovat.

Specifikace protokolu je rozdělena do dvou různých komponent: "read" a "write" protokol. Další informace najdete na stránce "Jak Delta Lake spravuje kompatibilitu funkcí?".

GIF zobrazující okamžité upozornění při použití metody upgradeTableProtocol.

Uživatelé mohou příkaz delta.upgradeTableProtocol(minReaderVersion, minWriterVersion) spustit v prostředí PySpark a ve Spark SQL a Scala. Tento příkaz jim umožňuje zahájit aktualizaci tabulky Delta.

Je důležité si uvědomit, že při provádění tohoto upgradu se uživatelům zobrazí upozornění, že upgrade verze protokolu Delta je neodvolatelný proces. To znamená, že po spuštění aktualizace se nedá vrátit zpět.

Upgrady verzí protokolu můžou potenciálně ovlivnit kompatibilitu stávajících čtenářů tabulek Delta Lake, zapisovačů nebo obojího. Proto je vhodné pokračovat s opatrností a upgradovat verzi protokolu pouze v případě potřeby, například při přijímání nových funkcí v Delta Lake.

Důležité

Další informace o tom, které verze protokolů a funkce jsou kompatibilní ve všech prostředích Microsoft Fabric, najdete v tématu Interoperabilita formátů tabulek Delta Lake.

Snímek obrazovky s upozorněním při upgradu protokolu Delta Lake

Kromě toho by uživatelé měli ověřit, že všechny aktuální a budoucí produkční úlohy a procesy jsou kompatibilní s tabulkami Delta Lake pomocí nové verze protokolu, aby se zajistil bezproblémový přechod a zabránilo případným přerušením.