Sdílet prostřednictvím


Modul 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.

Microsoft Fabric Runtime 1.2 je nejnovější verze modulu runtime GA. 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

Snímek obrazovky znázorňující, kde vybrat verzi modulu runtime

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í, a number jedná se o hodnotu typu typu double představující dobu uchování. Výchozí doba uchovávání je nastavená na sedm dnů.
  • 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í:

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.