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, které jsou zavedeny během krátké doby.
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 vybírat 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.
- Nastavení vysoké kapacity paměti dostupné v bezserverových notebookách (veřejný náhled)
- verze 16.1
- verze 15.4
- JDK se upgraduje z JDK 8 na JDK 17.
- Verze 15.1
- Verze 14.3
Možnost nastavení vysoké paměti dostupná v bezserverových poznámkových blocích (Veřejná ukázka)
7. února 2025
Teď můžete nakonfigurovat větší velikost paměti pro úlohy výpočetních poznámkových bloků bez serveru. Toto nastavení se dá použít u interaktivních i plánovaných úloh poznámkových bloků.
Bezserverové využití s vysokou pamětí má vyšší rychlost emisí DBU než standardní paměť.
Další informace najdete v tématu Konfigurace vysoké paměti pro bezserverové úlohy.
Verze 16.1
5. února 2025
Tato bezserverová výpočetní verze přibližně odpovídá Databricks Runtime 16.0 a Databricks Runtime 16.1.
Nové funkce
podporu Avro pro rekurzivní schéma: Teď můžete použít možnost
recursiveFieldMaxDepth
s funkcífrom_avro
a zdrojem datavro
. Tato možnost nastaví maximální hloubku rekurze schématu ve zdroji dat Avro. Viz Čtení a zápis streamovaných dat Avro.Rozšířená podpora pro Confluent Schema Registry pro Avro: Serverless nyní podporuje referencované schéma Avro, které je podporováno registrem schémat Confluent. Viz Ověření v externím registru schématu Confluent.
Vynutit přeskupení tabulek s liquid clusteringem: Teď můžete pomocí syntaxe
OPTIMIZE FULL
vynutit přeskupení všech záznamů v tabulce s povoleným liquid clusteringem. Viz Vynucení přeclusterování pro všechny záznamy.rozhraní Delta API pro Python teď podporují sloupce identit: k vytváření tabulek se sloupci identit teď můžete použít rozhraní Delta API pro Python. Viz Použití sloupců identit v Delta Lake.
Vytváření clusterovaných tabulek během streamovaných zápisů: Nyní můžete použít
clusterBy
k povolení liquid clusterování při vytváření nových tabulek pomocí strukturovaných streamovaných zápisů. Viz Povolení clusteringu liquid.Podpora klauzule OPTIMIZE FULL: Bezserverové výpočetní prostředky teď podporují klauzuli OPTIMIZE FULL. Tato klauzule optimalizuje všechny záznamy v tabulce, která používá clustering liquid, včetně dat, která byla dříve seskupována.
Podpora specifikace možností WITH ve INSERT a tabulkových referencích: Bezserverové výpočetní prostředky nyní podporují specifikaci možností pro odkazy na tabulky a názvy tabulek příkazů
INSERT
, které lze použít k řízení chování zdrojů dat.Nové funkce SQL: Na výpočetních prostředcích bez serveru jsou nyní k dispozici následující funkce SQL:
- try_url_decode je verze url_decodeodolná proti chybám.
-
zeroifnull vrátí 0, pokud je vstupní výraz funkce
zeroifnull()
NULL
. -
nullifzero vrátí
NULL
pokud je vstup 0 nebo jeho vstup, pokud není 0. - dayname(výraz) vrátí třípísmennou anglickou zkratku pro den v týdnu daného data.
- uniform(výraz1, výraz2 [,semínko]) vrátí náhodnou hodnotu se nezávisle a stejně distribuovanými hodnotami v zadaném rozsahu čísel.
-
randstr(length) vrátí náhodný řetězec složený z
length
alfanumerických znaků.
Povolení automatického vývoje schématu při slučování dat do tabulky Delta: Byla přidána podpora pro
withSchemaEvolution()
člena třídyDeltaMergeBuilder
. SloužíwithSchemaEvolution()
k povolení automatického vývoje schématu běhemMERGE
operací. NapříkladmergeBuilder.whenMatched(...).withSchemaEvolution().execute()}}
.podpora kolací v Apache Sparku je ve verzi Public Preview: teď můžete přiřazovat kolace nerozlišující jazyk, malá a velká písmena a bez rozlišování přístupu k
STRING
sloupců a výrazů. Tato seřazení se používají v porovnání řetězců, řazení, operacích seskupování a mnoha řetězcových funkcích. Viz kolace.Podpora kolací v Delta Lake je ve verzi Public Preview: Při vytváření nebo změně tabulky Delta teď můžete pro sloupce definovat kolace. Podívejte se na podporu řazení pro Delta Lake.
LITE
režim pro vyčištění je ve verzi Public Preview: Nyní můžete použítVACUUM table_name LITE
k provedení lehčí operace, která využívá metadata z transakčního protokolu Delta. Viz plnohodnotný režim vs. odlehčený režim a VACUUM.Podpora parametrizace klauzule
USE CATALOG with IDENTIFIER
:IDENTIFIER je nyní podporována pro příkaz USE CATALOG. S touto podporou můžete parametrizovat aktuální katalog na základě řetězcové proměnné nebo značky parametru.COMMENT ON COLUMN podpora tabulek a zobrazení: Příkaz COMMENT ON teď podporuje změny komentářů pro zobrazení a sloupce tabulky.
vyvolání pojmenovaného parametru pro další funkce: Následující funkce podporují volání pojmenovaných parametrů:
parametr
SYNC METADATA
příkazu REPAIR TABLE se podporuje v metastoru Hive: Teď můžete použít parametrSYNC METADATA
s příkazemREPAIR TABLE
k aktualizaci metadat spravované tabulky metastoru Hive. Viz REPAIR TABLE.Vylepšenou integritu dat pro komprimované dávky Apache Arrow: Chcete-li lépe chránit před poškozením dat, každá
LZ4
komprimovaná dávka Apache Arrow teď obsahujeLZ4
obsah a kontrolní součty bloků. Viz popis formátu rámce LZ4 .integrovaný ovladač Oracle JDBC: bezserverové výpočetní prostředí teď obsahuje integrovaný ovladač Oracle JDBC. Pokud používáte JAR soubor ovladače JDBC nahraného zákazníkem prostřednictvím
DriverManager
, je nutné skripty přepsat tak, aby explicitně používaly vlastní JAR soubor. V opačném případě se použije integrovaný ovladač. Tento ovladač podporuje pouze Federaci Lakehouse. Pro jiné případy použití musíte poskytnout vlastní ovladač.podrobnější chybové zprávy pro tabulky Delta přístupné přes cesty: je nyní k dispozici nové rozhraní chybových zpráv pro tabulky Delta, ke kterým se přistupuje přes cesty. Všechny výjimky se teď předávají uživateli. Výjimka
DELTA_MISSING_DELTA_TABLE
je teď vyhrazena, když se podkladové soubory nedají číst jako tabulka Delta.
Změny chování
Zásadní změna: Hostovaný RStudio má ukončenou podporu.: S touto verzí má RStudio Server hostovaný službou Databricks ukončenou podporu a není dostupný v žádném pracovním prostoru Azure Databricks, který běží na bezserverovém výpočetním prostředí. Další informace a seznam alternativ k RStudio najdete v tématu Vyřazení hostovaného RStudio Serveru.
Zásadní změna: Odebrání podpory pro změnu
byte
,short
,int
along
typů na širší typy: Chcete-li zajistit konzistentní chování tabulek Delta a Iceberg, následující změny datového typu už nelze použít u tabulek s povolenou funkcí rozšíření typu :-
byte
,short
int
along
dodecimal
. -
byte
,short
aint
dodouble
.
-
Správná analýza vzorů regulárních výrazů s negací ve vnořených seskupování znaků: Tato verze obsahuje změnu, která podporuje správné parsování vzorů regulárních výrazů s negací ve vnořených 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]]
.Zlepšit detekci duplicitní shody v Delta Lake
MERGE
:MERGE
nyní bere v úvahu podmínky zadané v klauzuliWHEN MATCHED
. Podívejte se na Upsert v tabulce Delta Lake použitím slučování.Funkce
addArtifact()
je teď konzistentní mezi typy výpočetních prostředků: Když použijeteaddArtifact(archive = True)
k přidání závislosti na bezserverových výpočetních prostředcích, archiv se automaticky rozbalí. Tato změna činí chováníaddArtifact(archive = True)
konzistentním s výpočetním prostředím jednoho uživatele, které již podporuje automatické rozbalování archivů.Datový typ
VARIANT
již nelze použít s operacemi, které vyžadují porovnání: V dotazech, které obsahují datový typVARIANT
, nelze použít následující klauzule ani operátory:DISTINCT
INTERSECT
EXCEPT
UNION
DISTRIBUTE BY
Kromě toho nemůžete použít tyto funkce datového rámce:
df.dropDuplicates()
df.repartition()
Tyto operace provádějí porovnání a porovnávání, která používají datový typ
VARIANT
, vytváří nedefinované výsledky a nejsou podporovány v Databricks. Pokud používáte typVARIANT
v úlohách nebo tabulkách Azure Databricks, doporučuje Databricks následující změny:- Aktualizujte dotazy nebo výrazy tak, aby explicitně přetypovály hodnoty
VARIANT
na datové typy, které nejsouVARIANT
. - Pokud máte pole, která je nutné použít s některou z výše uvedených operací, extrahujte tato pole z datového typu
VARIANT
a uložte je pomocí datových typů, které nejsouVARIANT
.
Viz dotaz variant dat.
Opravy chyb
- Offsety časového pásma nyní zahrnují sekundy při serializaci do CSV, JSON a XML: U časových razítek s offsety časového pásma, které zahrnují sekundy (běžné pro časová razítka z období před rokem 1900), byly sekundy při serializaci do CSV, JSON a XML vynechávány. Byl opraven výchozí formátovač časového razítka a nyní vrací správné hodnoty posunu pro tyto časová razítka.
Další změny
-
přejmenování kódů chyb pro zdroj strukturovaného streamování
cloudFiles
: Byly přejmenovány následující kódy chyb:-
_LEGACY_ERROR_TEMP_DBR_0143
se přejmenuje naCF_INCORRECT_STREAM_USAGE
. -
_LEGACY_ERROR_TEMP_DBR_0260
se přejmenuje naCF_INCORRECT_BATCH_USAGE
.
-
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 u existujících tabulek, aniž byste museli přepisovat datové soubory. Viz Povolení čtení Icebergu v existující tabulce.
-
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ě můžete optimalizátoru umožnit spoléhat se na nevynucená 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 ALTER tabulce. -
Paralelizovaná úloha se spouští pro selektivní přepsání: Selektivní přepsání pomocí
replaceWhere
nyní spouštějí úlohy, které paralelně odstraňují a vkládají nová data, což zlepšuje výkon dotazů a využití clusteru. -
Vylepšený výkon datového kanálu změn se selektivním přepisováním: Selektivní přepisy pomocí
replaceWhere
na tabulkách s datovým kanálem změn již nezapisují samostatné soubory datových změn pro vložená data. Tyto operace používají skrytý sloupec_change_type
přítomný v podkladových datových souborech Parquet ke sledování změn, aniž by docházelo ke zvětšování objemu zápisu. -
Vylepšená latence dotazu pro
COPY INTO
příkaz: Tato verze obsahuje změnu, která zlepšuje latenci dotazu proCOPY 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 vyřazení funkce tabulky kontrolních omezení: Funkci tabulky
checkConstraints
teď můžete odstranit z tabulky Delta pomocíALTER TABLE table_name DROP FEATURE checkConstraints
. Viz Zakázání omezení kontroly.
Změny chování
Změna vazby schématu pro zobrazení: 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 zobrazení vyrovnává pravidel přetypování tam, kde je to možné. Tato změna umožňuje Databricks tolerovat změny schématu tabulky snadněji.
Zákaz nezdokumentované
!
tolerance syntaxe proNOT
vnější logickou logiku: Databricks už nebude tolerovat použití!
jako synonyma proNOT
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,! NULL
vlastnost sloupce nebo pole,! IN
a ! BETWEEN musí být nahrazeny tímto:CREATE ... IF NOT EXISTS
,IS NOT NULL
,NOT NULL
sloupcová nebo políčková vlastnost,NOT IN
aNOT 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 sloupce v zobrazeních: Databricks podporuje CREATE VIEW s pojmenovanými sloupci a komentáři sloupců.
Specifikace typů sloupců, omezení
NOT NULL
neboDEFAULT
byla v syntaxi tolerována bez jakéhokoli účinku. Databricks odstraní tuto toleranci syntaxe. 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í neboConversionInvalidInputError
. Tato aktualizace zajišťuje, že Photon konzistentně vyvolává stejné výjimky jako Spark během chyb dekódování Base64, což poskytuje předvídatelnější a spolehlivější zpracování chyb.Přidání omezení
CHECK
pro neplatný sloupec teď 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říkazALTER TABLE ADD CONSTRAINT
, který obsahuje omezeníCHECK
odkazující na neplatný název sloupce vrátí UNRESOLVED_COLUMN. WITH_SUGGESTION třídu chyb. Dříve byla vrácenaINTERNAL_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í:
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
*
klauzule WHERE
: Nyní můžete použít syntaxi hvězdičky () v klauzuli *
k odkazování na všechny sloupce ze seznamu WHERE
.
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é odeberou podporu některých funkcí bez serveru a starších verzí.
podporované parametry konfigurace Sparku
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ě nastavit pouze následující parametry konfigurace Sparku:
-
spark.sql.legacy.timeParserPolicy
(výchozí hodnota jeCORRECTED
) -
spark.sql.session.timeZone
(výchozí hodnota jeEtc/UTC
) -
spark.sql.shuffle.partitions
(výchozí hodnota jeauto
) -
spark.sql.ansi.enabled
(výchozí hodnota jetrue
)
Úloha selže na bezserverových výpočetních prostředcích, pokud nastavíte konfiguraci Sparku, která není v tomto seznamu.
Další informace o konfiguraci vlastností Sparku najdete v tématu Nastavení vlastností 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 sloupec metadat souboru k načtení informací o metadatech 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ístox'BC'
. - automaticky generované aliasy sloupců jsou nyní stabilní: Když se na výsledek výrazu odkazuje bez aliasu sloupce zadaného uživatelem, 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á zobrazení.
-
Prohledávání tabulek s poli typu
CHAR
jsou nyní vždy vyplněná: tabulky Delta, některé tabulky JDBC a 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í hodnot: 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é hodnoty, ale nyní v případě přetečení vyvolá 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:
- Funkce definované uživatelem s návratovým typem řetězce už implicitně nepřevádějí neřetězcové hodnoty na řetězce. Dříve by funkce definované uživatelem s návratovým typem
str
použily obálkustr(..)
na výsledek bez ohledu na skutečný datový typ vrácené hodnoty. - UDF s návratovými typy
timestamp
již implicitně neprovádějí převod časové zóny na časová razítka.
- Funkce definované uživatelem s návratovým typem řetězce už implicitně nepřevádějí neřetězcové hodnoty na řetězce. Dříve by funkce definované uživatelem s návratovým typem