Udostępnij za pośrednictwem


Inteligentna pamięć podręczna w usłudze Microsoft Fabric

Funkcja inteligentnej pamięci podręcznej działa płynnie w tle i przechowuje dane w pamięci podręcznej, aby przyspieszyć wykonywanie zadań Apache Spark w Microsoft Fabric, podczas gdy dane są odczytywane z magazynu OneLake lub Azure Data Lake Storage (ADLS) Gen2 przy użyciu skrótów. Automatycznie wykrywa również zmiany w plikach bazowych i automatycznie odświeża pliki w pamięci podręcznej, zapewniając najnowsze dane. Gdy rozmiar pamięci podręcznej osiągnie limit, pamięć podręczna automatycznie zwalnia najmniejszą ilość danych odczytu, aby zwolnić miejsce na najnowsze dane. Ta funkcja obniża całkowity koszt posiadania, zwiększając wydajność do 60% kolejnych odczytów plików przechowywanych w dostępnej pamięci podręcznej.

Gdy aparat Apache Spark w usłudze Microsoft Fabric wysyła zapytanie do pliku lub tabeli z usługi Lakehouse, wykonuje wywołanie magazynu zdalnego w celu odczytania źródłowych plików. Przy każdym żądaniu odczytu tych samych danych silnik Spark musi wykonać wywołanie do zdalnego magazynu. Ten nadmiarowy proces dodaje opóźnienie do łącznego czasu przetwarzania. Platforma Spark ma wymóg buforowania, który należy ręcznie ustawić i zwolnić cache, aby zminimalizować opóźnienia i poprawić ogólną wydajność. Jednak to wymaganie może spowodować nieaktualne dane, jeśli bazowe dane się zmienią.

Inteligentna pamięć podręczna upraszcza proces przez automatyczne buforowanie każdego odczytu w przydzielonej pamięci podręcznej miejsca do magazynowania w każdym węźle Spark, w którym pliki danych są buforowane na dysku SSD. Każde żądanie dotyczące pliku sprawdza, czy plik istnieje w lokalnej pamięci podręcznej węzła i porównuje tag z magazynu zdalnego, aby ustalić, czy plik jest nieaktualny. Jeśli plik nie istnieje lub jeśli plik jest nieaktualny, platforma Spark odczytuje plik i zapisze go w pamięci podręcznej. Gdy pamięć podręczna stanie się pełna, plik z najstarszym ostatnim czasem dostępu zostanie wykluczony z pamięci podręcznej, aby umożliwić korzystanie z nowszych plików.

Inteligentna pamięć podręczna to jednolita pamięć podręczna dla każdego węzła. Jeśli używasz średniego węzła i uruchamiasz na nim dwóch małych wykonawców, to ci dwaj wykonawcy współdzielą tę samą pamięć podręczną. Ponadto buforowanie na poziomie pliku danych umożliwia korzystanie z tej samej pamięci podręcznej przez wiele zapytań, jeśli uzyskują dostęp do tych samych danych lub plików danych.

Jak to działa

W usłudze Microsoft Fabric (środowisko uruchomieniowe 1.1 i 1.2) inteligentne buforowanie jest domyślnie włączone dla wszystkich pul Spark we wszystkich obszarach roboczych, przy rozmiarze pamięci podręcznej wynoszącym 50%. Rzeczywisty rozmiar dostępnego magazynu i rozmiar pamięci podręcznej dla każdego węzła zależy od rodziny węzłów i rozmiaru węzła.

Kiedy należy używać inteligentnej pamięci podręcznej

Ta funkcja zapewnia następujące korzyści:

  • Obciążenie wymaga wielokrotnego odczytywania tego samego pliku, a rozmiar pliku mieści się w pamięci podręcznej.

  • Obciążenie używa tabel Delta Lake, formatów plików Parquet lub CSV.

Nie widzisz korzyści z inteligentnej pamięci podręcznej, jeśli:

  • Odczytujesz plik, który przekracza rozmiar pamięci podręcznej. Jeśli tak, początkowa część plików może zostać usunięta, a kolejne zapytania muszą ponownie pobrać dane z zdalnego magazynu danych. W takim przypadku nie widzisz żadnych korzyści z inteligentnej pamięci podręcznej i możesz zwiększyć rozmiar pamięci podręcznej i/lub rozmiar węzła.

  • Obciążenie robocze wymaga dużych ilości przetasowań. Wyłączenie inteligentnej pamięci podręcznej zwalnia dostępne miejsce, aby zapobiec niepowodzeniu zadania z powodu niewystarczającej przestrzeni dyskowej.

Włączanie i wyłączanie inteligentnej pamięci podręcznej

Możesz wyłączyć lub włączyć inteligentną pamięć podręczną w ramach sesji, uruchamiając następujący kod w notesie lub ustawiając tę konfigurację na poziomie obszaru roboczego lub elementu środowiska .

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