Zdieľať cez


Inteligentná vyrovnávacia pamäť v službe Microsoft Fabric

Inteligentná funkcia vyrovnávacej pamäte funguje bez problémov na pozadí a ukladá údaje do vyrovnávacej pamäte, aby pomohla urýchliť vykonávanie úloh Apache Spark v službe Microsoft Fabric počas ich čítania z vášho úložiska OneLake alebo Azure Data Lake Storage (ADLS) Gen2 prostredníctvom odkazov. Automaticky tiež zisťuje zmeny v základných súboroch a automaticky obnovuje súbory vo vyrovnávacej pamäti, čím poskytuje najnovšie údaje. Keď veľkosť vyrovnávacej pamäte dosiahne svoj limit, vyrovnávacia pamäť automaticky uvoľní najmenej prečítané údaje, aby sa uvoľnilo miesto pre novšie údaje. Táto funkcia znižuje celkové náklady na vlastníctvo zvýšením výkonu až o 60 % pri následných prečítaní súborov, ktoré sú uložené v dostupnej vyrovnávacej pamäti.

Keď nástroj Apache Spark v službe Microsoft Fabric dotazuje súbor alebo tabuľku z vášho jazera, zavolá do vzdialeného úložiska a prečíta základné súbory. S každou požiadavkou na čítanie rovnakých údajov musí nástroj Spark zakaždým zavolať do vzdialeného úložiska. Tento nadbytočný proces pridáva latenciu k vášmu celkovému času spracovania. Spark má požiadavku na ukladanie do vyrovnávacej pamäte, ktorú je potrebné nastaviť manuálne a uvoľniť vo vyrovnávacej pamäti, aby sa minimalizovalo časové oneskorenie a zlepšil celkový výkon. Táto požiadavka však môže mať za následok zastarané údaje, ak sa základné údaje zmenia.

Inteligentná vyrovnávacia pamäť zjednodušuje proces automatickým ukladaním jednotlivých prečítaní do vyrovnávacej pamäte v rámci vyhradeného ukladacieho priestoru vyrovnávacej pamäte v každom uzle služby Spark, v ktorom sú údajové súbory uložené vo vyrovnávacej pamäti v SSD. Každá žiadosť o súbor skontroluje, či súbor existuje vo vyrovnávacej pamäti lokálneho uzla a porovnajte značku zo vzdialeného úložiska a zistite, či je súbor zastaraný. Ak súbor neexistuje alebo ak je súbor zastaraný, Spark súbor prečíta a uloží ho do vyrovnávacej pamäte. Keď je vyrovnávacia pamäť naplno, súbor s najstarším časom posledného prístupu sa vyradí z vyrovnávacej pamäte, aby sa umožnili ďalšie nedávne súbory.

Inteligentná vyrovnávacia pamäť je jedna vyrovnávacia pamäť na jeden uzol. Ak používate stredný uzol a spustíte s dvoma malými vykonávateľmi v tomto jednom uzli, obaja vykonávatelia zdieľajú rovnakú vyrovnávaciu pamäť. Okrem toho ukladanie do vyrovnávacej pamäte na úrovni údajov umožňuje, aby viaceré dotazy používali rovnakú vyrovnávaciu pamäť, ak pristupujú k rovnakým údajom alebo údajovým súborom.

Ako to funguje

V službe Microsoft Fabric (Runtime 1.1 a 1.2) je inteligentné ukladanie do vyrovnávacej pamäte predvolene povolené pre všetky fondy Spark pre všetky pracovné priestory s veľkosťou vyrovnávacej pamäte 50 %. Skutočná veľkosť dostupného úložiska a veľkosti vyrovnávacej pamäte v každom uzli závisí od skupiny uzla a veľkosti uzla.

Kedy použiť inteligentnú vyrovnávaciu pamäť

Táto funkcia je pre vás výhodná, ak:

  • Vaše vyťaženie vyžaduje viackrát čítanie toho istého súboru a veľkosť súboru sa zmestí do vyrovnávacej pamäte.

  • Vaše vyťaženie používa tabuľky, formáty súborov Delta Lake, Parquet alebo CSV.

Výhody inteligentnej vyrovnávacej pamäte sa nezobrazujú, ak:

  • Čítate súbor, ktorý presahuje veľkosť vyrovnávacej pamäte. Ak áno, začiatok súborov by sa mohol vyradiť a nasledujúce dotazy budú musieť refetovať údaje zo vzdialeného úložiska. V tomto prípade sa nezobrazujú žiadne výhody inteligentnej vyrovnávacej pamäte a možno budete chcieť zväčšiť veľkosť vyrovnávacej pamäte alebo veľkosť uzla.

  • Vaše vyťaženie vyžaduje veľké množstvo shuffle. Vypnutím inteligentnej vyrovnávacej pamäte sa uvoľní dostupný priestor, aby ste zabránili zlyhaniu vašej práce z dôvodu nedostatočného ukladacieho priestoru.

Zapnutie a vypnutie inteligentnej vyrovnávacej pamäte

Inteligentnú vyrovnávaciu pamäť môžete v rámci relácie zakázať alebo povoliť spustením nasledujúceho kódu v poznámkovom bloku alebo nastavením tejto konfigurácie na úrovni položky pracovného priestoru alebo prostredia .

spark.conf.set("spark.synapse.vegas.useCache", "false/true")