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 get samma uppdateringar, distribuerade 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 select från vilken som helst av de 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.

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 tables utan att skriva om datafiler. Se till att aktivera iceberg-läsningar på en befintlig table.
  • 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.
  • Alternativt kan du låta optimeraren förlita sig på ej tvingande främmande nyckelbegränsningar: För att förbättra frågeprestanda kan du nu ange nyckelordet RELY för FOREIGN KEY begränsningar när du SKAPAR eller ÄNDRAR en table.
  • Parallelliserade jobbkörningar för selektiva överskrivningar: Selektiva överskrivningar med replaceWhere kör nu jobb som tar bort data och insert 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 på tables med ändringsdataflöde skriver inte längre separata ändringsdatafiler för infogade data. Dessa operationer använder en dold _change_typecolumn som finns i de underliggande Parquet datafilerna för att registrera ändringar utan ökad skrivbelastning.
  • 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 kontrollbegränsningarna table funktionen: Du kan nu ta bort funktionen checkConstraintstable från en Delta-table med hjälp av ALTER TABLE table_name DROP FEATURE checkConstraints. Se Inaktivera kontrollbegränsningar.

Funktionalitetsförändringar

  • Schema bindningsändring för views: 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 genom att använda de vanliga regler som är möjliga where. Med den här ändringen kan Databricks tolerera tableschema ändringar enklare.

  • 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, ! NULLcolumn eller fältegenskap, ! IN och ! BETWEEN- måste ersättas med:

    CREATE ... IF NOT EXISTS, IS NOT NULL, NOT NULLcolumn 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 column definitionssyntax i views: Databricks stöder CREATE VIEW med namngivna columns och column kommentarer.

    Specifikationen av column typer, NOT NULL begränsningar eller DEFAULT har tolererats i syntaxen utan having någon effekt. Databricks remove 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 update 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 CHECKconstraint på en ogiltig column 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 CHECKconstraint som refererar till ett ogiltigt column namn 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:

Felkorrigeringar

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

Support för stjärnsyntaxen (*) i WHERE-satsen: Du kan nu använda stjärnsyntaxen (*) i WHERE-satsen för att hänvisa till alla columns från SELECTlist.

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 remove stöd för vissa icke-serverlösa och äldre funktioner.

Spark-konfiguration som stöds parameters

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 set följande Spark-konfiguration manuellt parameters:

  • 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 set en Spark-konfiguration som inte finns i den här list.

Mer information om hur du konfigurerar Spark-egenskaper finns i Set 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 filmetadata column 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 column alias är nu stabila: När resultatet av ett uttryck refereras utan ett användardefinerat column alias ä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 materialiserad views.
  • Table genomsökningar med fält av CHAR typ är nu alltid vadderade: Delta tables, vissa JDBC-tablesoch 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.
  • Omvandlingar från BIGINT/DECIMAL till TIMESTAMP utlöser ett undantag vid överflöde values: Azure Databricks tillåter omvandling från BIGINT och DECIMAL till TIMESTAMP genom att behandla värdet som antalet sekunder från Unix-epoken. Tidigare skulle Azure Databricks returnera överflödade values men genererar nu ett undantag vid överflöd. 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äng values 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 timezone konvertering på tidsstämplar.