Viktig information om serverlös beräkning
Den här artikeln beskriver de funktioner och beteenden som för närvarande är tillgängliga och kommande vid serverlös beräkning för notebook-filer och jobb.
Mer information om serverlös beräkning finns i Ansluta till serverlös beräkning.
Azure Databricks släpper regelbundet uppdateringar av serverlös beräkning och uppgraderar automatiskt den serverlösa beräkningskörningen för att stödja förbättringar och uppgraderingar till plattformen. Alla användare får samma uppdateringar som distribueras under en kort tidsperiod.
serverlösa miljöversioner
Databricks serverlös beräkning för notebook-filer och jobb har en Spark Connect-baserad arkitektur som möjliggör oberoende motoruppgraderingar utan att påverka programmet. För att säkerställa programkompatibilitet använder serverlösa arbetsbelastningar ett versions-API, som kallas miljöversion eller klient, som fortfarande är kompatibelt med nyare serverversioner.
Den senaste miljöversionen fortsätter att ta emot uppdateringar tills en ny version släpps. Användare kan välja från någon av följande miljöversioner som stöds:
Viktig information
Det här avsnittet innehåller viktig information för serverlös beräkning. Viktig information organiseras efter år och vecka på året. Serverlös beräkning körs alltid med den senaste versionen som visas här.
- Hög minnesinställning tillgänglig på serverlösa notebooks (förhandsversion offentlig)
- version 16.1
- version 15.4
- JDK uppgraderas från JDK 8 till JDK 17
- Version 15.1
- Version 14.3
Inställning för stort minne är tillgänglig på serverlösa anteckningsböcker (Offentlig förhandsversion)
7 februari 2025
Nu kan du konfigurera mer minne för dina serverlösa anteckningsboksarbetsbelastningar. Den här inställningen kan tillämpas på både interaktiva och schemalagda notebook-arbetsbelastningar.
Serverlös användning med högt minne har en högre DBU-utsläppsfrekvens än standardminnet.
Mer information finns i Konfigurera högt minne för dina serverlösa arbetsbelastningar.
Version 16.1
5 februari 2025
Den här serverlösa beräkningsversionen motsvarar ungefär Databricks Runtime 16.0 och Databricks Runtime 16.1.
Nya funktioner
Avro-stöd för rekursivt schema: Du kan nu använda alternativet
recursiveFieldMaxDepth
med funktionenfrom_avro
ochavro
datakälla. Det här alternativet anger det maximala djupet för schemarekursion på Avro-datakällan. Se Läsa och skriva strömmande Avro-data.Utökat stöd för Confluent Schema Registry for Avro: Serverless stöder nu Avro-schemareferens med Confluent Schema Registry. Se Autentisera till ett externt Confluent-schemaregister.
Framtvinga relustering av tabeller med flytande klustring: Du kan nu använda
OPTIMIZE FULL
syntaxen för att framtvinga omläggning av alla poster i en tabell med flytande klustring aktiverat. Se Tvångsomgruppering för alla poster.Delta-API:erna för Python stöder nu identitetskolumner: Du kan nu använda Delta-API:erna för Python för att skapa tabeller med identitetskolumner. Se Använda identitetskolumner i Delta Lake.
Skapa flytande klustrerade tabeller under direktuppspelningsskrivningar: Du kan nu använda
clusterBy
för att aktivera flytande klustring när du skapar nya tabeller med Structured Streaming-ramverket. Se Aktivera flytande klustring.Stöd för OPTIMIZE FULL-satsen: Serverlös beräkning stöder nu satsen OPTIMIZE FULL. Den här satsen optimerar alla poster i en tabell som använder flytande klustring, inklusive data som tidigare kan ha klustrats.
Stöd för alternativspecifikation med WITH-alternativ i INSERT och tabellreferens: Serverless compute stöder nu en alternativspecifikation för tabellreferenser och tabellnamn i en
INSERT
-instruktion som kan användas för att kontrollera datakällornas beteende.Nya SQL-funktioner: Följande SQL-funktioner är nu tillgängliga för serverlös beräkning:
- try_url_decode är en feltolerant version av url_decode.
-
zeroifnull returnerar 0 om indatauttrycket till funktionen
zeroifnull()
ärNULL
. -
nullifzero returnerar
NULL
om indata är 0 eller dess indata om det inte är 0. - dagnamn (expr) returnerar den engelska förkortningen med tre bokstäver för veckodagen för det angivna datumet.
- uniform(expr1, expr2 [,seed]) returnerar ett slumpmässigt värde med oberoende och identiskt distribuerade värden inom det angivna intervallet med tal.
-
randstr(längd) returnerar en slumpmässig sträng med
length
alfanumeriska tecken.
Aktivera automatisk schemautveckling vid sammanslagning av data i en Delta-tabell: Stöd har lagts till för medlemsvariabeln
withSchemaEvolution()
i klassenDeltaMergeBuilder
. AnvändwithSchemaEvolution()
för att aktivera automatisk schemautveckling underMERGE
åtgärder. Exempel:mergeBuilder.whenMatched(...).withSchemaEvolution().execute()}}
Stöd för sortering i Apache Spark finns i offentlig förhandsversion: Du kan nu tilldela språkmedvetna, skiftlägeskänsliga och åtkomstokänsliga sorteringar till
STRING
kolumner och uttryck. Dessa sorteringar används i strängjämförelser, sortering, grupperingsåtgärder och många strängfunktioner. Se sortering.Stöd för sortering i Delta Lake finns i offentlig förhandsversion: Du kan nu definiera sortering för kolumner när du skapar eller ändrar en Delta-tabell. Se stöd för sorteringsordning för Delta Lake.
LITE
läget för vakuum finns i offentlig förhandsversion: Du kan nu användaVACUUM table_name LITE
för att utföra en vakuumåtgärd med lägre vikt som utnyttjar metadata i Delta-transaktionsloggen. Se Fullt kontra lite-läge och VACUUM.Stöd för parameterisering av
USE CATALOG with IDENTIFIER
-satsen:IDENTIFIER-satsen stöds nu för USE CATALOG-instruktionen. Med det här stödet kan du parameterisera den aktuella katalogen baserat på en strängvariabel eller parametermarkör.COMMENT ON COLUMN stöd för tabeller och vyer: Instruktionen COMMENT ON har nu stöd för att ändra kommentarer för vy- och tabellkolumner.
Namngivna parameteranrop för fler funktioner: Följande funktioner stöder namngivna parameteranrop:
Parametern
SYNC METADATA
till kommandot REPAIR TABLE stöds med Hive-metaarkivet: Du kan nu använda parameternSYNC METADATA
med kommandotREPAIR TABLE
för att uppdatera metadata för en hanterad Hive-metaarkivtabell. Se REPAIR TABLE.Förbättrad dataintegritet för komprimerade Apache Arrow-batchar: För att ytterligare skydda mot skadade data innehåller varje
LZ4
komprimerad Apache Arrow-batch nuLZ4
innehålls- och block-kontrollsummor. Se beskrivning av LZ4-ramformat .Inbyggd Oracle JDBC-drivrutin: Serverlös datorbearbetning har nu Oracle JDBC-drivrutin inbyggd. Om du använder en JDBC-drivrutins-JAR-fil uppladdad av kund via
DriverManager
måste du skriva om skriptfilerna för att specifikt använda den anpassade JAR-filen. Annars används den inbyggda drivrutinen. Den här drivrutinen stöder endast Lakehouse Federation. För andra användningsfall måste du ange en egen drivrutin.Mer detaljerade fel för Delta-tabeller som nås med sökvägar: En ny felmeddelandeupplevelse för Delta-tabeller som används med hjälp av sökvägar är nu tillgänglig. Alla undantag vidarebefordras nu till användaren. Undantaget
DELTA_MISSING_DELTA_TABLE
är nu reserverat för när underliggande filer inte kan läsas som en Delta-tabell.
Funktionalitetsförändringar
Brytande ändring: Värdbaserade RStudio är livsslut: Med den här versionen är Databricks-värdbaserade RStudio Server livsslut och otillgänglig på alla Azure Databricks-arbetsytor som körs på serverlös beräkning. Mer information och en lista över alternativ till RStudio finns i Hosted RStudio Server utfasning.
Icke-bakåtkompatibel ändring: Borttagning av stöd för ändring av
byte
,short
,int
ochlong
typer till bredare typer: För att säkerställa konsekvent beteende i Delta- och Iceberg-tabeller kan följande datatypändringar inte längre tillämpas på tabeller med funktionen typbreddning aktiverad.-
byte
,short
ochint
long
tilldecimal
. -
byte
,short
ochint
tilldouble
.
-
Korrekt parsning av regexmönster med negation i kapslad teckengruppering: Den här versionen innehåller en ändring som stöder korrekt parsning av regexmönster med negation i kapslad teckengruppering. Till exempel
[^[abc]]
parsas som "alla tecken som inte är ett av "abc".Dessutom var Photon-beteendet inkonsekvent med Spark för kapslade teckenklasser. Regex-mönster som innehåller kapslade teckenklasser använder inte längre Photon och använder i stället Spark. En kapslad teckenklass är ett mönster som innehåller hakparenteser inom hakparenteser, till exempel
[[a-c][1-3]]
.Förbättra identifiering av dubblettmatchning i Delta Lake
MERGE
:MERGE
beaktar nu de villkor som anges iWHEN MATCHED
-satsen. Se Upsert i en Delta Lake-tabell genom att använda merge.Funktionen
addArtifact()
är nu konsekvent mellan olika beräkningstyper: När du använderaddArtifact(archive = True)
för att lägga till ett beroende för serverlös beräkning packas arkivet upp automatiskt. Den här ändringen göraddArtifact(archive = True)
beteendet konsekvent med beräkning av enskilda användare, som redan stöder automatisk uppackning av arkiv.Datatypen
VARIANT
kan inte längre användas med åtgärder som kräver jämförelser: Du kan inte använda följande satser eller operatorer i frågor som innehåller enVARIANT
datatyp:DISTINCT
INTERSECT
EXCEPT
UNION
DISTRIBUTE BY
Dessutom kan du inte använda dessa DataFrame-funktioner:
df.dropDuplicates()
df.repartition()
Dessa åtgärder utför jämförelser och jämförelser som använder
VARIANT
datatypen ger odefinierade resultat och stöds inte i Databricks. Om du använderVARIANT
typ i dina Azure Databricks-arbetsbelastningar eller -tabeller rekommenderar Databricks följande ändringar:- Uppdatera frågor eller uttryck för att uttryckligen omvandla
VARIANT
värden till icke-VARIANT
datatyper. - Om du har fält som måste användas med någon av ovanstående åtgärder extraherar du dessa fält från
VARIANT
datatypen och lagrar dem med hjälp av icke-VARIANT
datatyper.
Se Frågevariantdata.
Felkorrigeringar
- Tidszonsförskjutningar innehåller nu även sekunder när de serialiseras till CSV, JSON och XML: Tidsstämplar med tidszonsförskjutningar som inkluderar sekunder (vanliga för tidsstämplar från före 1900) utelämnade sekunderna när de serialiserades till CSV, JSON och XML. Standardformatet för tidsstämplar har åtgärdats och returnerar nu rätt förskjutningsvärden för dessa tidsstämplar.
Andra ändringar
-
Felkoder för
cloudFiles
Strukturerad direktuppspelning: Följande felkoder har bytt namn:-
_LEGACY_ERROR_TEMP_DBR_0143
har bytt namn tillCF_INCORRECT_STREAM_USAGE
. -
_LEGACY_ERROR_TEMP_DBR_0260
har bytt namn tillCF_INCORRECT_BATCH_USAGE
.
-
Version 15.4
den 28 oktober 2024
Den här serverlösa beräkningsversionen motsvarar ungefär Databricks Runtime 15.4
Nya funktioner
-
UTF-8-valideringsfunktioner: Den här versionen introducerar följande funktioner för validering av UTF-8-strängar:
- is_valid_utf8 verifierat om en sträng är en giltig UTF-8-sträng.
- make_valid_utf8 konverterar en potentiellt ogiltig UTF-8-sträng till en giltig UTF-8-sträng med ersättningstecken.
- validate_utf8 genererar ett fel om indata inte är en giltig UTF-8-sträng.
-
try_validate_utf8 returnerar
NULL
om indata inte är en giltig UTF-8-sträng.
- Aktivera UniForm Iceberg med hjälp av ALTER TABLE: Du kan nu aktivera UniForm Iceberg på befintliga tabeller utan att skriva om datafiler. Se Aktivera Iceberg-läsningar på en befintlig tabell.
-
try_url_decode funktion: Den här versionen introducerar funktionen try_url_decode , som avkodar en URL-kodad sträng. Om strängen inte har rätt format returnerar
NULL
funktionen i stället för att skapa ett fel. -
Om du vill kan du låta optimeraren förlita sig på icke-tvingade utländska nyckelbevakningar: För att förbättra frågeprestandan kan du nu ange nyckelordet
RELY
förFOREIGN KEY
krav när du CREATE eller ALTER en tabell. -
Parallelliserade jobbkörningar för selektiva överskrivningar: Selektiva överskrivningar med
replaceWhere
kör nu jobb som tar bort data och infogar nya data parallellt, vilket förbättrar frågeprestanda och klusteranvändning. -
Förbättrad prestanda för ändringsdataflöde med selektiva överskrivningar: Selektiva överskrivningar med
replaceWhere
i tabeller med ändringsdataflöde skriver inte längre separata ändringsdatafiler för infogade data. Dessa operationer använder en dold_change_type
-kolumn som finns i Parquet-datafilerna för att registrera ändringar utan skrivförstärkning. -
COPY INTO
Den här versionen innehåller en ändring som förbättrar frågesvarstiden förCOPY INTO
kommandot. Den här förbättringen implementeras genom att göra inläsningen av tillståndet av RocksDB-tillståndsarkivet asynkront. Med den här ändringen bör du se en förbättring av starttiderna för frågor med stora tillstånd, till exempel frågor med ett stort antal redan inmatade filer. -
Stöd för att ta bort tabellfunktionen för kontrollbegränsningar: Du kan nu släppa
checkConstraints
tabellfunktionen från en Delta-tabell med hjälp avALTER TABLE table_name DROP FEATURE checkConstraints
. Se Inaktivera kontrollbegränsningar.
Funktionalitetsförändringar
Schemabindningsändring för vyer: När datatyperna i en vys underliggande fråga ändras från de som användes när vyn först skapades genererar Databricks inte längre fel för referenser till vyn när ingen säker gjutning kan utföras.
I stället kompenserar vyn med hjälp av vanliga om möjligt regler. Den här ändringen gör det enklare för Databricks att tolerera ändringar i tabellschemat.
Tillåt inte odokumenterad
!
syntax tolererarNOT
extern boolesk logik: Databricks tolererar inte längre användning av!
som synonym förNOT
utanför boolesk logik. Den här ändringen minskar förvirringen, överensstämmer med SQL-standarden och gör SQL mer portabelt. Till exempel:CREATE ... IF ! EXISTS
, IS ! null,! NULL
kolumn eller fältegenskap,! IN
och ! BETWEEN måste ersättas med:CREATE ... IF NOT EXISTS
,IS NOT NULL
,NOT NULL
kolumn- eller fältegenskap,NOT IN
ochNOT BETWEEN
.Den booleska prefixoperatorn
!
(t.ex.!is_mgr
eller!(true AND false)
) påverkas inte av den här ändringen.Tillåt inte odokumenterade och obearbetade delar av kolumndefinitionssyntaxen i vyer: Databricks stöder CREATE VIEW med namngivna kolumner och kolumnkommenterar.
Specifikationen av kolumntyper,
NOT NULL
begränsningar ellerDEFAULT
har tolererats i syntaxen utan att ha någon effekt. Databricks tar bort den här syntaxens tolerans. Detta minskar förvirringen, överensstämmer med SQL-standarden och möjliggör framtida förbättringar.Konsekvent felhantering för Base64-avkodning i Spark och Photon: Den här versionen ändrar hur Photon hanterar Base64-avkodningsfel för att matcha Spark-hanteringen av dessa fel. Före dessa ändringar kunde sökvägen för generering av Photon- och Spark-kod ibland inte generera parsningsfel, medan Spark tolkade körningen korrekt upphöjd
IllegalArgumentException
ellerConversionInvalidInputError
. Den här uppdateringen säkerställer att Photon konsekvent genererar samma undantag som Spark under Base64-avkodningsfel, vilket ger mer förutsägbar och tillförlitlig felhantering.Om du lägger till en
CHECK
begränsning för en ogiltig kolumn returneras nu UNRESOLVED_COLUMN. WITH_SUGGESTION felklass: Om du vill ge mer användbara felmeddelanden i Databricks Runtime 15.3 och senare returnerar enALTER TABLE ADD CONSTRAINT
-instruktion som innehåller enCHECK
begränsning som refererar till ett ogiltigt kolumnnamn UNRESOLVED_COLUMN. WITH_SUGGESTION felklass. Tidigare returnerades enINTERNAL_ERROR
.
JDK uppgraderas från JDK 8 till JDK 17
15 augusti 2024
Serverlös beräkning för notebook-filer och arbetsflöden har migrerats från Java Development Kit (JDK) 8 till JDK 17 på serversidan. Den här uppgraderingen innehåller följande beteendeändringar:
Korrekt parsning av regexmönster med negation i kapslad teckengruppering: Med den här uppgraderingen har Azure Databricks nu stöd för korrekt parsning av regexmönster med negation i kapslad teckengruppering. Till exempel
[^[abc]]
parsas som "alla tecken som inte är ett av "abc".Dessutom var Photon-beteendet inkonsekvent med Spark för kapslade teckenklasser. Regex-mönster som innehåller kapslade teckenklasser använder inte längre Photon och använder i stället Spark. En kapslad teckenklass är ett mönster som innehåller hakparenteser inom hakparenteser, till exempel
[[a-c][1-3]]
.
Version 15.1
den 23 juli 2024
Den här serverlösa beräkningsversionen motsvarar ungefär Databricks Runtime 15.1
Nya funktioner
Stöd för stjärn- (*
) syntax i WHERE
-satsen: Du kan nu använda stjärnsyntaxen (*
) i WHERE
-satsen för att referera till alla kolumner från listan SELECT
.
Exempel: SELECT * FROM VALUES(1, 2) AS T(a1, a2) WHERE 1 IN(T.*)
Ändringar
Förbättrad felåterställning för JSON-parsning: JSON-parsern som används för from_json()
och JSON-sökvägsuttrycken återställs nu snabbare från felaktig syntax, vilket resulterar i mindre dataförlust.
När du stöter på en felaktigt formaterad JSON-syntax i ett structfält, ett matrisvärde, en kartnyckel eller ett kartvärde, returnerar NULL
JSON-parsern nu endast för det olästa fältet, nyckeln eller elementet. Efterföljande fält, nycklar eller element parsas korrekt. Före den här ändringen övergav JSON-parsern parsningen av matrisen, structen eller kartan och returnerade NULL
för det återstående innehållet.
Version 14.3
den 15 april 2024
Det här är den första serverlösa beräkningsversionen. Den här versionen motsvarar ungefär Databricks Runtime 14.3 med vissa ändringar som tar bort stöd för vissa icke-serverlösa och äldre funktioner.
Spark-konfigurationsparametrar som stöds
För att automatisera konfigurationen av Spark på serverlös beräkning har Azure Databricks tagit bort stödet för att manuellt ställa in de flesta Spark-konfigurationer. Du kan bara ange följande Spark-konfigurationsparametrar manuellt:
-
spark.sql.legacy.timeParserPolicy
(Standardvärdet ärCORRECTED
) -
spark.sql.session.timeZone
(Standardvärdet ärEtc/UTC
) -
spark.sql.shuffle.partitions
(Standardvärdet ärauto
) -
spark.sql.ansi.enabled
(Standardvärdet ärtrue
)
Jobbkörningar på serverlös beräkning misslyckas om du anger en Spark-konfiguration som inte finns i den här listan.
Mer information om hur du konfigurerar Spark-egenskaper finns i Ange Spark-konfigurationsegenskaper på Azure Databricks.
input_file funktioner är inaktuella
Funktionerna input_file_name(), input_file_block_length()och input_file_block_start() har blivit inaktuella. Det rekommenderas inte att använda dessa funktioner.
Använd i stället kolumnen för filmetadata för att hämta information om filmetadata.
Beteendeändringar
Serverlös beräkningsversion 2024.15 innehåller följande beteendeändringar:
-
unhex(hexStr) felkorrigering: När du använder
unhex(hexStr)
funktionen är hexStr alltid vadderat vänster till en hel byte. Tidigare ignorerade unhex-funktionen den första halvbytet. Till exempel:unhex('ABC')
producerarx'0ABC'
nu i stället förx'BC'
. - Automatiskt genererade kolumnalias är nu stabila: När resultatet av ett uttryck refereras utan ett användardefinerat kolumnalias är det här automatiskt genererade aliaset nu stabilt. Den nya algoritmen kan resultera i en ändring av tidigare automatiskt genererade namn som används i funktioner som materialiserade vyer.
-
Tabellgenomsökningar med fält av
CHAR
typ är nu alltid vadderade: Delta-tabeller, vissa JDBC-tabeller och externa datakällor lagrar CHAR-data i icke-vadderad form. När du läser kommer Azure Databricks nu att fylla data med blanksteg till den deklarerade längden för att säkerställa rätt semantik. -
Konverteringar från BIGINT/DECIMAL till TIMESTAMP utlöser ett undantag för överflödsvärden: Azure Databricks tillåter konvertering från BIGINT och DECIMAL till TIMESTAMP genom att behandla värdet som antalet sekunder från Unix-epoken. Tidigare skulle Azure Databricks returnera spillda värden men genererar nu ett undantag vid spill. Använd
try_cast
för att returnera NULL i stället för ett undantag. -
PySpark UDF-körningen har förbättrats för att matcha det exakta beteendet för UDF-körning vid beräkning av en användare: Följande ändringar har gjorts:
- UDF:er med en strängreturtyp konverterar inte längre implicit icke-strängvärden till strängar. Tidigare skulle UDF:er med returtypen
str
tillämpa enstr(..)
omslutning på resultatet oavsett den faktiska datatypen för det returnerade värdet. - UDF:er med
timestamp
returtyper tillämpar inte längre implicit en tidszonskonvertering på tidsstämplar.
- UDF:er med en strängreturtyp konverterar inte längre implicit icke-strängvärden till strängar. Tidigare skulle UDF:er med returtypen