Delen via


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 voor FOREIGN 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 de COPY 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 van ALTER 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 voor NOT buiten booleaanse logica niet toestaan: Databricks tolereert niet langer het gebruik van ! als synoniem voor NOT 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 en NOT NULLNOT 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 of DEFAULT 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 of ConversionInvalidInputError. 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 een ALTER TABLE ADD CONSTRAINT instructie met een CHECK beperking die verwijst naar een ongeldige kolomnaam, de UNRESOLVED_COLUMN geretourneerd. WITH_SUGGESTION foutklasse. Eerder werd er een INTERNAL_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 is CORRECTED)
  • spark.sql.session.timeZone (standaardwaarde is Etc/UTC)
  • spark.sql.shuffle.partitions (standaardwaarde is auto)
  • spark.sql.ansi.enabled (standaardwaarde is true)

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') produceert x'0ABC' nu in plaats van x'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 worden str(..) 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.