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 get tych samych aktualizacji, co w krótkim czasie.
wersje środowiska bezserwerowego
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 znanej jako wersja środowiska lub klient, który pozostaje zgodny z nowszymi wersjami serwera.
Najnowsza wersja środowiska będzie nadal otrzymywać aktualizacje do momentu wydania nowej wersji. Użytkownicy mogą select z dowolnej z następujących obsługiwanych wersji środowiska:
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.
- w wersji 15.4
- Zestaw JDK został uaktualniony z zestawu JDK 8 do zestawu JDK 17
- Wersja 15.1
- Wersja 14.3
Wersja 15.4
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 UniForm Iceberg za pomocą ALTER TABLE: Możesz teraz włączyć UniForm Iceberg w istniejących tables bez ponownego zapisywania plików danych. Zobacz Włącz odczyty Iceberg na istniejącym table.
-
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 zezwala optymalizatorowi na korzystanie z niewymuszonych ograniczeń klucza obcego: Aby zwiększyć wydajność zapytań, można teraz określić słowo kluczowe
RELY
dotyczące ograniczeńFOREIGN KEY
podczas CREATE lub ALTERtable. - pl-PL: Równoległe wykonywanie zadań dla selektywnych zastąpień: Selektywne zastępowania przy użyciu
replaceWhere
teraz wykonuje zadania, które jednocześnie usuwają i dodają nowe dane do insert, co zwiększa wydajność zapytań oraz optymalizuje wykorzystanie klastra. -
Ulepszona wydajność strumienia danych zmieniających się przy użyciu selektywnego zastępowania: selektywne zastępowanie za pomocą
replaceWhere
na tables z użyciem strumienia danych zmieniających się nie zapisuje już oddzielnych plików z danymi zmian dla wstawionych danych. Te operacje używają ukrytych_change_type
column znajdujących się w podstawowych plikach danych Parquet w celu rejestrowania zmian bez amplifikacji 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 ograniczeń sprawdzania table funkcji: Teraz możesz usunąć funkcję
checkConstraints
table z delty table przy użyciuALTER TABLE table_name DROP FEATURE checkConstraints
. Zobacz Wyłączanie ograniczeń sprawdzania.
Zmiany zachowania
Schema zmiana powiązania dla views: Gdy typy danych w bazowym zapytaniu widoku ulegają zmianie od czasu, gdy widok był po raz pierwszy utworzony, Databricks przestaje zgłaszać błędy dla odwołań do widoku, jeśli nie można przeprowadzić bezpiecznego rzutowania.
Zamiast tego widok rekompensuje przy użyciu regularnych reguł rzutowania możliwych where. Ta zmiana umożliwia platformie Databricks łatwiejsze tolerowanie zmian tableschema.
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
column lub właściwość pola,! IN
i ! Między musi zostać zastąpiony:CREATE ... IF NOT EXISTS
,IS NOT NULL
,NOT NULL
,column lub właściwości,NOT 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 column w programie views: usługa Databricks obsługuje CREATE VIEW z nazwanymi komentarzami columns i column.
Specyfikacja typów column, ograniczeń
NOT NULL
lubDEFAULT
była tolerowana w składni bez having żadnego efektu. Databricks wprowadzi obsługę dla tej składni remove. 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
. Ten update gwarantuje, że Photon stale zgłasza te same wyjątki co Spark podczas błędów dekodowania Base64, zapewniając bardziej przewidywalną i niezawodną obsługę błędów.Dodanie
CHECK
constraint do nieprawidłowego column teraz zwraca klasę błędu UNRESOLVED_COLUMN.WITH_SUGGESTION: Aby zapewnić bardziej zrozumiałe komunikaty o błędach, w środowisku Databricks Runtime 15.3 i nowszych, instrukcjeALTER TABLE ADD CONSTRAINT
zawierająceCHECK
constraint, które odwołują się do nieprawidłowej nazwy column, zwracają klasę błędu UNRESOLVED_COLUMN.WITH_SUGGESTION.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 klauzuli WHERE
: Od teraz można używać składni gwiazdki (*
) w klauzuli WHERE
, aby odwołać się do wszystkich columns w ramach SELECT
list.
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 databricks Runtime 14.3 z pewnymi modyfikacjami, które remove obsługę niektórych funkcji bezserwerowych i starszych.
Obsługiwana konfiguracja platformy Spark parameters
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żesz ręcznie set tylko następującą konfigurację platformy Spark parameters:
-
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
)
Zadania uruchamiane na bezserwerowych zasobach obliczeniowych zakończą się niepowodzeniem, jeśli set konfiguracji platformy Spark, która nie jest zawarta w tym list.
Aby uzyskać więcej informacji na temat konfigurowania właściwości platformy Spark, zobacz Set 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 metadanych pliku column, 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 generowane automatycznie column są teraz stabilne: Gdy wynik wyrażenia jest przywoływane bez aliasu określonego przez użytkownika column, 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 views.
-
Table skany z polami typu
CHAR
są teraz zawsze wypełniane: Delta tables, niektóre JDBC tablesoraz zewnętrzne źródła danych przechowują dane CHAR w formie niewypeł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 na TIMESTAMP zgłaszają wyjątek w przypadku przepełnienia values: usługa Azure Databricks umożliwia rzutowanie z BIGINT i DECIMAL na TIMESTAMP, traktując wartość jako liczbę sekund od epoki Unix. Wcześniej usługa Azure Databricks zwracała przepełnioną wartość values, ale teraz zgłasza wyjątek w przypadku 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 values ciągów 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
timestamp
typami zwracanymi nie stosują już niejawnie konwersji timezone na znaczniki czasu.
- Funkcje zdefiniowane przez użytkownika z typem zwracanym ciągu nie są już niejawnie konwertowane values ciągów na ciągi. Wcześniej funkcje zdefiniowane przez użytkownika z zwracanym typem