Inteligentní mezipaměť v Microsoft Fabric
Funkce inteligentní mezipaměti funguje bezproblémově na pozadí a ukládá data do mezipaměti, což pomáhá zrychlit spouštění úloh Apache Sparku v Microsoft Fabric při čtení z úložiště OneLake nebo Azure Data Lake Storage (ADLS) Gen2 prostřednictvím zástupců. Také automaticky detekuje změny v podkladových souborech a automaticky aktualizuje soubory v mezipaměti a poskytuje nejnovější data. Když velikost mezipaměti dosáhne svého limitu, mezipaměť automaticky uvolní data s nejmenším čtením, aby místo pro novější data. Tato funkce snižuje celkové náklady na vlastnictví zvýšením výkonu až o 60 % při následných čteních souborů uložených v dostupné mezipaměti.
Když modul Apache Spark v Microsoft Fabric dotazuje soubor nebo tabulku z lakehouse, zavolá vzdálené úložiště ke čtení podkladových souborů. Při každém požadavku na dotazy ke čtení stejných dat musí modul Spark pokaždé volat vzdálené úložiště. Tento redundantní proces přidává latenci k celkové době zpracování. Spark má požadavek na ukládání do mezipaměti, který musíte ručně nastavit a uvolnit mezipaměť, abyste minimalizovali latenci a zlepšili celkový výkon. Tento požadavek ale může vést k zastaralým datům, pokud se podkladová data změní.
Inteligentní mezipaměť zjednodušuje proces tím, že každé čtení automaticky ukládá do mezipaměti v přiděleném prostoru úložiště mezipaměti na každém uzlu Sparku, kde se datové soubory ukládají do mezipaměti v SSD. Každý požadavek na soubor zkontroluje, jestli soubor existuje v mezipaměti místního uzlu, a porovná značku ze vzdáleného úložiště a určí, jestli je soubor zastaralý. Pokud soubor neexistuje nebo pokud je soubor zastaralý, Spark soubor přečte a uloží ho do mezipaměti. Když se mezipaměť zaplní, soubor s nejstarším časem posledního přístupu se z mezipaměti vyřadí, aby se povolily novější soubory.
Inteligentní mezipaměť je jedna mezipaměť na uzel. Pokud používáte střední uzel a spouštíte ho se dvěma malými exekutory na jednom uzlu, oba exekutory sdílejí stejnou mezipaměť. Ukládání do mezipaměti na úrovni datového souboru také umožňuje, aby více dotazů používalo stejnou mezipaměť, pokud přistupují ke stejným datům nebo datovým souborům.
Jak to funguje
V Microsoft Fabric (runtime 1.1 a 1.2) je inteligentní ukládání do mezipaměti ve výchozím nastavení povolené pro všechny fondy Spark pro všechny pracovní prostory s velikostí mezipaměti s 50 %. Skutečná velikost dostupného úložiště a velikosti mezipaměti na každém uzlu závisí na rodině uzlů a velikosti uzlu.
Kdy použít inteligentní mezipaměť
Tato funkce vám přináší následující výhody:
Vaše úloha vyžaduje vícekrát čtení stejného souboru a velikost souboru se vejde do mezipaměti.
Vaše úloha používá tabulky Delta Lake, Parquet nebo formáty souborů CSV.
Výhody inteligentní mezipaměti nevidíte, pokud:
Čtete soubor, který překračuje velikost mezipaměti. Pokud ano, začátek souborů může být vyřazen a následné dotazy musí načíst data ze vzdáleného úložiště. V takovém případě nevidíte žádné výhody z inteligentní mezipaměti a možná budete chtít zvětšit velikost mezipaměti nebo velikost uzlu.
Vaše úloha vyžaduje velké množství náhodného náhodného prohazování. Zakázání inteligentní mezipaměti uvolní dostupné místo, aby se zabránilo selhání úlohy kvůli nedostatku místa v úložišti.
Povolení a zakázání inteligentní mezipaměti
Inteligentní mezipaměť v rámci relace můžete zakázat nebo povolit spuštěním následujícího kódu v poznámkovém bloku nebo nastavením této konfigurace na úrovni pracovního prostoru nebo položky prostředí .
spark.conf.set("spark.synapse.vegas.useCache", "false/true")