Releaseopmerkingen voor serverloze compute
In dit artikel worden de functies en het gedrag uitgelegd die momenteel beschikbaar en gepland zijn op serverloze berekeningen voor notebooks en taken.
Zie Verbinding maken met serverloze berekeningen voor meer informatie over serverloze berekeningen.
Azure Databricks brengt regelmatig updates uit voor serverloze berekeningen, en werkt automatisch de serverloze rekenruntime bij om verbeteringen en upgrades naar het platform te ondersteunen. Alle gebruikers krijgen dezelfde updates, die gedurende een korte periode worden geïmplementeerd.
serverloze omgevingsversies
Databricks serverloze berekening voor notebooks en taken bevat een architectuur op basis van Spark Connect, waardoor onafhankelijke engine-upgrades worden ingeschakeld zonder dat dit van invloed is op de toepassing. Om ervoor te zorgen dat toepassingscompatibiliteit wordt gegarandeerd, gebruiken serverloze workloads een versie van de API, ook wel de omgevingsversie of -client genoemd, die compatibel blijft met nieuwere serverversies.
De nieuwste omgevingsversie blijft updates ontvangen totdat er een nieuwe versie wordt uitgebracht. Gebruikers kunnen kiezen uit een van de volgende ondersteunde omgevingsversies:
Opmerkingen bij de release
Deze sectie bevat releaseopmerkingen voor serverloze berekeningen. Releaseopmerkingen zijn ingedeeld op jaar en week van het jaar. Serverloze compute wordt altijd uitgevoerd met behulp van de laatst uitgebrachte versie die hier wordt vermeld.
Versie 15.4
28 oktober 2024
Deze serverloze compute-release komt ongeveer overeen met Databricks Runtime 15.4
Nieuwe functies
-
UTF-8-validatiefuncties: in deze release worden de volgende functies geïntroduceerd voor het valideren van UTF-8-tekenreeksen:
- is_valid_utf8 gecontroleerd of een tekenreeks een geldige UTF-8-tekenreeks is.
- make_valid_utf8 converteert een mogelijk ongeldige UTF-8-tekenreeks naar een geldige UTF-8-tekenreeks met vervangingstekens.
- validate_utf8 genereert een fout als de invoer geen geldige UTF-8-tekenreeks is.
-
try_validate_utf8 retourneert
NULL
als de invoer geen geldige UTF-8-tekenreeks is.
- UniForm Iceberg inschakelen met behulp van ALTER TABLE: U kunt UniForm Iceberg nu inschakelen op bestaande tabellen zonder gegevensbestanden opnieuw te schrijven. Zie Ijsberg-leesbewerkingen inschakelen voor een bestaande tabel.
-
try_url_decode functie: in deze release wordt de functie try_url_decode geïntroduceerd, waarmee een tekenreeks met URL-codering wordt gedecodeerd. Als de tekenreeks niet de juiste indeling heeft, retourneert
NULL
de functie in plaats van een fout op te geven. -
U kunt de optimizer desgewenst laten vertrouwen op niet-afgedwongen beperkingen voor refererende sleutels: Als u de prestaties van query's wilt verbeteren, kunt u nu het
RELY
trefwoord opgeven voorFOREIGN KEY
beperkingen wanneer u een tabel MAAKT of WIJZIGt . -
Geparallelliseerde taakuitvoeringen voor selectief overschrijven: selectief overschrijven met behulp van
replaceWhere
nu uitgevoerde taken waarmee gegevens worden verwijderd en nieuwe gegevens parallel worden ingevoegd, waardoor de queryprestaties en het clustergebruik worden verbeterd. -
Verbeterde prestaties voor wijzigingenfeed met selectieve overschrijven: selectief overschrijven met behulp van
replaceWhere
tabellen met wijzigingenfeed schrijft geen afzonderlijke wijzigingsgegevensbestanden meer voor ingevoegde gegevens. Deze bewerkingen maken gebruik van een verborgen_change_type
kolom die aanwezig is in de onderliggende Parquet-gegevensbestanden om wijzigingen vast te leggen zonder schrijfversterking. -
Verbeterde querylatentie voor de
COPY INTO
opdracht: deze release bevat een wijziging die de querylatentie voor deCOPY INTO
opdracht verbetert. Deze verbetering wordt geïmplementeerd door het laden van de status door de RocksDB-statusopslag asynchroon te maken. Met deze wijziging ziet u een verbetering in de begintijden voor query's met grote statussen, zoals query's met een groot aantal al opgenomen bestanden. -
Ondersteuning voor het verwijderen van de tabelfunctie voor controlebeperkingen: u kunt de
checkConstraints
tabelfunctie nu verwijderen uit een Delta-tabel met behulp vanALTER TABLE table_name DROP FEATURE checkConstraints
. Zie Controlebeperkingen uitschakelen.
Gedragswijzigingen
Wijziging van schemabinding voor weergaven: Wanneer de gegevenstypen in de onderliggende query van een weergave veranderen van de gegevenstypen die worden gebruikt toen de weergave voor het eerst werd gemaakt, genereert Databricks geen fouten meer voor verwijzingen naar de weergave wanneer er geen veilige cast kan worden uitgevoerd.
In plaats daarvan compenseert de weergave waar mogelijk met behulp van reguliere cast-regels. Met deze wijziging kan Databricks tabelschemawijzigingen gemakkelijker tolereren.
Niet-gedocumenteerde
!
syntaxistolerantie voorNOT
buiten booleaanse logica niet toestaan: Databricks tolereert niet langer het gebruik van!
als synoniem voorNOT
buiten booleaanse logica. Deze wijziging vermindert verwarring, komt overeen met de SQL-standaard en maakt SQL draagbaarder. Voorbeeld:CREATE ... IF ! EXISTS
, IS ! Null,! NULL
kolom- of veldeigenschap,! IN
en ! BETWEEN moet worden vervangen door:CREATE ... IF NOT EXISTS
, kolomIS NOT NULL
- of veldeigenschap enNOT NULL
NOT IN
.NOT BETWEEN
De booleaanse voorvoegseloperator
!
(bijvoorbeeld!is_mgr
of!(true AND false)
) wordt niet beïnvloed door deze wijziging.Niet-gedocumenteerde en niet-verwerkte gedeelten van de syntaxis van kolomdefinities in weergaven niet mogelijk maken: Databricks ondersteunt CREATE VIEW met benoemde kolommen en kolomopmerkingen.
De specificatie van kolomtypen,
NOT NULL
beperkingen ofDEFAULT
is getolereerd in de syntaxis zonder effect. Databricks verwijdert deze syntaxistolerantie. Dit vermindert verwarring, komt overeen met de SQL-standaard en maakt toekomstige verbeteringen mogelijk.Consistente foutafhandeling voor Base64-decodering in Spark en Photon: in deze release wordt gewijzigd hoe Photon base64-decoderingsfouten verwerkt zodat deze overeenkomen met de Spark-verwerking van deze fouten. Vóór deze wijzigingen kon het pad voor het genereren van Photon- en Spark-code soms geen parseringsonderingen veroorzaken, terwijl de uitvoering door Spark correct werd geïnterpreteerd
IllegalArgumentException
ofConversionInvalidInputError
. Deze update zorgt ervoor dat Photon consistent dezelfde uitzonderingen genereert als Spark tijdens base64-decoderingsfouten, wat voorspelbare en betrouwbare foutafhandeling biedt.Als u een
CHECK
beperking toevoegt aan een ongeldige kolom, wordt nu de UNRESOLVED_COLUMN geretourneerd. WITH_SUGGESTION foutklasse: Om nuttigere foutberichten te bieden, wordt in Databricks Runtime 15.3 en hoger eenALTER TABLE ADD CONSTRAINT
instructie met eenCHECK
beperking die verwijst naar een ongeldige kolomnaam, de UNRESOLVED_COLUMN geretourneerd. WITH_SUGGESTION foutklasse. Eerder werd er eenINTERNAL_ERROR
geretourneerd.
De JDK wordt bijgewerkt van JDK 8 naar JDK 17
15 augustus 2024
Serverloze rekenkracht voor notebooks en werkstromen is gemigreerd van Java Development Kit (JDK) 8 naar JDK 17 aan de serverzijde. Deze upgrade omvat de volgende gedragswijzigingen:
Bugfixes
Corrigeer het parseren van regex-patronen met negatie in geneste tekengroepering: Met deze upgrade ondersteunt Azure Databricks nu de juiste parsering van regex-patronen met negatie in geneste tekengroepering. Wordt bijvoorbeeld [^[abc]]
geparseerd als 'elk teken dat niet een van 'abc' is.
Daarnaast was het photon-gedrag inconsistent met Spark voor geneste tekenklassen. Regex-patronen met geneste tekenklassen maken geen gebruik meer van Photon en gebruiken in plaats daarvan Spark. Een geneste tekenklasse is een patroon met vierkante haken binnen vierkante haken, zoals [[a-c][1-3]]
.
Versie 15.1
23 juli 2024
Deze serverloze rekenkrachtrelease komt ongeveer overeen met Databricks Runtime 15.1
Nieuwe functies
*
lijst.
Bijvoorbeeld: SELECT * FROM VALUES(1, 2) AS T(a1, a2) WHERE 1 IN(T.*)
.
Wijzigingen
Verbeterd foutherstel voor JSON-parsering: de JSON-parser die wordt gebruikt voor from_json()
expressies van JSON-pad, herstelt nu sneller van onjuiste syntaxis, wat resulteert in minder gegevensverlies.
Wanneer u een ongeldige JSON-syntaxis in een structveld, een matrixwaarde, een kaartsleutel of een toewijzingswaarde tegenkomt, wordt de JSON-parser nu alleen geretourneerd NULL
voor het onleesbare veld, de sleutel of het element. Volgende velden, sleutels of elementen worden correct geparseerd. Vóór deze wijziging heeft de JSON-parser de matrix, de struct of de kaart verlaten en geretourneerd NULL
voor de resterende inhoud.
Versie 14.3
15 april 2024
Dit is de eerste serverloze rekenversie. Deze versie komt ongeveer overeen met Databricks Runtime 14.3 met enkele wijzigingen die ondersteuning voor sommige niet-serverloze en verouderde functies verwijderen.
Ondersteunde Spark-configuratieparameters
Om de configuratie van Spark op serverloze berekeningen te automatiseren, heeft Azure Databricks de ondersteuning verwijderd voor het handmatig instellen van de meeste Spark-configuraties. U kunt alleen de volgende Spark-configuratieparameters handmatig instellen:
-
spark.sql.legacy.timeParserPolicy
(standaardwaarde isCORRECTED
) -
spark.sql.session.timeZone
(standaardwaarde isEtc/UTC
) -
spark.sql.shuffle.partitions
(standaardwaarde isauto
) -
spark.sql.ansi.enabled
(standaardwaarde istrue
)
De taak wordt uitgevoerd op serverloze berekeningen mislukt als u een Spark-configuratie instelt die niet in deze lijst staat.
Zie Spark-configuratie-eigenschappen instellen in Azure Databricks voor meer informatie over het configureren van Spark-eigenschappen.
input_file functies zijn afgeschaft
De functies input_file_name(), input_file_block_length()en input_file_block_start() zijn afgeschaft. Het gebruik van deze functies wordt sterk afgeraden.
Gebruik in plaats daarvan de kolom met bestandsmetagegevens om metagegevens van bestanden op te halen.
Gedragswijzigingen
Serverloze compute-versie 2024.15 bevat de volgende gedragswijzigingen:
-
unhex(hexStr) bug fix: Wanneer u de
unhex(hexStr)
functie gebruikt, wordt hexStr altijd opgevuld naar een hele byte. Voorheen negeerde de onhexe functie de eerste halve byte. Bijvoorbeeld:unhex('ABC')
produceertx'0ABC'
nu in plaats vanx'BC'
. - Automatisch gegenereerde kolomaliassen zijn nu stabiel: wanneer het resultaat van een expressie wordt verwezen zonder een door de gebruiker opgegeven kolomalias, is deze automatisch gegenereerde alias nu stabiel. Het nieuwe algoritme kan leiden tot een wijziging van de eerder automatisch gegenereerde namen die worden gebruikt in functies zoals gerealiseerde weergaven.
-
Tabelscans met
CHAR
typevelden worden nu altijd opgevuld: Delta-tabellen, bepaalde JDBC-tabellen en externe gegevensbronnen slaan CHAR-gegevens op in niet-opgevulde vorm. Bij het lezen worden de gegevens nu in Azure Databricks opgeslagen met spaties naar de gedeclareerde lengte om de juiste semantiek te garanderen. -
Casts from BIGINT/DECIMAL to TIMESTAMP throw an exception for overflowed values: Azure Databricks allows casting from BIGINT and DECIMAL to TIMESTAMP by treating the value as the number of seconds from the Unix epoch. Voorheen retourneerde Azure Databricks overloopwaarden, maar genereert nu een uitzondering in gevallen van overloop. Gebruik
try_cast
dit om NULL te retourneren in plaats van een uitzondering. -
PySpark UDF-uitvoering is verbeterd zodat deze overeenkomt met het exacte gedrag van UDF-uitvoering op rekenkracht van één gebruiker: De volgende wijzigingen zijn aangebracht:
- UDF's met een tekenreeks retourtype converteren niet langer impliciet niet-tekenreekswaarden naar tekenreeksen. Voorheen zouden UDF's met een retourtype van
str
een wrapper wordenstr(..)
toegepast op het resultaat, ongeacht het werkelijke gegevenstype van de geretourneerde waarde. - UDF's met
timestamp
retourtypen passen een tijdzoneconversie niet meer impliciet toe op tijdstempels.
- UDF's met een tekenreeks retourtype converteren niet langer impliciet niet-tekenreekswaarden naar tekenreeksen. Voorheen zouden UDF's met een retourtype van