Udostępnij za pośrednictwem


Środowisko uruchomieniowe 1.2 (ogólna dostępność)

Środowisko uruchomieniowe usługi Microsoft Fabric 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. W tym dokumencie opisano składniki i wersje środowiska uruchomieniowego 1.2.

Środowisko uruchomieniowe Microsoft Fabric Runtime 1.2 to najnowsza wersja środowiska uruchomieniowego ogólnie dostępnego. Główne składniki środowiska Uruchomieniowego 1.2 obejmują:

  • Apache Spark 3.4.1
  • System operacyjny: Mariner 2.0
  • Java: 11
  • Scala: 2.12.17
  • Python: 3.10
  • Delta Lake: 2.4.0
  • R: 4.2.2

Zrzut ekranu przedstawiający miejsce wybierania wersji środowiska uruchomieniowego.

Środowisko Microsoft Fabric Runtime 1.2 zawiera kolekcję pakietów na poziomie domyślnym, w tym pełną instalację platformy Anaconda i powszechnie używane biblioteki dla języków Java/Scala, Python i R. Te biblioteki są automatycznie dołączane podczas korzystania z notesów lub zadań na platformie Microsoft Fabric. Zapoznaj się z dokumentacją, aby uzyskać pełną listę bibliotek. Usługa Microsoft Fabric okresowo wdraża aktualizacje konserwacji środowiska Uruchomieniowego 1.2, zapewniając poprawki błędów, ulepszenia wydajności i poprawki zabezpieczeń. Zapewnienie aktualności zapewnia optymalną wydajność i niezawodność zadań przetwarzania danych.

Nowe funkcje i ulepszenia platformy Spark w wersji 3.4.1

Apache Spark 3.4.0 to piąta wersja w wierszu 3.x. Ta wersja, oparta na społeczności open source, rozwiązała ponad 2600 biletów Jira. Wprowadza klienta języka Python dla programu Spark Connect, rozszerza strukturę przesyłania strumieniowego za pomocą śledzenia postępu asynchronicznego i przetwarzania stanowego języka Python. Rozszerza ona pokrycie interfejsu API biblioteki Pandas dzięki obsłudze danych wejściowych NumPy, upraszcza migrację z tradycyjnych magazynów danych za pomocą zgodności ANSI i nowych wbudowanych funkcji. Zwiększa również produktywność programowania i debugowanie przy użyciu profilowania pamięci. Ponadto środowisko uruchomieniowe 1.2 jest oparte na platformie Apache Spark 3.4.1, która koncentruje się na poprawkach stabilności.

Najważniejsze aspekty

Przeczytaj pełną wersję informacji o wersji dla określonej wersji platformy Apache Spark, odwiedzając platformę Spark 3.4.0 i platformę Spark 3.4.1.

Nowe niestandardowe optymalizacje zapytań

Obsługa zapisów współbieżnych na platformie Spark

Napotkanie błędu 404 z komunikatem "Operacja nie powiodła się: określona ścieżka nie istnieje" jest typowym problemem podczas wykonywania wstawiania danych równoległych do tej samej tabeli przy użyciu zapytania SQL INSERT INTO. Ten błąd może spowodować utratę danych. Nasza nowa funkcja, algorytm zatwierdzania danych wyjściowych plików, rozwiązuje ten problem, umożliwiając klientom bezproblemowe wykonywanie równoległego wstawiania danych.

Aby uzyskać dostęp do tej funkcji, włącz flagę spark.sql.enable.concurrentWrites funkcji, która jest domyślnie włączona, począwszy od środowiska uruchomieniowego 1.2 (Spark 3.4). Chociaż ta funkcja jest również dostępna w innych wersjach platformy Spark 3, nie jest domyślnie włączona. Ta funkcja nie obsługuje równoległego wykonywania zapytań INSERT OVERWRITE, w których każde współbieżne zadanie zastępuje dane na różnych partycjach tej samej tabeli dynamicznie. W tym celu platforma Spark oferuje alternatywną funkcję, którą można aktywować, konfigurując spark.sql.sources.partitionOverwriteMode ustawienie na wartość dynamiczną.

Inteligentne operacje odczytu, które pomijają pliki z zadań, które zakończyły się niepowodzeniem

W bieżącym systemie zatwierdzania platformy Spark, gdy wstawianie do zadania tabeli kończy się niepowodzeniem, ale niektóre zadania kończą się powodzeniem, pliki generowane przez pomyślne zadania współistnieją z plikami z zadania zakończonego niepowodzeniem. To współistnienie może spowodować zamieszanie dla użytkowników, ponieważ staje się trudne do odróżnienia plików należących do zadań zakończonych powodzeniem i niepowodzeniem. Ponadto, gdy jedno zadanie odczytuje z tabeli, podczas gdy inne wstawia dane współbieżnie do tej samej tabeli, zadanie odczytu może uzyskać dostęp do niezatwierdzonych danych. Jeśli zadanie zapisu zakończy się niepowodzeniem, zadanie odczytu może przetworzyć nieprawidłowe dane.

Flaga spark.sql.auto.cleanup.enabled steruje naszą nową funkcją, aby rozwiązać ten problem. Po włączeniu platforma Spark automatycznie pomija odczytywanie plików, które nie zostały zatwierdzone podczas wykonywania spark.read lub wybierania zapytań z tabeli. Pliki zapisywane przed włączeniem tej funkcji będą nadal odczytywane jak zwykle.

Oto widoczne zmiany:

  • Wszystkie pliki zawierają tid-{jobID} teraz identyfikator w nazwach plików.
  • Zamiast znacznika _success zwykle tworzonego w lokalizacji wyjściowej po pomyślnym zakończeniu zadania jest generowany nowy _committed_{jobID} znacznik. Ten znacznik kojarzy pomyślne identyfikatory zadań z określonymi nazwami plików.
  • Wprowadziliśmy nowe polecenie SQL, które użytkownicy mogą okresowo uruchamiać w celu zarządzania magazynem i czyszczenia niezatwierdzonych plików. Składnia tego polecenia jest następująca:
    • Aby wyczyścić określony katalog: CLEANUP ('/path/to/dir') [RETAIN number HOURS];
    • Aby wyczyścić określoną tabelę: CLEANUP [db_name.]table_name [RETAIN number HOURS]; w tej składni reprezentuje identyfikator URI lokalizacji, path/to/dir w którym jest wymagane czyszczenie, i number jest wartością podwójnego typu reprezentującą okres przechowywania. Domyślny okres przechowywania jest ustawiony na siedem dni.
  • Wprowadziliśmy nową opcję konfiguracji o nazwie spark.sql.deleteUncommittedFilesWhileListing, która jest domyślnie ustawiona na false wartość . Włączenie tej opcji powoduje automatyczne usunięcie niezatwierdzonych plików podczas odczytu, ale ten scenariusz może spowolnić operacje odczytu. Zaleca się ręczne uruchomienie polecenia oczyszczania, gdy klaster jest w stanie bezczynności, zamiast włączać tę flagę.

Przewodnik migracji ze środowiska uruchomieniowego 1.1 do środowiska uruchomieniowego 1.2

Podczas migracji ze środowiska Uruchomieniowego 1.1 obsługiwanego przez platformę Apache Spark 3.3 do środowiska uruchomieniowego 1.2 obsługiwanego przez platformę Apache Spark 3.4 zapoznaj się z oficjalnym przewodnikiem migracji.

Nowe funkcje i ulepszenia usługi Delta Lake 2.4

Delta Lake to projekt typu open source, który umożliwia tworzenie architektury typu lakehouse na szczycie magazynów typu data lake. Usługa Delta Lake udostępnia transakcje ACID, skalowalną obsługę metadanych oraz jednoczy przetwarzanie danych przesyłanych strumieniowo i wsadowych na podstawie istniejących magazynów typu data lake.

W szczególności usługa Delta Lake oferuje następujące elementy:

  • Transakcje ACID na platformie Spark: poziomy izolacji z możliwością serializacji zapewniają, że czytelnicy nigdy nie widzą niespójnych danych.
  • Skalowalna obsługa metadanych: używa rozproszonej mocy obliczeniowej platformy Spark do obsługi wszystkich metadanych tabel w skali petabajtów z łatwymi miliardami plików.
  • Przesyłanie strumieniowe i łączenie wsadowe : tabela w usłudze Delta Lake to tabela wsadowa i źródło przesyłania strumieniowego i ujście. Pozyskiwanie danych przesyłanych strumieniowo, wsadowe wypełnianie historyczne, interakcyjne zapytania po prostu działają poza polem.
  • Wymuszanie schematu: Automatycznie obsługuje odmiany schematu, aby zapobiec wstawieniu nieprawidłowych rekordów podczas pozyskiwania.
  • Podróż w czasie: przechowywanie wersji danych umożliwia wycofywanie, pełne historyczne szlaki inspekcji i powtarzalne eksperymenty uczenia maszynowego.
  • Operacje upserts i delete: obsługuje operacje scalania, aktualizacji i usuwania, aby umożliwić złożone przypadki użycia, takie jak przechwytywanie zmian danych, powolne zmienianie operacji wymiarów (SCD), przesyłanie strumieniowe operacji upsert itd.

Przeczytaj pełną wersję informacji o wersji usługi Delta Lake 2.4.

Domyślne pakiety na poziomie dla języków Java, Scala, Python

Aby uzyskać listę wszystkich pakietów na poziomie domyślnym dla języków Java, Scala, Python i ich odpowiednich wersji, zobacz informacje o wersji.