Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Den intelligente cache-funktion fungerer problemfrit bag kulisserne og cacher data for at hjælpe med at fremskynde udførelsen af Apache Spark-jobs i Microsoft Fabric, mens den læser fra din OneLake eller Azure Data Lake Storage (ADLS) Gen2-lagring via genveje. Den opdager også automatisk ændringer i de underliggende filer og opdaterer automatisk filerne i cachen, hvilket giver dig de nyeste data. Når cachestørrelsen når sin grænse, frigiver cachen automatisk de mindst læste data for at skabe plads til nyere data. Denne funktion sænker de samlede ejeromkostninger ved at forbedre ydeevnen op til 60% ved efterfølgende læsninger af filerne, der er gemt i den tilgængelige cache.
Når Apache Spark-motoren i Microsoft Fabric forespørger en fil eller tabel fra dit lakehouse, laver den et kald til fjernlagringen for at læse de underliggende filer. Ved hver forespørgselsanmodning om at læse de samme data skal Spark-motoren foretage et kald til fjernlagring hver gang. Denne redundante proces tilføjer latenstid til din samlede behandlingstid. Spark har et caching-krav, hvor du manuelt skal sætte og frigive cachen for at minimere latenstiden og forbedre den samlede ydeevne. Dette krav kan dog resultere i forældede data, hvis de underliggende data ændres.
Intelligent cache forenkler processen ved automatisk at cache hver læsning inden for det allokerede cache-lagringsområde på hver Spark-node, hvor datafiler caches i SSD. Hver anmodning om en fil tjekker, om filen findes i den lokale nodecache, og sammenligner tagget fra den eksterne lagring for at afgøre, om filen er forældet. Hvis filen ikke eksisterer, eller hvis filen er forældet, læser Spark filen og gemmer den i cachen. Når cachen bliver fuld, fjernes filen med den ældste sidste adgangstid fra cachen for at give plads til nyere filer.
Intelligent cache er en enkelt cache pr. node. Hvis du bruger en mellemstor node og kører med to små eksekutører på den ene node, deler de to eksekutører den samme cache. Desuden gør denne caching på datafilniveau det muligt for flere forespørgsler at bruge den samme cache, hvis de tilgår de samme data eller datafiler.
Sådan fungerer det
I Microsoft Fabric (Runtime 1.1 og 1.2) er intelligent caching som standard aktiveret for alle Spark-pools for alle arbejdsområder med cache-størrelse på 50%. Den faktiske størrelse af den tilgængelige lagring og cachestørrelsen på hver node afhænger af nodefamilien og nodestørrelsen.
Hvornår skal man bruge intelligent cache
Denne funktion gavner dig, hvis:
Din arbejdsbyrde kræver, at du læser den samme fil flere gange, og filstørrelsen passer ind i cachen.
Din arbejdsbyrde bruger Delta Lake-tabeller, Parquet eller CSV-filformater.
Du ser ikke fordelen ved intelligent cache, hvis:
Du læser en fil, der overstiger cache-størrelsen. Hvis det er tilfældet, kan begyndelsen af filerne blive fjernet, og efterfølgende forespørgsler skal referere dataene fra den fjernbelagte lagring. I dette tilfælde ser du ingen fordele ved den intelligente cache, og du bør måske øge din cache-størrelse og/eller nodestørrelse.
Din arbejdsbyrde kræver store mængder omrokering. Ved at deaktivere den intelligente cache frigøres tilgængelig plads for at forhindre, at dit job fejler på grund af utilstrækkelig lagerplads.
Aktivér og deaktiver den intelligente cache
Du kan deaktivere eller aktivere den intelligente cache i en session ved at køre følgende kode i din notesbog eller sætte denne konfiguration på arbejdsområde- eller miljøpunktniveau .
spark.conf.set("spark.synapse.vegas.useCache", "false/true")