Dela via


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.

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 funktionen from_avro och avro 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() är NULL.
    • 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 klassen DeltaMergeBuilder. Använd withSchemaEvolution() för att aktivera automatisk schemautveckling under MERGE å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ända VACUUM 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 parametern SYNC METADATA med kommandot REPAIR 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 nu LZ4 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 DriverManagermå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 och long 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, shortoch intlong till decimal.
    • byte, shortoch int till double.
  • 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 i WHEN 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änder addArtifact(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ör addArtifact(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 en VARIANT 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änder VARIANT 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 till CF_INCORRECT_STREAM_USAGE.
    • _LEGACY_ERROR_TEMP_DBR_0260 har bytt namn till CF_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ör FOREIGN 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ör COPY 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 av ALTER 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 tolererar NOT extern boolesk logik: Databricks tolererar inte längre användning av ! som synonym för NOT 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 och NOT 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 eller DEFAULT 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 eller ConversionInvalidInputError. 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 en ALTER TABLE ADD CONSTRAINT-instruktion som innehåller en CHECK begränsning som refererar till ett ogiltigt kolumnnamn UNRESOLVED_COLUMN. WITH_SUGGESTION felklass. Tidigare returnerades en INTERNAL_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 är CORRECTED)
  • spark.sql.session.timeZone (Standardvärdet är Etc/UTC)
  • spark.sql.shuffle.partitions (Standardvärdet är auto)
  • spark.sql.ansi.enabled (Standardvärdet är true)

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') producerar x'0ABC' nu i stället för x'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 en str(..) 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.