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.
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ą wybrać każdą 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.
- ustawienie Wysokiej pamięci dostępne w notesach bezserwerowych (publiczna wersja zapoznawcza)
- w wersji 16.1
- w wersji 15.4
- Zestaw JDK został uaktualniony z zestawu JDK 8 do zestawu JDK 17
- Wersja 15.1
- Wersja 14.3
Wysokie ustawienie pamięci dostępne w notesach bezserwerowych (wersja publiczna)
7 lutego 2025 r.
Teraz można skonfigurować więcej pamięci dla zadań w notebookach obliczeniowych bezserwerowych. To ustawienie można zastosować zarówno do obciążeń notatnika interaktywnego, jak i zaplanowanego.
Użycie bezserwerowe z wysoką ilością pamięci ma wyższy współczynnik emisji jednostek DBU niż standardowa pamięć.
Aby uzyskać więcej informacji, zobacz Skonfiguruj dużą pamięć dla swoich obciążeń serwerless.
Wersja 16.1
5 lutego 2025 r.
Ta bezserwerowa wersja obliczeniowa w przybliżeniu odpowiada Databricks Runtime 16.0 i Databricks Runtime 16.1.
Nowe funkcje
Obsługa cyklicznego schematu Avro: Teraz możesz użyć opcji
recursiveFieldMaxDepth
z funkcjąfrom_avro
i źródłem danychavro
. Ta opcja ustawia maksymalną głębokość rekursji schematu w źródle danych Avro. Zobacz Odczytywanie i zapisywanie danych avro przesyłanych strumieniowo.Rozszerzona obsługa Rejestru Schematów Confluent dla Avro: Nowe funkcje bezserwerowe obsługują teraz odwołania do schematów Avro w Rejestrze Schematów Confluent. Zobacz Uwierzytelnianie w zewnętrznym rejestrze schematów confluent.
Wymuszanie ponownego zapisywania w tabelach z klastrowaniem płynnym: Teraz można użyć składni
OPTIMIZE FULL
, aby wymusić ponowne tworzenie wszystkich rekordów w tabeli z włączonym klastrowaniem płynnym. Zobacz Wymuszanie ponownego grupowania wszystkich rekordów.Interfejsy API Delta dla języka Python obsługują teraz kolumny identyfikacyjne: Teraz możesz używać interfejsów API Delta dla języka Python do tworzenia tabel z kolumnami identyfikacyjnymi. Zobacz Używanie kolumn tożsamości w usłudze Delta Lake.
Tworzenie tabel klastrowanych w trybie liquid podczas zapisu strumieniowego: Teraz można użyć
clusterBy
, aby włączyć klastrowanie w trybie liquid podczas tworzenia nowych tabel za pomocą zapisów w strukturze strumieniowej. Zobacz Włączanie klastrowania liquid.Obsługa klauzuli OPTIMIZE FULL: Przetwarzanie bezserwerowe obsługuje teraz klauzulę OPTIMIZE FULL. Ta klauzula optymalizuje wszystkie rekordy w tabeli, która korzysta z klastrowania cieczy, w tym danych, które mogły wcześniej zostać klastrowane.
pl-PL: Obsługa specyfikacji opcji WITH w INSERT i odwołania do tabeli: Przetwarzanie bezserwerowe obsługuje teraz specyfikację opcji dla odwołań do tabel i nazw tabel w instrukcji
INSERT
, które mogą służyć do kontrolowania zachowania źródeł danych.Nowe funkcje SQL: Następujące funkcje SQL są teraz dostępne w bezserwerowych obliczeniach:
- try_url_decode to odporna na błędy wersja url_decode.
-
zeroifnull zwraca wartość 0, jeśli wyrażenie wejściowe funkcji
zeroifnull()
jestNULL
. -
nullifzero zwraca
NULL
, jeśli dane wejściowe to 0, lub zwraca samo dane wejściowe, jeśli nie jest równe 0. - dayname(expr) zwraca trzyliterowy angielski akronim dnia tygodnia dla danej daty.
- uniform(expr1, expr2 [,seed]) zwraca wartość losową z niezależnymi i identycznymi wartościami rozproszonymi w określonym zakresie liczb.
-
randstr(length) zwraca losowy ciąg znaków alfanumerycznych
length
.
Włącz automatyczną ewolucję schematu podczas scalania danych z tabelą delty: dodano obsługę dla elementu członkowskiego
withSchemaEvolution()
klasyDeltaMergeBuilder
. SłużywithSchemaEvolution()
do włączania automatycznej ewolucji schematu podczasMERGE
operacji. Na przykładmergeBuilder.whenMatched(...).withSchemaEvolution().execute()}}
.Obsługa sortowania na platformie Apache Spark jest dostępna w publicznej wersji zapoznawczej: Teraz można przypisywać sortowania z uwzględnieniem języka, bez uwzględniania wielkości liter i bez uwzględniania dostępu w celu
STRING
kolumn i wyrażeń. Te sortowania są używane w porównaniach ciągów, sortowaniu, operacjach grupowania i wielu funkcjach ciągów. Zobacz sortowanie.Obsługa sortowania w usłudze Delta Lake jest dostępna w publicznej wersji zapoznawczej: Teraz można zdefiniować sortowania dla kolumn podczas tworzenia lub zmieniania tabeli delty. Zobacz Obsługa sortowania dla usługi Delta Lake.
LITE
tryb czyszczenia jest w publicznej wersji zapoznawczej: Teraz można użyćVACUUM table_name LITE
do wykonania mniej obciążającej operacji czyszczenia, która wykorzystuje metadane w dzienniku transakcji Delta. Zobacz tryb pełny vs. lekki oraz VACUUM.Obsługa parametryzacji klauzuli
USE CATALOG with IDENTIFIER
:IDENTIFIER jest teraz obsługiwana dla instrukcji USE CATALOG. Dzięki tej obsłudze można sparametryzować bieżący wykaz na podstawie zmiennej ciągu lub znacznika parametru.COMMENT ON COLUMN obsługę tabel i widoków: Instrukcja COMMENT ON obsługuje teraz zmienianie komentarzy dla kolumn widoków i tabel.
pl-PL: Wywołanie z użyciem nazwanych parametrów dla większej liczby funkcji: Następujące funkcje obsługują wywołanie z użyciem nazwanych parametrów :
Parametr
SYNC METADATA
polecenia REPAIR TABLE jest obsługiwany w magazynie metadanych Hive: Teraz można użyć parametruSYNC METADATA
za pomocą poleceniaREPAIR TABLE
, aby zaktualizować metadane zarządzanej tabeli magazynu metadanych Hive. Zobacz REPAIR TABLE.Zwiększona integralność danych dla skompresowanych partii Apache Arrow: Aby dodatkowo chronić przed uszkodzeniem danych, każda
LZ4
skompresowana partia Apache Arrow zawiera terazLZ4
sumy kontrolne zawartości i bloków. Zobacz opis formatu ramek LZ4.wbudowany sterownik Oracle JDBC: przetwarzanie bezserwerowe ma teraz wbudowany sterownik Oracle JDBC. Jeśli używasz pliku JAR sterownika JDBC przekazanego przez klienta za pośrednictwem
DriverManager
, musisz ponownie napisać skrypty, aby jawnie użyć niestandardowego pliku JAR. W przeciwnym razie jest używany wbudowany sterownik. Ten sterownik obsługuje jedynie federację Lakehouse. W przypadku innych przypadków użycia należy podać własny sterownik.Bardziej szczegółowe błędy dla tabel delty, do których uzyskiwano dostęp za pomocą ścieżek: Nowe doświadczenie użytkownika związane z komunikatami o błędach dla tabel delty dostępnych przy użyciu ścieżek jest teraz dostępne. Wszystkie wyjątki są teraz przekazywane do użytkownika. Wyjątek
DELTA_MISSING_DELTA_TABLE
jest teraz zarezerwowany, gdy nie można odczytać podstawowych plików jako tabeli delty.
Zmiany zachowania
Zmiana zrywająca zgodność: Hostowana aplikacja RStudio jest wycofana z użycia: Z tej wersji, Serwer RStudio hostowany w usłudze Databricks jest wycofany z użycia i niedostępny w dowolnym obszarze roboczym usługi Azure Databricks uruchomionym w środowisku obliczeniowym bezserwerowym. Aby dowiedzieć się więcej i zapoznać się z listą alternatyw dla programu RStudio, zobacz zakończenie obsługi programu RStudio Server.
Zmiana łamiąca zgodność: usunięcie wsparcia dla zmiany
byte
,short
,int
ilong
na szersze typy: Aby zapewnić spójne działanie w tabelach Delta i Iceberg, następujące zmiany typu danych nie mogą być już stosowane do tabel z włączoną funkcją rozszerzania typu :-
byte
short
,int
ilong
dodecimal
. -
byte
,short
iint
dodouble
.
-
Poprawne analizowanie wzorców wyrażeń regularnych z negacją w zagnieżdżonym grupowaniu znaków: Ta wersja zawiera zmianę w celu obsługi poprawnego analizowania 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]]
.Ulepszanie wykrywania zduplikowanych dopasowań w usłudze Delta Lake
MERGE
:MERGE
uwzględnia teraz warunki określone w klauzuliWHEN MATCHED
. Zobacz operacje Upsert w tabeli usługi Delta Lake przy użyciu scalania.Funkcja
addArtifact()
jest teraz spójna w różnych typach obliczeniowych: Gdy używaszaddArtifact(archive = True)
do dodawania zależności do bezserwerowych zasobów obliczeniowych, archiwum jest automatycznie rozpakowane. Ta zmiana sprawia, że zachowanieaddArtifact(archive = True)
jest spójne z obliczeniami pojedynczego użytkownika, które obsługuje już automatyczne rozpakowywanie archiwów.Typ danych
VARIANT
nie może być już używany z operacjami wymagającymi porównań: W zapytaniach zawierających typ danychVARIANT
nie można użyć następujących klauzul ani operatorów:DISTINCT
INTERSECT
EXCEPT
UNION
DISTRIBUTE BY
Ponadto nie można używać tych funkcji ramki danych:
df.dropDuplicates()
df.repartition()
Te operacje wykonują porównania i porównania korzystające z
VARIANT
typu danych generują niezdefiniowane wyniki i nie są obsługiwane w usłudze Databricks. Jeśli używasz typuVARIANT
w obciążeniach lub tabelach usługi Azure Databricks, usługa Databricks zaleca następujące zmiany:- Zaktualizuj zapytania lub wyrażenia, żeby wyraźnie rzutować
VARIANT
wartości na typy danych inne niżVARIANT
. - Jeśli masz pola, które muszą być używane z dowolną z powyższych operacji, wyodrębnij te pola z
VARIANT
typu danych i zapisz je przy użyciu typów danych innych niżVARIANT
.
Zobacz Zapytanie o wariant danych.
Poprawki błędów
- Przesunięcia strefy czasowej obejmują teraz sekundy, gdy są serializowane do CSV, JSON i XML: Znaczniki czasu z przesunięciami strefy czasowej zawierającymi sekundy (częste w znacznikach sprzed 1900 r.) wcześniej pomijały sekundy podczas serializacji do CSV, JSON i XML. Domyślne formatowanie znacznika czasu zostało naprawione i teraz zwraca poprawne wartości przesunięcia dla tych znaczników czasu.
Inne zmiany
-
zmieniono nazwy kodów błędów dla źródła przesyłania strumieniowego ze strukturą
cloudFiles
: Zmieniono nazwy następujących kodów błędów:-
_LEGACY_ERROR_TEMP_DBR_0143
zmieniono nazwę naCF_INCORRECT_STREAM_USAGE
. -
_LEGACY_ERROR_TEMP_DBR_0260
zmieniono nazwę naCF_INCORRECT_BATCH_USAGE
.
-
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 przy użyciu ALTER TABLE: Możesz teraz włączyć UniForm Iceberg na istniejących tabelach bez ponownego zapisywania plików danych. Zobacz , jak włączyć odczyty Iceberg w 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 zezwalać optymalizatorowi na poleganie na niewymuszonych ograniczeniach kluczy obcych: Aby poprawić wydajność zapytań, można teraz określić słowo kluczowe
RELY
dlaFOREIGN KEY
ograniczeń podczas tworzenia CREATE lub modyfikacji ALTER tabeli. -
Równoległe uruchamianie zadań dla selektywnych nadpisań: Selektywne nadpisywanie przy użyciu
replaceWhere
teraz przeprowadza zadania, które jednocześnie usuwają dane i wstawiają nowe dane, poprawiając wydajność zapytań i wykorzystanie klastra. -
Ulepszona wydajność strumienia danych zmiany z selektywnymi zastępowaniami: Selektywne zastępowania przy użyciu
replaceWhere
w tabelach ze strumieniem danych zmiany nie zapisują już odrębnych plików dla danych o zmianach dla wstawionych danych. Te operacje używają ukrytej kolumny_change_type
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ąć funkcję tabeli
checkConstraints
z tabeli delty przy użyciuALTER TABLE table_name DROP FEATURE checkConstraints
. Zobacz Wyłączanie ograniczeń sprawdzania.
Zmiany zachowania
Zmiana powiązania schematu dla widoków: Gdy typy danych w podstawowym 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 rekompensuje, stosując regularne zasady rzutowania tam, gdzie to możliwe. Ta zmiana umożliwia usłudze Databricks łatwiejsze tolerowanie zmian w schemacie 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, kolumna! NULL
lub właściwość pola,! IN
i ! między należy zastąpić:CREATE ... IF NOT EXISTS
,IS NOT NULL
,NOT NULL
kolumny lub właściwości pola,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 kolumn w widokach: usługa Databricks obsługuje CREATE VIEW z nazwanymi kolumnami i komentarzami kolumn.
Specyfikacja typów kolumn,
NOT NULL
ograniczeń lubDEFAULT
była tolerowana w składni bez żadnego wpływu. 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.dodanie ograniczenia
CHECK
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 instrukcjaALTER TABLE ADD CONSTRAINT
zawierająca ograniczenieCHECK
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:
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
: teraz możesz użyć składni gwiazdki (*
) w klauzuli WHERE
, aby odwołać się do wszystkich kolumn z listy SELECT
.
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 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
)
Zadanie na bezserwerowych obliczeniach zakończy się niepowodzeniem, jeśli ustawisz konfigurację platformy Spark, która nie znajduje się na tej liście.
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 typu
CHAR
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 na TIMESTAMP zgłaszają wyjątek dla przepełnionych wartości: 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ł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 zwracające ciągi nie konwertują już niejawnie wartości innych 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 zwracanymi
timestamp
nie zastosowują już niejawnie konwersji strefy czasowej do znaczników czasu.
- Funkcje zdefiniowane przez użytkownika zwracające ciągi nie konwertują już niejawnie wartości innych niż ciągi na ciągi. Wcześniej funkcje zdefiniowane przez użytkownika z zwracanym typem