Udostępnij za pośrednictwem


Informacje o wersji usługi przetwarzania bezserwerowego

W tym artykule opisano funkcje i zachowania, które są obecnie dostępne i nadchodzący w przypadku bezserwerowych obliczeń dla notesów i zadań.

Aby uzyskać więcej informacji na temat obliczeń bezserwerowych, zobacz Łączenie się z bezserwerowych obliczeń.

Usługa Azure Databricks okresowo publikuje aktualizacje bezserwerowych zasobów obliczeniowych, automatycznie uaktualniając bezserwerowe środowisko uruchomieniowe obliczeniowe w celu obsługi ulepszeń i uaktualnień do platformy. Wszyscy użytkownicy otrzymują te same aktualizacje, wdrażane w krótkim czasie.

Obrazy klientów bezserwerowych

Bezserwerowe obliczenia usługi Databricks dla notesów i zadań mają architekturę opartą na programie Spark Connect, umożliwiając niezależne uaktualnienia aparatu bez wpływu na aplikację. Aby zapewnić zgodność aplikacji, obciążenia bezserwerowe używają interfejsu API w wersji, znanego jako obraz klienta lub klient, który pozostaje zgodny z nowszymi wersjami serwera.

Najnowszy obraz klienta będzie nadal otrzymywać aktualizacje do momentu wydania nowego obrazu klienta. Użytkownicy mogą wybierać spośród następujących obsługiwanych obrazów klientów:

Informacje o wersji

Ta sekcja zawiera informacje o wersji dla obliczeń bezserwerowych. Informacje o wersji są zorganizowane według roku i tygodnia roku. Przetwarzanie bezserwerowe zawsze jest uruchamiane przy użyciu ostatnio wydanej wersji wymienionej tutaj.

Wersja 2024.43

28 października 2024 r.

Ta bezserwerowa wersja obliczeniowa w przybliżeniu odpowiada środowisku Databricks Runtime 15.4

Nowe funkcje

  • Funkcje weryfikacji UTF-8: W tej wersji wprowadzono następujące funkcje do sprawdzania poprawności ciągów UTF-8:
    • is_valid_utf8 sprawdzić, czy ciąg jest prawidłowym ciągiem UTF-8.
    • make_valid_utf8 konwertuje potencjalnie nieprawidłowy ciąg UTF-8 na prawidłowy ciąg UTF-8 przy użyciu znaków podstawienia.
    • validate_utf8 zgłasza błąd, jeśli dane wejściowe nie są prawidłowym ciągiem UTF-8.
    • try_validate_utf8 zwraca NULL wartość , jeśli dane wejściowe nie są prawidłowym ciągiem UTF-8.
  • Włącz górę lodowa UniForm przy użyciu alter TABLE: możesz teraz włączyć Górę Lodowa UniForm w istniejących tabelach bez ponownego zapisywania plików danych. Zobacz Włączanie przez zmianę istniejącej tabeli.
  • try_url_decode funkcja: w tej wersji wprowadzono funkcję try_url_decode , która dekoduje ciąg zakodowany w adresie URL. Jeśli ciąg nie ma poprawnego formatu, funkcja zwraca NULL zamiast zgłaszać błąd.
  • Opcjonalnie zezwól optymalizatorowi na korzystanie z niewymuszonych ograniczeń klucza obcego: aby zwiększyć wydajność zapytań, możesz teraz określić RELY słowo kluczowe dotyczące FOREIGN KEY ograniczeń podczas tworzenia lub zmieniania tabeli.
  • Równoległe uruchomienia zadań dla selektywnych zastąpień: selektywne zastępowanie przy użyciu teraz replaceWhere uruchamia zadania, które usuwają dane i wstawiają nowe dane równolegle, zwiększając wydajność zapytań i wykorzystanie klastra.
  • Zwiększona wydajność zestawienia danych zmian przy użyciu selektywnego zastępowania: selektywne zastępowanie przy użyciu replaceWhere tabel ze źródłem danych zmian nie zapisuje już oddzielnych plików danych zmian dla wstawionych danych. Te operacje używają ukrytej _change_type kolumny obecnej w źródłowych plikach danych Parquet do rejestrowania zmian bez wzmacniania zapisu.
  • Ulepszone opóźnienie zapytania dla COPY INTO polecenia: ta wersja zawiera zmianę, która poprawia opóźnienie zapytania dla COPY INTO polecenia. To ulepszenie jest implementowane przez asynchroniczne ładowanie stanu przez magazyn stanów Bazy danych RocksDB. Dzięki tej zmianie powinna zostać wyświetlona poprawa czasu rozpoczęcia zapytań z dużymi stanami, takimi jak zapytania z dużą liczbą już pozyskanych plików.
  • Obsługa usuwania funkcji tabeli ograniczeń sprawdzania: teraz można usunąć checkConstraints funkcję tabeli z tabeli delty przy użyciu polecenia ALTER TABLE table_name DROP FEATURE checkConstraints. Zobacz Wyłączanie ograniczeń sprawdzania.

Zmiany zachowania

  • Zmiana powiązania schematu dla widoków: gdy typy danych w bazowym zapytaniu widoku zmieniają się z tych używanych podczas pierwszego tworzenia widoku, usługa Databricks nie zgłasza już błędów odwołań do widoku, gdy nie można wykonać bezpiecznego rzutowania.

    Zamiast tego widok jest kompensowany przy użyciu regularnych reguł rzutowania tam, gdzie to możliwe. Ta zmiana umożliwia usłudze Databricks bardziej czytelne tolerowanie zmian schematu tabeli.

  • Nie zezwalaj na tolerancję składni nieudokumentowanej ! dla NOT logiki logicznej zewnętrznej: usługa Databricks nie będzie już tolerować użycia ! jako synonimu poza NOT logiką logiczną. Ta zmiana zmniejsza zamieszanie, jest zgodna ze standardem SQL i sprawia, że usługa SQL jest bardziej przenośna. Na przykład:

    CREATE ... IF ! EXISTS, IS ! Null, ! NULL kolumna lub właściwość ! IN pola i ! Między elementami musi zostać zastąpiony:

    CREATE ... IF NOT EXISTS, , NOT NULL IS NOT NULLwłaściwość kolumny lub pola NOT IN i NOT BETWEEN.

    Operator prefiksu ! logicznego (np. !is_mgr lub !(true AND false)) nie ma wpływu na tę zmianę.

  • Nie zezwalaj na nieudokumentowane i nieprzetworzone fragmenty składni definicji kolumny w widokach: usługa Databricks obsługuje funkcję CREATE VIEW z nazwanymi kolumnami i komentarzami kolumn.

    Specyfikacja typów kolumn, NOT NULL ograniczeń lub DEFAULT została tolerowana w składni bez żadnego efektu. Usługa Databricks usunie tę tolerancję składni. Dzięki temu można zmniejszyć zamieszanie, dopasować je do standardu SQL i umożliwić przyszłe ulepszenia.

  • Spójna obsługa błędów dekodowania Base64 na platformie Spark i aplikacji Photon: ta wersja zmienia sposób obsługi błędów dekodowania Base64 w celu dopasowania obsługi tych błędów przez platformę Spark. Przed wprowadzeniem tych zmian ścieżka generowania kodu Photon i Spark czasami nie może wywołać wyjątków analizy, podczas gdy poprawnie podniesione IllegalArgumentException wykonanie zinterpretowane przez platformę Spark lub ConversionInvalidInputError. Ta aktualizacja gwarantuje, że aplikacja Photon stale zgłasza te same wyjątki co platforma Spark podczas dekodowania Base64, zapewniając bardziej przewidywalną i niezawodną obsługę błędów.

  • CHECK Dodanie ograniczenia dla nieprawidłowej kolumny zwraca teraz UNRESOLVED_COLUMN. WITH_SUGGESTION klasy błędów: Aby zapewnić bardziej przydatne komunikaty o błędach, w środowisku Databricks Runtime 15.3 lub nowszym ALTER TABLE ADD CONSTRAINT instrukcja zawierająca CHECK ograniczenie odwołujące się do nieprawidłowej nazwy kolumny zwraca UNRESOLVED_COLUMN. WITH_SUGGESTION klasa błędów. INTERNAL_ERROR Wcześniej element został zwrócony.

Zestaw JDK został uaktualniony z zestawu JDK 8 do zestawu JDK 17

15 sierpnia 2024 r.

Bezserwerowe obliczenia dla notesów i przepływów pracy zostały zmigrowane z zestawu Java Development Kit (JDK) 8 do zestawu JDK 17 po stronie serwera. To uaktualnienie obejmuje następujące zmiany behawioralne:

Poprawki błędów

Poprawne analizowanie wzorców wyrażeń regularnych z negacją w zagnieżdżonym grupowaniu znaków: dzięki temu uaktualnieniu usługa Azure Databricks obsługuje teraz poprawne analizowanie wzorców wyrażeń regularnych z negacją w zagnieżdżonym grupowaniu znaków. Na przykład [^[abc]] zostanie przeanalizowany jako "dowolny znak, który nie jest jednym z "abc".

Ponadto zachowanie aplikacji Photon było niespójne z platformą Spark dla klas znaków zagnieżdżonych. Wzorce wyrażeń regularnych zawierające zagnieżdżone klasy znaków nie będą już używać funkcji Photon i zamiast tego będą używać platformy Spark. Zagnieżdżona klasa znaków to dowolny wzorzec zawierający nawiasy kwadratowe w nawiasach kwadratowych, takich jak [[a-c][1-3]].

Wersja 15.1

23 lipca 2024 r.

Ta bezserwerowa wersja obliczeniowa w przybliżeniu odpowiada środowisku Databricks Runtime 15.1

Nowe funkcje

Obsługa składni gwiazdki (*) w klauzuliWHERE : teraz możesz użyć składni gwiazdki (*) w WHERE klauzuli , aby odwołać się do wszystkich kolumn z SELECT listy.

Na przykład SELECT * FROM VALUES(1, 2) AS T(a1, a2) WHERE 1 IN(T.*).

Zmiany

Ulepszone odzyskiwanie błędów na potrzeby analizowania kodu JSON: analizator JSON używany dla from_json() wyrażeń ścieżki JSON i teraz odzyskuje szybsze odzyskiwanie po źle sformułowanej składni, co skutkuje mniejszą utratą danych.

W przypadku napotkania źle sformułowanej składni JSON w polu struktury, wartości tablicy, klucza mapy lub wartości mapy analizator JSON zwróci teraz NULL tylko nieczytelne pole, klucz lub element. Kolejne pola, klucze lub elementy zostaną prawidłowo przeanalizowane. Przed tą zmianą analizator JSON porzucił analizowanie tablicy, struktury lub mapy i zwracał NULL pozostałą zawartość.

Wersja 14.3

15 kwietnia 2024 r.

Jest to początkowa bezserwerowa wersja obliczeniowa. Ta wersja w przybliżeniu odpowiada środowisku Databricks Runtime 14.3 z pewnymi modyfikacjami, które usuwają obsługę niektórych funkcji bezserwerowych i starszych.

Obsługiwane parametry konfiguracji platformy Spark

Aby zautomatyzować konfigurację platformy Spark na obliczeniach bezserwerowych, usługa Azure Databricks usunęła obsługę ręcznego ustawiania większości konfiguracji platformy Spark. Można ręcznie ustawić tylko następujące parametry konfiguracji platformy Spark:

  • spark.sql.legacy.timeParserPolicy (wartość domyślna to CORRECTED)
  • spark.sql.session.timeZone (wartość domyślna to Etc/UTC)
  • spark.sql.shuffle.partitions (wartość domyślna to auto)
  • spark.sql.ansi.enabled (wartość domyślna to true)

Jeśli ustawisz konfigurację platformy Spark, która nie znajduje się na tej liście, zadanie jest uruchamiane na bezserwerowych obliczeniach, zakończy się niepowodzeniem.

Aby uzyskać więcej informacji na temat konfigurowania właściwości platformy Spark, zobacz Ustawianie właściwości konfiguracji platformy Spark w usłudze Azure Databricks.

funkcje input_file są przestarzałe

Funkcje input_file_name(), input_file_block_length() i input_file_block_start() są przestarzałe. Korzystanie z tych funkcji jest zdecydowanie zniechęcane.

Zamiast tego użyj kolumny metadanych pliku, aby pobrać informacje o metadanych pliku.

Zmiany zachowania

Bezserwerowe obliczenia w wersji 2024.15 obejmują następujące zmiany behawioralne:

  • poprawka usterki unhex(hexStr): w przypadku korzystania z unhex(hexStr) funkcji szesnastkowy jest zawsze dopełniany do całego bajtu. Wcześniej funkcja unhex zignorowała pierwszy bajt połowy. Na przykład: unhex('ABC') teraz tworzy x'0ABC' zamiast x'BC'.
  • Aliasy kolumn generowanych automatycznie są teraz stabilne: gdy wynik wyrażenia jest przywoływane bez aliasu kolumny określonego przez użytkownika, ten automatycznie wygenerowany alias będzie teraz stabilny. Nowy algorytm może spowodować zmianę wcześniej wygenerowanych automatycznie nazw używanych w funkcjach, takich jak zmaterializowane widoki.
  • Skanowania tabel z polami CHAR typów są teraz zawsze dopełniane: tabele delty, niektóre tabele JDBC i zewnętrzne źródła danych przechowują dane CHAR w postaci nieupełnionej. Podczas odczytywania usługa Azure Databricks będzie teraz dopełniać dane spacjami do zadeklarowanej długości, aby zapewnić poprawną semantykę.
  • Rzutowania z BIGINT/DECIMAL do TIMESTAMP zgłaszają wyjątek dla przepełnionych wartości: usługa Azure Databricks umożliwia rzutowanie z BIGINT i DECIMAL na ZNACZNIK CZASU, traktując wartość jako liczbę sekund z epoki unix. Wcześniej usługa Azure Databricks zwracała przepełnione wartości, ale teraz zgłasza wyjątek w przypadkach przepełnienia. Użyj polecenia try_cast , aby zwrócić wartość NULL zamiast wyjątku.
  • Ulepszono wykonywanie funkcji zdefiniowanej przez użytkownika PySpark w celu dopasowania do dokładnego zachowania wykonywania funkcji zdefiniowanej przez użytkownika w obliczeniach pojedynczego użytkownika: Wprowadzono następujące zmiany:
    • Funkcje zdefiniowane przez użytkownika z typem zwracanym ciągu nie są już niejawnie konwertowane wartości inne niż ciągi na ciągi. Wcześniej funkcje zdefiniowane przez użytkownika z zwracanym typem str klasy zastosują str(..) otokę do wyniku niezależnie od rzeczywistego typu danych zwróconej wartości.
    • Funkcje zdefiniowane przez użytkownika z typami timestamp zwracanymi nie stosują już niejawnie konwersji strefy czasowej na znaczniki czasu.