Čítať v angličtine

Zdieľať cez


Apache Spark Runtimes v službe Fabric

Microsoft Fabric Runtime je platforma integrovaná do Azure založená na Apache Spark, ktorá umožňuje realizáciu a správu skúseností dátového inžinierstva a dátovej vedy. Kombinuje kľúčové komponenty z interných aj open-source zdrojov, čím zákazníkom poskytuje komplexné riešenie. Pre jednoduchosť odkazujeme na Microsoft Fabric Runtime, ktorý funguje v apache Spark, ako na Runtime služby Fabric.

Hlavné súčasti CLR služby Fabric:

  • Apache Spark – výkonná knižnica distribuovanej computingu typu open-source, ktorá umožňuje rozsiahle úlohy v oblasti spracovania údajov a analýzy. Apache Spark poskytuje všestrannú a vysokovýkonnú platformu na prácu s dátovým inžinierom a dátovými vedami.

  • Delta Lake – open-source ukladací priestor, ktorý prináša transakcie ACID a ďalšie funkcie spoľahlivosti údajov do Apache Spark. Delta Lake integrovaná do služby Fabric Runtime zlepšuje možnosti spracovania údajov a zabezpečuje konzistentnosť údajov v rámci viacerých súbežných operácií.

  • Natívny nástroj na spúšťanie – je transformačným vylepšením pre vyťaženia Apache Spark, ktorý ponúka významné zisky z výkonu priamym vykonaním dotazov Spark na infraštruktúru lakehouse. Integrovaná bez problémov, nevyžaduje žiadne zmeny kódu a vyhýba sa lock-inu dodávateľa, čo podporuje formáty Parquet aj Delta v rámci rozhraní Apache Spark API v runtime 1.3 (Spark 3.5). Tento nástroj zvýši rýchlosť dotazu až štyrikrát rýchlejšie než tradičná služba OSS Spark, ako ukazuje štandard TPC-DS 1TB, znižuje prevádzkové náklady a zlepšuje efektivitu v rámci rôznych úloh s údajmi vrátane príjmu údajov, ETL, analýz a interaktívnych dotazov. Na platforme Velox a Intel's Apache Gluter sú optimalizované možnosti používania zdrojov a zároveň spracovávajú rôznorodé scenáre spracovania údajov.

  • Balíky predvolenej úrovne pre balíky Java/Scala, Python a R – balíky, ktoré podporujú rozličné programovacie jazyky a prostredia. Tieto balíky sa automaticky nainštalujú a nakonfigurujú a vývojárom umožnia použiť pre úlohy spracovania údajov ich preferované programovacie jazyky.

  • Služba Microsoft Fabric Runtime je založená na robustnom operačnom systéme typu open-source, ktorý zabezpečuje kompatibilitu s rôznymi hardvérovými konfiguráciami a systémovými požiadavkami.

Nižšie nájdete komplexné porovnanie kľúčových súčastí vrátane verzií Apache Spark, podporovaných operačných systémov, Java, Scala, Python, Delta Lake a R pre moduly runtime založené na Apache Spark v rámci platformy Microsoft Fabric.

Tip

Vždy používajte najnovšiu verziu režimu runtime ga pre produkčné vyťaženie, ktorá je v súčasnosti runtime 1.3.

Runtime 1.1 Runtime 1.2 Runtime 1.3
Apache Spark 3.3.1 3.4.1 3.5.0
Operačný systém Ubuntu 18.04 Mariner 2.0 Mariner 2.0
Jáva 8 11 11
Scala 2.12.15 2.12.17 2.12.17
Pytón 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

Navštívte moduly Runtime 1.1, Runtime 1.2 alebo Runtime 1.3 a preskúmajte podrobnosti, nové funkcie, vylepšenia a scenáre migrácie pre konkrétnu verziu modulu runtime.

Optimalizácie tkaniny

V službe Microsoft Fabric zahŕňa nástroj Spark aj implementácie delta lake optimalizácie a funkcie špecifické pre platformu. Tieto funkcie sú navrhnuté tak, aby používali natívne integrácie v rámci platformy. Ak chcete dosiahnuť štandardné funkcie spark a Delta Lake, je dôležité poznamenať, že všetky tieto funkcie môžu byť zakázané. Služba Fabric Runtimes pre Apache Spark zahŕňa:

  • Kompletná open-source verzia Apache Spark.
  • Kolekcia takmer 100 vstavaných jedinečných vylepšení výkonu dotazov. Tieto vylepšenia zahŕňajú funkcie, ako je ukladanie do vyrovnávacej pamäte na oblasti (povolenie vyrovnávacej pamäte oblasti FileSystem na zníženie volaní metastore) a Krížové pripojenie k projekcii skalárneho poddotazu.
  • Vstavaná inteligentná vyrovnávacia pamäť.

V rámci modulu Runtime služby Fabric pre Apache Spark a Delta Lake existujú natívne možnosti spisovateľa, ktoré slúžia na dva kľúčové účely:

  1. Ponúka odlišný výkon pri písaní vyťažení, čo optimalizuje proces písania.
  2. Predvolene sú optimalizované na V-Order súborov Delta Parquet. Optimalizácia delta Lake V-Order je rozhodujúca pre poskytovanie lepšieho výkonu na čítanie vo všetkých motoroch tkaniny. Ak chcete získať podrobnejšie informácie o tom, ako funguje a ako ju spravovať, pozrite si vyhradené článok o optimalizácii tabuľky Delta Lake a objednávke V-Order.

Podpora viacerých modulov runtime

Fabric podporuje viacero modulov runtime, ktoré používateľom ponúkajú flexibilitu, aby medzi nimi bezproblémovo prepínali, čím sa minimalizuje riziko nezlučiteľnosti alebo prerušenia.

Všetky nové pracovné priestory predvolene používajú najnovšiu verziu modulu runtime, ktorá je momentálne runtime 1.3.

Ak chcete zmeniť verziu modulu runtime na úrovni pracovného priestoru, prejdite na nastavenia pracovného priestoru>nastavenia Dátové inžinierstvo/veda>Spark. Na karte Environment vyberte požadovanú verziu modulu runtime z dostupných možností. Výberom položky Uložiť potvrďte výber.

Snímka obrazovky, ktorá znázorňuje, ako zmeniť verziu modulu runtime v nastaveniach pracovného priestoru.

Po vykonaní tejto zmeny budú všetky položky vytvorené systémom v pracovnom priestore vrátane lakehouses, SJD a poznámkových blokov fungovať pomocou novo vybratej verzie režimu runtime na úrovni pracovného priestoru od nasledujúcej relácie Spark. Ak momentálne používate poznámkový blok s existujúcou reláciou pre úlohu alebo akúkoľvek aktivitu súvisiacu s lakehouse, táto relácia služby Spark pokračuje rovnako ako je. Od nasledujúcej relácie alebo úlohy sa však použije vybratá verzia modulu runtime.

Dôsledky zmien modulu runtime v nastaveniach Spark

Vo všeobecnosti sa snažíme migrovať všetky nastavenia služby Spark. Ak však zistíme, že nastavenie Spark nie je kompatibilné s modulom Runtime B, vydáme upozorňujúce hlásenie a zdržíme sa implementácie nastavenia.

Zmena nastavenia Spark v režime runtime.

Dôsledky zmien modulu runtime v správe knižnice

Vo všeobecnosti platí, že naším prístupom je migrácia všetkých knižníc z modulu Runtime A do modulu Runtime B vrátane verejných aj vlastných modulov runtime. Ak verzie jazyka Python a R zostanú nezmenené, knižnice by mali fungovať správne. Pre jars však existuje značná pravdepodobnosť, že nemusia fungovať v dôsledku zmien v závislostiach a iných faktoroch, ako sú zmeny v Scala, Java, Spark a operačný systém.

Používateľ je zodpovedný za aktualizáciu alebo nahradenie všetkých knižníc, ktoré nefungujú s modulom Runtime B. V prípade konfliktu, čo znamená, že modul Runtime B obsahuje knižnicu pôvodne definovanú v module Runtime A, náš systém správy knižníc sa pokúsi vytvoriť potrebnú závislosť pre runtime B na základe nastavení používateľa. V prípade výskytu konfliktu však proces vytvárania zlyhá. V denníku chýb môžu používatelia zistiť, ktoré knižnice spôsobujú konflikty, a vykonávať úpravy svojich verzií alebo špecifikácií.

Zmena modulu runtime správy knižnice.

Inovácia protokolu Delta Lake

Funkcie Delta Lake sú vždy spätne kompatibilné, čo zabezpečuje, aby tabuľky vytvorené v nižšej verzii Delta Lake mohli bez problémov interagovať s vyššími verziami. Keď sú však povolené niektoré funkcie (napríklad pomocou delta.upgradeTableProtocol(minReaderVersion, minWriterVersion) metódy, môže byť ohrozená kompatibilita dopredu s nižšími verziami Delta Lake. V takýchto prípadoch je nevyhnutné upraviť vyťaženia odkazujúce na inovované tabuľky, aby sa zosúladili s verziou Delta Lake, ktorá si zachováva kompatibilitu.

Každá tabuľka Delta je priradená k špecifikácii protokolu a definuje funkcie, ktoré podporuje. Aplikácie, ktoré interagujú s tabuľkou ( na čítanie alebo písanie), sa spoliehajú na špecifikáciu tohto protokolu a zisťujú, či sú kompatibilné s množinou funkcií tabuľky. Ak aplikácii chýba možnosť spracovať funkciu uvedenú ako podporovanú v protokole tabuľky, nie je možné čítať z danej tabuľky ani do nej zapisovať.

Špecifikácia protokolu je rozdelená do dvoch odlišných komponentov: protokol čítania a protokol zápisu. Navštívte stránku "Ako delta lake spravuje kompatibilitu funkcií?", kde si o nej prečítajte podrobnosti.

GIF zobrazuje okamžité upozornenie pri použití metódy upgradeTableProtocol.

Používatelia môžu vykonať príkaz delta.upgradeTableProtocol(minReaderVersion, minWriterVersion) v prostredí PySpark a v službách Spark SQL a Scala. Tento príkaz im umožňuje iniciovať aktualizáciu tabuľky Delta.

Je dôležité poznamenať, že pri vykonávaní tejto inovácie sa používateľom zobrazí upozornenie oznamujúce, že inovácia verzie protokolu Delta je nevratný proces. To znamená, že po spustení aktualizácie sa táto aktualizácia nedá vrátiť späť.

Inovácie verzie protokolu môžu potenciálne ovplyvniť kompatibilitu existujúcich čitateľov tabuliek Delta Lake, spisovateľov alebo oboch. Preto sa odporúča postupovať opatrne a aktualizovať verziu protokolu len v prípade potreby, napríklad pri prijímaní nových funkcií v Delta Lake.

Snímka obrazovky zobrazujúca upozornenie pri inovácii protokolu delta lake.

Okrem toho by používatelia mali overiť, či sú všetky súčasné aj budúce produkčné vyťaženia a procesy kompatibilné s tabuľkami Delta Lake pomocou novej verzie protokolu, aby sa zaistil bezproblémový prechod a zabránilo prípadnému prerušeniu.

Delta 2.2 vs Delta 2.4 zmeny

V najnovšej aplikácii Fabric Runtime, verzii 1.3 a aplikácii Fabric Runtime, verzii 1.2, je predvolený formát tabuľky (spark.sql.sources.default) teraz delta. V predchádzajúcich verziách služby Fabric Runtime, verzie 1.1 a všetkých synapse runtime pre Apache Spark obsahujúcej Spark 3.3 alebo novšiu, bol predvolený formát tabuľky definovaný ako parquet. Pozrite si tabuľku s podrobnosťami o konfigurácii Apache Spark, kde nájdete rozdiely medzi službami Azure Synapse Analytics a Microsoft Fabric.

Všetky tabuľky vytvorené pomocou spark SQL, PySpark, Scala Spark a Spark R pri každom vynechaní typu tabuľky tabuľku delta predvolene vytvoria. Ak skripty explicitne nastavia formát tabuľky, bude to rešpektovať. Príkaz v príkazoch USING DELTA služby Spark na vytvorenie tabuľky sa stáva nadbytočným.

Skripty, ktoré očakávajú alebo predpokladajú formát tabuľky parquet, by mali byť revidované. Nasledujúce príkazy nie sú podporované v tabuľkách Delta:

  • 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