Udostępnij przez


Środowiska uruchomieniowe platformy Apache Spark w sieci szkieletowej

Microsoft Fabric Runtime to zintegrowana z platformą Azure platforma oparta na platformie Apache Spark, która umożliwia wykonywanie i zarządzanie środowiskami inżynierii danych i nauki o danych. Łączy kluczowe składniki zarówno ze źródeł wewnętrznych, jak i open source, zapewniając klientom kompleksowe rozwiązanie. Dla uproszczenia odwołujemy się do środowiska uruchomieniowego usługi Microsoft Fabric obsługiwanego przez platformę Apache Spark jako środowiska uruchomieniowego usługi Fabric.

Główne składniki środowiska uruchomieniowego Fabric:

  • Apache Spark — zaawansowana rozproszona biblioteka obliczeniowa typu open source, która umożliwia przetwarzanie i analizowanie danych na dużą skalę. Platforma Apache Spark udostępnia wszechstronną i wysokowydajną platformę do inżynierii danych i środowiska nauki o danych.

  • Delta Lake — warstwa magazynu typu open source, która zapewnia transakcje ACID i inne funkcje niezawodności danych na platformie Apache Spark. Zintegrowane w środowisku uruchomieniowym Fabric Runtime, Delta Lake zwiększa możliwości przetwarzania danych i zapewnia spójność danych w wielu współbieżnych operacjach.

  • Natywny mechanizm wykonywania — to transformacyjne udoskonalenie dla obciążeń Apache Spark, oferujące znaczne wzrosty wydajności dzięki bezpośredniemu wykonywaniu zapytań Spark w infrastrukturze typu lakehouse. Bezproblemowo zintegrowane, nie wymaga żadnych zmian w kodzie i unika blokady dostawcy, obsługując zarówno formaty Parquet, jak i Delta w interfejsach API Apache Spark w środowisku uruchomieniowym 1.3 (Spark 3.5). Ten silnik zwiększa szybkość zapytań do czterech razy w porównaniu z tradycyjnym OSS Spark, jak pokazano w benchmarku TPC-DS 1TB, zmniejszając koszty operacyjne i zwiększając wydajność w różnych zadaniach związanych z danymi — w tym pobieranie danych, ETL, analitykę i interaktywne zapytania. Opierając się na Velox firmy Meta i Apache Gluten firmy Intel, optymalizuje użycie zasobów podczas obsługi różnych scenariuszy przetwarzania danych.

  • Pakiety na poziomie domyślnym dla języków Java/Scala, Python i R — pakiety obsługujące różne języki programowania i środowiska. Te pakiety są instalowane i konfigurowane automatycznie, co umożliwia deweloperom stosowanie preferowanych języków programowania na potrzeby zadań przetwarzania danych.

  • Środowisko uruchomieniowe usługi Microsoft Fabric jest oparte na niezawodnym systemie operacyjnym typu open source, zapewniając zgodność z różnymi konfiguracjami sprzętowymi i wymaganiami systemowymi.

Poniżej znajdziesz kompleksowe porównanie kluczowych składników, w tym wersji platformy Apache Spark, obsługiwanych systemów operacyjnych, Java, Scala, Python, Delta Lake i R dla środowisk uruchomieniowych opartych na platformie Microsoft Fabric.

Wskazówka

Zawsze używaj najnowszej, ogólnie dostępnej wersji środowiska uruchomieniowego (GA) dla obciążenia produkcyjnego, która jest obecnie środowiskiem uruchomieniowym 1.3.

Składnik Runtime 1.2 Runtime 1.3 Runtime 2.0
Etap wydania EOSA ogólna dostępność Eksperymentalne (wersja próbna)
Wersja Apache Spark 3.4.1 3.5.5 4.0.0
System operacyjny Mariner 2.0 Mariner 2.0 Mariner 3.0
Wersja języka Java 11 11 dwadzieścia jeden
Wersja języka Scala 2.12.17 2.12.17 2.13.16
Wersja języka Python 3,10 3.11 3.12.11
Wersja usługi Delta Lake 2.4.0 3.2 4.0.0

Odwiedź stronę Runtime 1.2, Runtime 1.3 lub Runtime 2.0 , aby zapoznać się ze szczegółami, nowymi funkcjami, ulepszeniami i scenariuszami migracji dla określonej wersji środowiska uruchomieniowego.

Optymalizacje sieci szkieletowej

W Microsoft Fabric zarówno silnik Spark, jak i implementacje Delta Lake obejmują optymalizacje oraz funkcje specyficzne dla platformy. Te funkcje są przeznaczone do korzystania z integracji natywnych w ramach platformy. Należy pamiętać, że wszystkie te funkcje można wyłączyć, aby osiągnąć standardowe funkcje platformy Spark i usługi Delta Lake. Środowiska uruchomieniowe Fabric dla Apache Spark obejmują:

  • Kompletna wersja typu open source platformy Apache Spark.
  • Kolekcja prawie 100 wbudowanych, unikatowych ulepszeń wydajności zapytań. Te ulepszenia obejmują funkcje, takie jak buforowanie partycji (umożliwiające pamięci podręcznej partycji w Systemie plików zmniejszenie liczby wywołań do magazynu metadanych) oraz operację Cross Join do projekcji podzapytania skalarnego.
  • Wbudowana inteligentna pamięć podręczna.

W środowisku uruchomieniowym Fabric dla Apache Spark i Delta Lake istnieją natywne funkcje zapisywania, które służą dwóm kluczowym celom:

  • Oferują one zróżnicowaną wydajność dla obciążeń związanych z pisaniem, optymalizując proces tworzenia treści.
  • Domyślnie korzystają z optymalizacji V-Order dla plików Delta Parquet. Optymalizacja Delta Lake V-Order ma kluczowe znaczenie dla zapewnienia lepszej wydajności odczytu we wszystkich silnikach Fabric. Aby lepiej zrozumieć, jak działa i jak nim zarządzać, zapoznaj się z dedykowanym artykułem dotyczącym optymalizacji tabel Delta Lake i V-Order.

Obsługa wielu środowisk uruchomieniowych

Platforma obsługuje wiele środowisk uruchomieniowych, dając użytkownikom możliwość elastycznego przełączania się między nimi, minimalizując ryzyko niekompatybilności lub przerw.

Domyślnie wszystkie nowe obszary robocze używają najnowszej wersji środowiska uruchomieniowego ogólnie dostępnego, która jest obecnie środowiskiem uruchomieniowym 1.3.

Aby zmienić wersję środowiska uruchomieniowego na poziomie obszaru roboczego, przejdź do Ustawienia obszaru roboczego>Inżynieria danych/Nauka>Ustawienia platformy Spark. Na karcie środowiska wybierz odpowiednią wersję środowiska uruchomieniowego z dostępnych opcji. Wybierz pozycję Zapisz, aby potwierdzić wybór.

Zrzut ekranu przedstawiający miejsce wybierania wersji środowiska uruchomieniowego dla ustawień obszaru roboczego.

Po wprowadzeniu tej zmiany wszystkie elementy utworzone przez system w obszarze roboczym, w tym Lakehouses, SJDs i Notebooks, będą działać przy użyciu nowo wybranej wersji środowiska uruchomieniowego na poziomie obszaru roboczego, począwszy od następnej sesji platformy Spark. Jeśli obecnie używasz notesu z istniejącą sesją dla zadania lub dowolnego działania związanego z usługą Lakehouse, ta sesja Spark będzie kontynuowana bez zmian. Jednak począwszy od następnej sesji lub zadania, zostanie zastosowana wybrana wersja środowiska uruchomieniowego.

Ponadto, aby zmienić środowisko uruchomieniowe na Environment poziomie elementu, utwórz nowy element środowiska lub otwórz i istniejący, na liście rozwijanej Środowisko uruchomieniowe wybierz odpowiednią wersję środowiska uruchomieniowego z dostępnych opcji, wybierz, a następnie Save wprowadź Publish zmiany. Następnie możesz użyć tego Environment elementu ze swoim elementem Notebook lub Spark Job Definition.

Zrzut ekranu przedstawiający miejsce wybierania wersji środowiska uruchomieniowego dla elementu Środowisko.

Konsekwencje zmian środowiska uruchomieniowego w ustawieniach platformy Spark

Ogólnie rzecz biorąc, chcemy przeprowadzić migrację wszystkich ustawień platformy Spark. Jeśli jednak zidentyfikujemy, że ustawienie platformy Spark nie jest zgodne ze środowiskiem uruchomieniowym B, wydamy komunikat ostrzegawczy i powstrzymamy się od zaimplementowania tego ustawienia.

Zmiana ustawień środowiska uruchomieniowego Spark.

Konsekwencje zmian środowiska uruchomieniowego w zarządzaniu bibliotekami

Ogólnie rzecz biorąc, naszym podejściem jest migrowanie wszystkich bibliotek ze środowiska uruchomieniowego A do środowiska uruchomieniowego B, w tym publicznych i niestandardowych środowisk uruchomieniowych. Jeśli wersje języka Python i R pozostaną niezmienione, biblioteki powinny działać prawidłowo. Jednak w przypadku plików Jar istnieje znaczne prawdopodobieństwo, że może nie działać z powodu zmian w zależnościach oraz innych czynników, takich jak zmiany w języku Scala, Java, Spark i systemie operacyjnym.

Użytkownik jest odpowiedzialny za aktualizowanie lub zastępowanie wszystkich bibliotek, które nie działają z środowiskiem uruchomieniowym B. Jeśli występuje konflikt, co oznacza, że środowisko uruchomieniowe B zawiera bibliotekę zdefiniowaną pierwotnie w środowisku uruchomieniowym A, nasz system zarządzania biblioteką próbuje utworzyć niezbędną zależność dla środowiska uruchomieniowego B na podstawie ustawień użytkownika. Jednak proces kompilacji kończy się niepowodzeniem, jeśli wystąpi konflikt. W dzienniku błędów użytkownicy mogą zobaczyć, które biblioteki powodują konflikty, i wprowadzić zmiany w ich wersjach lub specyfikacji.

Zmiana środowiska uruchomieniowego zarządzania biblioteką.

Uaktualnianie protokołu usługi Delta Lake

Funkcje usługi Delta Lake są zawsze zgodne z poprzednimi wersjami, dzięki czemu tabele utworzone w niższej wersji usługi Delta Lake mogą bezproblemowo współdziałać z wyższymi wersjami. Jednak po włączeniu niektórych funkcji (na przykład przy użyciu metody delta.upgradeTableProtocol(minReaderVersion, minWriterVersion)) kompatybilność z niższymi wersjami Delta Lake może zostać naruszona. W takich przypadkach niezbędne jest zmodyfikowanie obciążeń odwołujących się do uaktualnionych tabel w celu dostosowania ich do wersji usługi Delta Lake, która utrzymuje zgodność.

Każda tabela delty jest skojarzona ze specyfikacją protokołu, definiując obsługiwane funkcje. Aplikacje, które wchodzą w interakcję z tabelą do odczytu lub zapisu, polegają na tej specyfikacji protokołu, aby określić, czy są one zgodne z zestawem funkcji tabeli. Jeśli aplikacja nie ma możliwości obsługi funkcji wymienionej jako obsługiwana w protokole tabeli, nie może odczytać z tej tabeli ani zapisać jej w tej tabeli.

Specyfikacja protokołu jest podzielona na dwa odrębne składniki: protokół "read" i protokół "write". Aby uzyskać więcej informacji, odwiedź stronę "Jak usługa Delta Lake zarządza zgodnością funkcji?".

Plik GIF przedstawiający natychmiastowe ostrzeżenie podczas użycia metody upgradeTableProtocol.

Użytkownicy mogą wykonywać polecenie delta.upgradeTableProtocol(minReaderVersion, minWriterVersion) w środowisku PySpark oraz w usługach Spark SQL i Scala. To polecenie umożliwia im zainicjowanie aktualizacji w tabeli delty.

Należy pamiętać, że podczas przeprowadzania tego uaktualnienia użytkownicy otrzymują ostrzeżenie wskazujące, że uaktualnienie wersji protokołu delta jest procesem niezweryfikowalnym. Oznacza to, że po wykonaniu aktualizacji nie można jej cofnąć.

Uaktualnienia wersji protokołu mogą potencjalnie mieć wpływ na zgodność istniejących czytników tabel Delta Lake, zapisujących lub obu tych typów. Dlatego zaleca się zachowanie ostrożności i uaktualnienie wersji protokołu tylko wtedy, gdy jest to konieczne, na przykład podczas wdrażania nowych funkcji w usłudze Delta Lake.

Ważne

Aby dowiedzieć się więcej o tym, które wersje i funkcje protokołu są zgodne we wszystkich środowiskach usługi Microsoft Fabric, przeczytaj współdziałanie formatu tabeli usługi Delta Lake.

Zrzut ekranu przedstawiający ostrzeżenie podczas uaktualniania protokołu delta lake.

Ponadto użytkownicy powinni sprawdzić, czy wszystkie bieżące i przyszłe obciążenia produkcyjne i procesy są zgodne z tabelami usługi Delta Lake przy użyciu nowej wersji protokołu, aby zapewnić bezproblemowe przejście i zapobiec potencjalnym zakłóceniom.