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
- Zestaw JDK został uaktualniony z zestawu JDK 8 do zestawu JDK 17
- Wersja 15.1
- Wersja 14.3
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ąceFOREIGN 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 dlaCOPY 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 poleceniaALTER 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
!
dlaNOT
logiki logicznej zewnętrznej: usługa Databricks nie będzie już tolerować użycia!
jako synonimu pozaNOT
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 NULL
właściwość kolumny lub polaNOT IN
iNOT 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ń lubDEFAULT
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 lubConversionInvalidInputError
. 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 nowszymALTER TABLE ADD CONSTRAINT
instrukcja zawierającaCHECK
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 toCORRECTED
)spark.sql.session.timeZone
(wartość domyślna toEtc/UTC
)spark.sql.shuffle.partitions
(wartość domyślna toauto
)spark.sql.ansi.enabled
(wartość domyślna totrue
)
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 tworzyx'0ABC'
zamiastx'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.
- 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