Moduly runtime Apache Sparku v prostředcích infrastruktury
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 modul Runtime Microsoft Fabric, který využívá Apache Spark jako modul runtime Fabric.
Hlavní komponenty modulu runtime 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. Integrované bez problémů nevyžaduje žádné změny kódu a zabraňuje uzamčení dodavatele, podporuje formáty Parquet i Delta napříč rozhraními Apache Spark API v modulu 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ů. Je postaven na Meta Velox a Intel Apache Gluten, optimalizuje využití prostředků při zpracování různých scénářů zpracování dat.
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.
Tip
Vždy používejte nejnovější verzi modulu runtime GA pro produkční úlohu, která je aktuálně Runtime 1.3.
Modul runtime 1.1 | Modul runtime 1.2 | Modul 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 |
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 |
Navštivte modul Runtime 1.1, Runtime 1.2 nebo Runtime 1.3 a prozkoumejte podrobnosti, nové funkce, vylepšení a scénáře migrace pro konkrétní verzi modulu runtime.
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. Moduly runtime prostředků infrastruktury pro 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í mezipaměti oddílů FileSystem ke snížení počtu volání metastoru) a křížové spojení k projekci 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 Delta Lake je zásadní pro zajištění špičkového výkonu čtení napříč všemi moduly 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.
Prostředky infrastruktury podporují více modulů runtime a nabízejí uživatelům flexibilitu při bezproblémovém přepínání mezi nimi, což minimalizuje riziko nekompatibility nebo přerušení.
Ve výchozím nastavení všechny nové pracovní prostory používají nejnovější verzi modulu runtime, 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.
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 poznámkový blok s existující relací pro úlohu nebo aktivitu související s lakehousem, bude relace Sparku pokračovat tak, jak je. Ale počínaje další relací nebo úlohou se použije vybraná verze modulu runtime.
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.
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. Pokud dojde ke konfliktu, proces sestavení se nezdaří. V protokolu chyb můžou uživatelé zjistit, které knihovny způsobují konflikty, a provádět úpravy jejich verzí nebo specifikací.
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 číst z této tabulky ani zapisovat do ní.
Specifikace protokolu je rozdělena do dvou různých komponent: read protocol a write protocol. Navštivte stránku "Jak Delta Lake spravuje kompatibilitu funkcí?", si o ní přečtěte podrobnosti.
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.
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.
V nejnovější verzi Modulu runtime Fabric verze 1.3 a Fabric Runtime verze 1.2 je nyní spark.sql.sources.default
výchozí formát tabulky (delta
). V předchozích verzích modulu Fabric Runtime, verze 1.1 a ve všech modulech Synapse Runtime pro Apache Spark obsahující Spark 3.3 nebo novějších, byl výchozí formát tabulky definován jako parquet
. Projděte si tabulku s podrobnostmi konfigurace Apache Sparku, kde najdete rozdíly mezi Azure Synapse Analytics a Microsoft Fabric.
Všechny tabulky vytvořené pomocí Spark SQL, PySpark, Scala Spark a Spark R při každém vynechání typu tabulky vytvoří tabulku jako delta
ve výchozím nastavení. Pokud skripty explicitně nastaví formát tabulky, bude se respektovat.
USING DELTA
Příkaz ve Sparku create table commands se stane redundantní.
Skripty, které očekávají nebo předpokládají formát tabulky Parquet, by se měly revidovat. V tabulkách Delta nejsou podporované následující příkazy:
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