Udostępnij za pośrednictwem


Buforowanie w magazynie danych sieci szkieletowej

Dotyczy: punkt końcowy analizy SQL i magazyn w usłudze Microsoft Fabric

Pobieranie danych z usługi Data Lake ma kluczowe znaczenie dla operacji wejścia/wyjścia (we/wy) ze znacznymi wpływami na wydajność zapytań. W usłudze Microsoft Fabric usługa Synapse Data Warehouse wykorzystuje uściślizowane wzorce dostępu, aby zwiększyć odczyty danych z magazynu i podnieść szybkość wykonywania zapytań. Ponadto inteligentnie minimalizuje potrzebę zdalnego odczytu magazynu dzięki wykorzystaniu lokalnych pamięci podręcznych.

Buforowanie to technika, która poprawia wydajność aplikacji przetwarzania danych przez zmniejszenie operacji we/wy. Buforowanie przechowuje często używane dane i metadane w szybszej warstwie magazynu, takiej jak pamięć lokalna lub lokalny dysk SSD, dzięki czemu kolejne żądania mogą być obsługiwane szybciej, bezpośrednio z pamięci podręcznej. Jeśli określony zestaw danych był wcześniej uzyskiwany przez zapytanie, wszystkie kolejne zapytania będą pobierać te dane bezpośrednio z pamięci podręcznej w pamięci. Takie podejście znacznie zmniejsza opóźnienie operacji we/wy, ponieważ operacje pamięci lokalnej są znacznie szybsze w porównaniu z pobieraniem danych z magazynu zdalnego.

Buforowanie jest w pełni niewidoczne dla użytkownika. Niezależnie od źródła, niezależnie od tego, czy jest to tabela magazynu, skrót OneLake, czy nawet skrót OneLake odwołujący się do usług innych niż azure, zapytanie buforuje wszystkie dane, do których uzyskuje dostęp.

Istnieją dwa typy pamięci podręcznych opisanych w dalszej części tego artykułu:

  • Pamięć podręczna w pamięci
  • Pamięć podręczna dysku

Pamięć podręczna w pamięci

Gdy zapytanie uzyskuje dostęp do magazynu i pobiera dane z niego, wykonuje proces przekształcania, który transkoduje dane z oryginalnego formatu opartego na plikach w wysoce zoptymalizowanych strukturach w pamięci podręcznej.

Diagram przedstawiający sposób wypełniania pamięci podręcznej w pamięci.

Dane w pamięci podręcznej są zorganizowane w skompresowanym formacie kolumnowym zoptymalizowanym pod kątem zapytań analitycznych. Każda kolumna danych jest przechowywana razem, oddzielona od pozostałych, umożliwiając lepszą kompresję, ponieważ podobne wartości danych są przechowywane razem, co prowadzi do zmniejszenia zużycia pamięci. Gdy zapytania muszą wykonywać operacje na określonej kolumnie, takiej jak agregacje lub filtrowanie, aparat może działać wydajniej, ponieważ nie musi przetwarzać niepotrzebnych danych z innych kolumn.

Ponadto ten magazyn kolumnowy sprzyja przetwarzaniu równoległego, co może znacznie przyspieszyć wykonywanie zapytań dla dużych zestawów danych. Aparat może wykonywać operacje na wielu kolumnach jednocześnie, korzystając z nowoczesnych procesorów wielordzeniowych.

Takie podejście jest szczególnie korzystne w przypadku obciążeń analitycznych, w których zapytania obejmują skanowanie dużych ilości danych w celu przeprowadzania agregacji, filtrowania i innych manipulacji danymi.

Pamięć podręczna dysku

Niektóre zestawy danych są zbyt duże, aby pomieścić je w pamięci podręcznej. Aby utrzymać wydajność szybkich zapytań dla tych zestawów danych, magazyn wykorzystuje miejsce na dysku jako rozszerzenie uzupełniające do pamięci podręcznej w pamięci. Wszystkie informacje ładowane do pamięci podręcznej w pamięci są również serializowane do pamięci podręcznej SSD.

Diagram przedstawiający sposób wypełniania pamięci w pamięci i pamięci podręcznej SSD.

Biorąc pod uwagę, że pamięć podręczna w pamięci ma mniejszą pojemność w porównaniu z pamięcią podręczną SSD, dane usunięte z pamięci podręcznej w pamięci pozostają w pamięci podręcznej SSD przez dłuższy czas. Gdy kolejne zapytanie żąda tych danych, jest pobierane z pamięci podręcznej SSD do pamięci podręcznej w pamięci znacznie szybciej niż w przypadku pobrania z magazynu zdalnego, co ostatecznie zapewnia bardziej spójną wydajność zapytań.

Diagram przedstawiający sposób wypełniania pamięci podręcznej w pamięci z pamięci podręcznej SSD.

Zarządzanie pamięcią podręczną

Buforowanie pozostaje stale aktywne i działa bezproblemowo w tle, nie wymagając interwencji ze swojej strony. Wyłączenie buforowania nie jest potrzebne, ponieważ nieuchronnie doprowadziłoby to do zauważalnego pogorszenia wydajności zapytań.

Mechanizm buforowania jest zorganizowany i utrzymywany przez samą usługę Microsoft Fabric i nie oferuje użytkownikom możliwości ręcznego czyszczenia pamięci podręcznej.

Pełna spójność transakcyjna pamięci podręcznej gwarantuje, że wszelkie modyfikacje danych w magazynie, takie jak za pomocą operacji języka DML (Data Manipulation Language), po początkowym załadowaniu ich do pamięci podręcznej, spowodują spójne dane.

Gdy pamięć podręczna osiągnie próg pojemności, a świeże dane są odczytywane po raz pierwszy, obiekty, które pozostały nieużywane przez najdłuższy czas trwania, zostaną usunięte z pamięci podręcznej. Ten proces jest wprowadzany w celu utworzenia przestrzeni dla napływu nowych danych i utrzymania optymalnej strategii wykorzystania pamięci podręcznej.