Sdílet prostřednictvím


Poznámky k verzi bezserverových výpočetních prostředků

Tento článek vysvětluje funkce a chování, které jsou aktuálně dostupné a nadcházející na výpočetních prostředcích bez serveru pro poznámkové bloky a úlohy.

Další informace o bezserverových výpočetních prostředcích najdete v tématu Připojení k výpočetním prostředkům bez serveru.

Azure Databricks pravidelně vydává aktualizace bezserverového výpočetního prostředí, které automaticky upgraduje bezserverový výpočetní modul runtime, aby podporoval vylepšení a upgrady na platformu. Všichni uživatelé dostávají stejné aktualizace get, které jsou rozšířeny v krátkém časovém období.

bezserverové verze prostředí

Bezserverové výpočetní prostředí Databricks pro poznámkové bloky a úlohy nabízí architekturu založenou na technologii Spark Connect, která umožňuje nezávislé upgrady modulu bez dopadu na aplikaci. Kvůli zajištění kompatibility aplikací používají bezserverové úlohy rozhraní API verze označované jako verze prostředí nebo klienta, které zůstává kompatibilní s novějšími verzemi serveru.

Nejnovější verze prostředí bude nadále dostávat aktualizace, dokud nebude vydána nová verze. Uživatelé můžou select z některé z následujících podporovaných verzí prostředí:

Poznámky k verzi

Tato část obsahuje poznámky k verzi pro bezserverové výpočetní prostředky. Poznámky k verzi jsou uspořádány podle roku a týdne v roce. Bezserverové výpočetní prostředí se vždy spouští pomocí nejnovější vydané verze uvedené zde.

Verze 15.4

28. října 2024

Tato bezserverová výpočetní verze přibližně odpovídá modulu Databricks Runtime 15.4.

Nové funkce

  • Ověřovací funkce UTF-8: Tato verze zavádí následující funkce pro ověřování řetězců UTF-8:
    • is_valid_utf8 ověřil, jestli je řetězec platným řetězcem UTF-8.
    • make_valid_utf8 převede potenciálně neplatný řetězec UTF-8 na platný řetězec UTF-8 pomocí náhradních znaků.
    • validate_utf8 vyvolá chybu, pokud vstup není platným řetězcem UTF-8.
    • try_validate_utf8 vrátíNULL, pokud vstup není platným řetězcem UTF-8.
  • Povolit UniForm Iceberg pomocí ALTER TABLE: Nyní můžete povolit UniForm Iceberg na existujících tables bez přepsání datových souborů. Vizte Povolte čtení Icebergu na existujícím table.
  • try_url_decode funkce: Tato verze zavádí funkci try_url_decode , která dekóduje řetězec kódovaný adresou URL. Pokud řetězec není ve správném formátu, vrátí NULL funkce místo vyvolání chyby.
  • Volitelně umožňuje optimalizátoru spoléhat na nevymažená omezení cizího klíče: Ke zlepšení výkonu dotazů teď můžete zadat klíčové slovo RELY pro omezení FOREIGN KEY při VYTVOŘENÍ nebo ALTERtable.
  • Paralelizované úlohy pro selektivní přepisy: Selektivní přepisy pomocí replaceWhere nyní spouští úlohy, které paralelně odstraňují data a přidávají insert nová data, což zlepšuje výkon dotazů a využití clusteru.
  • Vylepšený výkon pro kanál změn dat s použitím selektivního přepsání: Selektivní přepisy pomocí replaceWhere na tables s datovým kanálem změn už nezapisují samostatné datové soubory změn pro vložená data. Tyto operace používají skrytou _change_typecolumn, která se nachází v podkladových datových souborech Parquet, k zaznamenávání změn bez amplifikace zápisu.
  • Vylepšená latence dotazu pro COPY INTO příkaz: Tato verze obsahuje změnu, která zlepšuje latenci dotazu pro COPY INTO příkaz. Toto vylepšení je implementováno tak, že načtení stavu úložištěm stavů RocksDB je asynchronní. Při této změně byste měli vidět vylepšení počátečních časů pro dotazy s velkými stavy, jako jsou dotazy s velkým počtem již přijatých souborů.
  • podpora pro odstranění funkce kontrolních omezení table: Funkci checkConstraintstable teď můžete odstranit z Delta table pomocí ALTER TABLE table_name DROP FEATURE checkConstraints. Viz Zakázání omezení kontroly.

Změny chování

  • Schema změna vazby pro views: Když se datové typy v podkladovém dotazu zobrazení změní z těch, které se použily při prvním vytvoření zobrazení, Databricks už nevyvolá chyby pro odkazy na zobrazení, pokud není možné provést bezpečné přetypování.

    Místo toho kompenzuje tím, že používá pravidla normálního přetypování které jsou where možná. Tato změna umožňuje Databricks tolerovat tableschema změny snadněji.

  • Zákaz nezdokumentované ! tolerance syntaxe pro NOT vnější logickou logiku: Databricks už nebude tolerovat použití ! jako synonyma pro NOT mimo logickou logiku. Tato změna snižuje nejasnosti, je v souladu se standardem SQL a usnadňuje přenosnost SQL. Příklad:

    CREATE ... IF ! EXISTS, IS ! NULL, ! NULLcolumn nebo vlastnost pole, ! IN a ! BETWEEN musí být nahrazeno tímto:

    CREATE ... IF NOT EXISTS, IS NOT NULL, NOT NULLcolumn nebo vlastnost pole, NOT IN a NOT BETWEEN.

    Na operátor logické předpony! (např. !is_mgr nebo !(true AND false)) tato změna nemá vliv.

  • zakázat nezdokumentované a nezpracované části syntaxe definice column v views: Databricks podporuje CREATE VIEW s pojmenovanými columns a column komentáři.

    Specifikace typů column, omezení NOT NULL nebo DEFAULT byla v syntaxi tolerována bez having jakéhokoli efektu. Databricks remove tuto syntaxi tolerance. Tím se sníží záměna, zarovná se se standardem SQL a umožní budoucí vylepšení.

  • Konzistentní zpracování chyb pro dekódování Base64 ve Sparku a Photonu: Tato verze mění způsob, jakým Photon zpracovává chyby dekódování Base64 tak, aby odpovídaly zpracování těchto chyb Sparku. Před těmito změnami se cesta generování kódu Photon a Spark někdy nepodařilo vyvolat výjimky analýzy, zatímco Spark interpretoval správně provedené IllegalArgumentException spuštění nebo ConversionInvalidInputError. Tato update zajišťuje, že Photon konzistentně vyvolává stejné výjimky jako Spark během chyb dekódování Base64 a poskytuje předvídatelnější a spolehlivější zpracování chyb.

  • Přidání CHECKconstraint na neplatný column nyní vrátí UNRESOLVED_COLUMN. WITH_SUGGESTION třída chyb: Chcete-li poskytovat užitečnější chybové zprávy, vrátí v Databricks Runtime 15.3 a vyšší příkaz ALTER TABLE ADD CONSTRAINT, který obsahuje CHECKconstraint odkazující na neplatný název column vrátí UNRESOLVED_COLUMN. WITH_SUGGESTION třída chyby. Dříve byla vrácena INTERNAL_ERROR .

JDK se upgraduje z JDK 8 na JDK 17.

15. srpna 2024

Bezserverové výpočetní prostředky pro poznámkové bloky a pracovní postupy se migrovaly ze sady Java Development Kit (JDK) 8 na JDK 17 na straně serveru. Tento upgrade zahrnuje následující změny chování:

Opravy chyb

Správná analýza vzorů regulárních výrazů s negací ve vnořeném seskupování znaků: Při tomto upgradu teď Azure Databricks podporuje správnou analýzu vzorů regulárních výrazů s negací ve vnořeném seskupování znaků. Bude například [^[abc]] analyzován jako "libovolný znak, který není jedním z "abc".

Kromě toho chování Photon bylo nekonzistentní se Sparkem pro vnořené třídy znaků. Vzory regulárních výrazů obsahující vnořené třídy znaků už nebudou používat Photon a místo toho budou používat Spark. Vnořená třída znaků je libovolný vzor obsahující hranaté závorky v hranatých závorkách, například [[a-c][1-3]].

Verze 15.1

23. července 2024

Tato bezserverová verze výpočetních prostředků přibližně odpovídá modulu Databricks Runtime 15.1.

Nové funkce

Podpora syntaxe hvězdičky (*) vklauzule WHERE: Nyní můžete pomocí syntaxe hvězdičky (*) v klauzuli WHERE odkazovat na všechny columns z SELECTlist.

Například SELECT * FROM VALUES(1, 2) AS T(a1, a2) WHERE 1 IN(T.*).

Změny

Vylepšené obnovení chyb pro parsování JSON: Analyzátor JSON používaný pro from_json() výrazy cesty JSON se teď obnovuje rychleji z poškozené syntaxe, což vede k menší ztrátě dat.

Při výskytu chybné syntaxe JSON v poli struktury, maticové hodnotě, klíči mapy nebo hodnotě mapy se analyzátor JSON teď vrátí NULL jenom pro nečitelné pole, klíč nebo prvek. Další pole, klíče nebo prvky se správně parsují. Před touto změnou parser JSON opustil analýzu pole, struktury nebo mapování a vrátil NULL zbývající obsah.

Verze 14.3

15. dubna 2024

Jedná se o počáteční bezserverovou výpočetní verzi. Tato verze přibližně odpovídá Databricks Runtime 14.3 s některými úpravami, které remove podporu některých funkcí bez serveru a starších verzí.

Podporovaná Konfigurace Sparku parameters

Kvůli automatizaci konfigurace Sparku na bezserverových výpočetních prostředcích služba Azure Databricks odebrala podporu ručního nastavení většiny konfigurací Sparku. Můžete ručně set pouze následující parameterskonfigurace Sparku:

  • spark.sql.legacy.timeParserPolicy (výchozí hodnota je CORRECTED)
  • spark.sql.session.timeZone (výchozí hodnota je Etc/UTC)
  • spark.sql.shuffle.partitions (výchozí hodnota je auto)
  • spark.sql.ansi.enabled (výchozí hodnota je true)

Úloha na bezserverových výpočetních prostředcích selže, pokud set konfiguraci Sparku, která není v této list.

Další informace o konfiguraci vlastností Sparku najdete v tématu Set vlastnosti konfigurace Sparku v azure Databricks.

input_file funkce jsou zastaralé

Funkce input_file_name(), input_file_block_length() a input_file_block_start() jsou zastaralé. Používání těchto funkcí se důrazně nedoporučuje.

Místo toho použijte metadata souboru column k získání informací o souboru.

Změny chování

Bezserverové výpočetní prostředky verze 2024.15 zahrnují následující změny chování:

  • oprava chyby unhex(hexStr): Při použití unhex(hexStr) funkce je hexStr vždy vycpaný do celého bajtu. Dříve funkce unhex ignorovala první poloviční bajt. Například: unhex('ABC') nyní vytvoří x'0ABC' místo x'BC'.
  • automaticky generované aliasy column jsou teď stabilní: Když se na výsledek výrazu odkazuje bez uživatelem zadaného aliasu column, bude tento automaticky vygenerovaný alias nyní stabilní. Nový algoritmus může vést ke změně dříve automaticky generovaných názvů používaných ve funkcích, jako jsou materializované views.
  • Table skeny s poli typu CHAR jsou nyní vždy vyplněny: delta tables, některé JDBC tablesa externí zdroje dat ukládají data typu CHAR v nevyplněné podobě. Při čtení teď Azure Databricks rozdělí data mezerami na deklarovanou délku, aby se zajistila správná sémantika.
  • Přetypování z BIGINT/DECIMAL na TIMESTAMP vyvolá výjimku pro přetečení values: Azure Databricks umožňuje přetypování z BIGINT a DECIMAL na TIMESTAMP tím, že považuje hodnotu za počet sekund z epochy Unixu. Dříve služba Azure Databricks vracela přetečení values, ale teď v případě přetečení vyvolává výjimku. Slouží try_cast k vrácení hodnoty NULL místo výjimky.
  • Bylo vylepšeno provádění PySpark UDF tak, aby odpovídalo přesnému chování provádění UDF na výpočetních prostředcích jednoho uživatele: Provedli jsme následující změny:
    • Uživatelsky definované funkce s návratovým typem řetězce již implicitně nepřevádějí neřetězcové typy, jako je values, na řetězce. Dříve by funkce definované uživatelem s návratovým typem str použily obálku str(..) na výsledek bez ohledu na skutečný datový typ vrácené hodnoty.
    • Funkce definované uživatelem s timestamp návratovými typy už implicitně nepoužijí převod timezone na časová razítka.