Fabric Runtime 1.2 (GA)
Microsoft Fabric Runtime je platforma integrovaná v Azure založená na Apache Sparku, která umožňuje spouštění a správu prostředí přípravy dat a datových věd. Tento dokument se zabývá komponentami a verzemi modulu runtime 1.2.
Mezi hlavní komponenty modulu Runtime 1.2 patří:
- Apache Spark 3.4.1
- Operační systém: Mariner 2.0
- Java: 11
- Scala: 2.12.17
- Python: 3.10
- Delta Lake: 2.4.0
- R: 4.2.2
Tip
Vždy používejte nejnovější verzi modulu runtime GA pro produkční úlohu, která je aktuálně Runtime 1.3.
Microsoft Fabric Runtime 1.2 obsahuje kolekci výchozích balíčků na úrovni, včetně úplné instalace Anaconda a běžně používaných knihoven pro Javu/Scala, Python a R. Tyto knihovny se automaticky zahrnou při používání poznámkových bloků nebo úloh na platformě Microsoft Fabric. Úplný seznam knihoven najdete v dokumentaci. Microsoft Fabric pravidelně nasadí aktualizace údržby pro modul Runtime 1.2 a poskytuje opravy chyb, vylepšení výkonu a opravy zabezpečení. Udržování aktuálnosti zajišťuje optimální výkon a spolehlivost úloh zpracování dat.
Nové funkce a vylepšení Verze Sparku 3.4.1
Apache Spark 3.4.0 je pátou verzí na řádku 3.x. Tato verze, řízená opensourcovou komunitou, vyřešila více než 2 600 lístků Jira. Představuje klienta Pythonu pro Spark Connect, vylepšuje strukturované streamování pomocí asynchronního sledování průběhu a stavového zpracování Pythonu. Rozšiřuje pokrytí rozhraní API Pandas s podporou vstupu NumPy, zjednodušuje migraci z tradičních datových skladů prostřednictvím dodržování předpisů ANSI a nových integrovaných funkcí. Zlepšuje také produktivitu vývoje a možnosti ladění pomocí profilace paměti. Modul runtime 1.2 je navíc založený na Apache Sparku 3.4.1, což je verze údržby zaměřená na opravy stability.
Hlavní přednosti
Přečtěte si úplnou verzi poznámky k verzi pro konkrétní verzi Apache Sparku, a to tak , že navštívíte Spark 3.4.0 i Spark 3.4.1.
Nové vlastní optimalizace dotazů
Podpora souběžných zápisů ve Sparku
Při provádění paralelních vložení dat do stejné tabulky pomocí dotazu SQL INSERT INTO dochází k chybě 404 se zprávou Operace selhala: Zadaná cesta neexistuje. Tato chyba může vést ke ztrátě dat. Naše nová funkce, algoritmus potvrzení výstupu souboru, tento problém řeší, což zákazníkům umožňuje bezproblémově provádět paralelní vkládání dat.
Pokud chcete získat přístup k této funkci, povolte spark.sql.enable.concurrentWrites
příznak funkce, který je ve výchozím nastavení povolený od modulu Runtime 1.2 (Spark 3.4). I když je tato funkce dostupná i v jiných verzích Sparku 3, není ve výchozím nastavení povolená. Tato funkce nepodporuje paralelní provádění dotazů INSERT OVERWRITE, kde každá souběžná úloha přepisuje data v různých oddílech stejné tabulky dynamicky. Pro tento účel Nabízí Spark alternativní funkci, kterou je možné aktivovat konfigurací spark.sql.sources.partitionOverwriteMode
nastavení na dynamickou.
Inteligentní čtení, která přeskočí soubory z neúspěšných úloh
Pokud v aktuálním systému potvrzení Sparku selže vložení do úlohy tabulky, ale některé úkoly jsou úspěšné, soubory vygenerované úspěšnými úkoly společně se soubory z neúspěšné úlohy. Tato koexistence může uživatelům způsobit nejasnost, protože je obtížné rozlišovat mezi soubory patřícími k úspěšným a neúspěšných úlohách. Navíc, když jedna úloha čte z tabulky, zatímco jiná vkládá data souběžně do stejné tabulky, může úloha čtení přistupovat k nepotvrzeným datům. Pokud úloha zápisu selže, může úloha čtení zpracovat nesprávná data.
Příznak spark.sql.auto.cleanup.enabled
řídí naši novou funkci a řeší tento problém. Pokud je tato možnost povolená, Spark automaticky přeskočí čtení souborů, které nebyly potvrzeny při provádění spark.read
nebo výběru dotazů z tabulky. Soubory zapsané před povolením této funkce se budou dál číst jako obvykle.
Tady jsou viditelné změny:
- Všechny soubory teď v názvu souboru obsahují
tid-{jobID}
identifikátor. -
_success
Místo značky obvykle vytvořené ve výstupním umístění po úspěšném dokončení úlohy se vygeneruje nová_committed_{jobID}
značka. Tato značka přidruží úspěšná ID úloh k určitým názvům souborů. - Zavedli jsme nový příkaz SQL, který uživatelé můžou pravidelně spouštět za účelem správy úložiště a čištění nepotvrzených souborů. Syntaxe tohoto příkazu je následující:
- Vyčištění konkrétního adresáře:
CLEANUP ('/path/to/dir') [RETAIN number HOURS];
- Vyčištění konkrétní tabulky:
CLEANUP [db_name.]table_name [RETAIN number HOURS];
V této syntaxi představuje identifikátor URI umístění,path/to/dir
ve kterém je vyžadováno vyčištění, anumber
jedná se o hodnotu typu typu double představující dobu uchování. Výchozí doba uchovávání je nastavená na sedm dnů.
- Vyčištění konkrétního adresáře:
- Zavedli jsme novou možnost konfigurace s názvem
spark.sql.deleteUncommittedFilesWhileListing
, která je ve výchozím nastavení nastavenáfalse
. Povolením této možnosti dojde k automatickému odstranění nepotvrzených souborů během čtení, ale tento scénář může zpomalit operace čtení. Pokud je cluster nečinný, doporučujeme ručně spustit příkaz pro vyčištění místo povolení tohoto příznaku.
Průvodce migrací z modulu runtime 1.1 do modulu runtime 1.2
Při migraci z modulu runtime 1.1 s využitím Apache Sparku 3.3 na modul runtime 1.2 s využitím Apache Sparku 3.4 si projděte oficiálního průvodce migrací.
Nové funkce a vylepšení Delta Lake 2.4
Delta Lake je opensourcový projekt , který umožňuje vytvořit architekturu jezera nad datovými jezery. Delta Lake poskytuje transakce ACID, škálovatelné zpracování metadat a sjednocuje zpracování streamovaných a dávkových dat nad stávajícími datovými jezery.
Konkrétně Delta Lake nabízí:
- Transakce ACID ve Sparku: Serializovatelné úrovně izolace zajišťují, aby čtenáři nikdy neviděli nekonzistentní data.
- Škálovatelné zpracování metadat: Využívá výkon distribuovaného zpracování Sparku ke zpracování všech metadat pro petabajtové tabulky s miliardami souborů.
- Sjednocení streamování a dávek : Tabulka v Delta Lake je dávková tabulka a zdroj streamování a jímka. Streamování ingestování dat, dávkové historické backfillování, interaktivní dotazy fungují jenom mimo kancelář.
- Vynucení schématu: Automaticky zpracovává varianty schématu, aby se zabránilo vkládání chybných záznamů během příjmu dat.
- Doba trvání: Správa verzí dat umožňuje vrácení zpět, úplné historické záznamy auditu a reprodukovatelné experimenty strojového učení.
- Upserty a odstranění: Podporuje operace sloučení, aktualizace a odstranění, které umožňují složité případy použití, jako jsou změny dat- zachytávání, pomalu se měnící operace dimenze (SCD), upserty streamování atd.
Přečtěte si úplnou verzi poznámky k verzi pro Delta Lake 2.4.
Výchozí balíčky na úrovni pro Javu, Scala, knihovny Pythonu
Seznam všech balíčků výchozí úrovně pro Javu, Scala, Python a jejich odpovídající verze najdete v poznámkách k verzi.