Note sulla versione di elaborazione serverless
Questo articolo illustra le funzionalità e i comportamenti attualmente disponibili e futuri nell'ambiente di calcolo serverless per notebook e processi.
Per altre informazioni sugli ambienti di calcolo serverless, vedere Connessione a un ambiente di calcolo serverless.
Azure Databricks rilascia periodicamente gli aggiornamenti al calcolo serverless, aggiornando automaticamente il runtime di calcolo serverless per supportare miglioramenti e aggiornamenti alla piattaforma. Tutti gli utenti ottengono gli stessi aggiornamenti, distribuiti in un breve periodo di tempo.
versioni dell'ambiente serverless
Il calcolo serverless di Databricks per notebook e processi offre un'architettura basata su Spark Connect, consentendo aggiornamenti indipendenti del motore senza alcun impatto sull'applicazione. Per garantire la compatibilità delle applicazioni, i carichi di lavoro serverless usano un'API con versione, nota come versione dell'ambiente o client, che rimane compatibile con le versioni server più recenti.
La versione più recente dell'ambiente continua a ricevere gli aggiornamenti fino a quando non viene rilasciata una nuova versione. Gli utenti possono selezionare una delle seguenti versioni dell'ambiente supportate:
Note sulla versione
Questa sezione include le note sulla versione per il calcolo serverless. Le note sulla versione sono organizzate per anno e settimana dell'anno. Il calcolo serverless viene sempre eseguito usando la versione rilasciata più di recente elencata qui.
- L'impostazione ad alta memoria disponibile per i notebook senza server (versione di anteprima pubblica)
- versione 16.1
- versione 15.4
- JDK viene aggiornato da JDK 8 a JDK 17
- Versione 15.1
- Versione 14.3
Impostazione di memoria elevata disponibile nei notebook serverless (anteprima pubblica)
7 febbraio 2025
È ora possibile configurare una dimensione di memoria superiore per i carichi di lavoro del notebook di calcolo serverless. Questa impostazione può essere applicata ai carichi di lavoro dei notebook interattivi e pianificati.
L'utilizzo serverless con memoria elevata ha una velocità di emissione DBU superiore rispetto alla memoria standard.
Per ulteriori informazioni, consultare Configurazione di memoria elevata per i carichi di lavoro serverless.
Versione 16.1
5 febbraio 2025
Questa versione di calcolo serverless corrisponde approssimativamente a Databricks Runtime 16.0 e Databricks Runtime 16.1.
Nuove funzionalità
Supporto Avro per lo schema ricorsivo: È ora possibile usare l'opzione
recursiveFieldMaxDepth
con la funzionefrom_avro
e l'origine datiavro
. Questa opzione imposta la profondità massima per la ricorsione dello schema nell'origine dati Avro. Vedere Leggere e scrivere dati Avro in streaming.Supporto esteso per il Confluent Schema Registry per Avro: Ora Serverless supporta il riferimento allo schema Avro con il Confluent Schema Registry. Vedere Eseguire l'autenticazione in un registro dello schema confluente esterno.
Forzare il clustering su tabelle con clustering liquido: È ora possibile usare la sintassi di
OPTIMIZE FULL
per forzare il clustering di tutti i record in una tabella con clustering liquido abilitato. Consulta Force reclustering per tutti i record.le API Delta per Python supportano ora le colonne Identity: è ora possibile usare le API Delta per Python per creare tabelle con colonne Identity. Vedi Usa colonne identità in Delta Lake.
Creare tabelle cluster liquide durante le scritture in streaming: È ora possibile usare
clusterBy
per abilitare il clustering liquido durante la creazione di nuove tabelle con le scritture di streaming strutturato. Vedere Abilitare il clustering liquido.supporto per la clausola FULL OPTIMIZE: calcolo serverless supporta ora la clausola OPTIMIZE FULL. Questa clausola ottimizza tutti i record di una tabella che usa clustering liquido, inclusi i dati che potrebbero essere stati raggruppati in precedenza.
Supporto per la specifica delle opzioni WITH in INSERT e riferimento a tabelle: il calcolo serverless ora supporta una specifica delle opzioni per i riferimenti e i nomi di tabella di un'istruzione
INSERT
che può essere usata per controllare il comportamento delle origini dati.Nuove funzioni SQL: Le funzioni SQL seguenti sono ora disponibili nel calcolo serverless:
- try_url_decode è una versione a tolleranza di errore di url_decode.
-
zeroifnull restituisce 0 se l'espressione di input alla funzione
zeroifnull()
èNULL
. -
nullifzero restituisce
NULL
se l'input è 0 oppure l'input stesso se non è 0. - dayname(expr) restituisce la sigla inglese di tre lettere per il giorno della settimana per la data specificata.
- uniform(expr1, expr2 [,seed]) restituisce un valore casuale con valori indipendenti e distribuiti in modo identico all'interno dell'intervallo di numeri specificato.
-
randstr(length) restituisce una stringa casuale di
length
caratteri alfanumerici.
Abilitare l'evoluzione automatica dello schema durante l'unione dei dati in una tabella Delta: è stato aggiunto il supporto per il membro
withSchemaEvolution()
della classeDeltaMergeBuilder
. UsarewithSchemaEvolution()
per abilitare l'evoluzione automatica dello schema durante le operazioni diMERGE
. Ad esempio:mergeBuilder.whenMatched(...).withSchemaEvolution().execute()}}
.supporto per le regole di confronto in Apache Spark è disponibile in anteprima pubblica: è ora possibile assegnare regole di confronto indipendenti dal linguaggio, senza distinzione tra maiuscole e minuscole e regole di confronto senza distinzione di accesso a colonne ed espressioni
STRING
. Queste collazioni vengono usate nei confronti di stringhe, nell'ordinamento, nelle operazioni di raggruppamento e in molte funzioni sulle stringhe. Vedi regole di confronto.supporto per le regole di confronto in Delta Lake è disponibile in anteprima pubblica: è ora possibile definire regole di confronto per le colonne durante la creazione o la modifica di una tabella Delta. Consultare supporto per le regole di confronto per Delta Lake.
LITE
modalità vacuum è disponibile in anteprima pubblica: è ora possibile usareVACUUM table_name LITE
per eseguire un'operazione vacuum più leggera che sfrutta i metadati nel log delle transazioni Delta. Vedi modalità completa vs. leggera e VACUUM.Supporto per la parametrizzazione della clausola
USE CATALOG with IDENTIFIER
: La clausola IDENTIFIER è ora supportata per l'istruzione USE CATALOG. Con questo supporto, è possibile parametrizzare il catalogo corrente in base a una variabile stringa o a un marcatore di parametro.COMMENT ON COLUMN supporto per tabelle e viste: L'istruzione COMMENT ON supporta ora la modifica dei commenti per le colonne di visualizzazione e tabella.
chiamata di parametri denominati per altre funzioni: Le funzioni seguenti supportano chiamata di parametri denominati:
Il parametro
SYNC METADATA
al comando REPAIR TABLE è supportato con il metastore Hive: È ora possibile usare il parametroSYNC METADATA
con il comandoREPAIR TABLE
per aggiornare i metadati di una tabella gestita da metastore Hive. Vedere REPAIR TABLE.Integrità avanzata dei dati per i batch Apache Arrow compressi: Per proteggere ulteriormente dalla corruzione dei dati, ogni batch Arrow compresso
LZ4
include ora i checksum del contenuto e di bloccoLZ4
. Consultare Descrizione formato frame LZ4.Driver JDBC Oracle integrato: Il calcolo serverless ha ora il Driver JDBC Oracle integrato. Se si usa un file JAR del driver JDBC caricato dal cliente tramite
DriverManager
, è necessario riscrivere gli script per usare in modo esplicito il file JAR personalizzato. Altrimenti, viene utilizzato il driver integrato. Questo driver supporta solo la federazione Lakehouse. Per altri casi d'uso, è necessario fornire il proprio driver.errori più dettagliati per le tabelle Delta a cui si accede con i percorsi: È ora disponibile una nuova esperienza di messaggio di errore per le tabelle Delta a cui si accede usando i percorsi. Tutte le eccezioni vengono ora inoltrate all'utente. L'eccezione
DELTA_MISSING_DELTA_TABLE
è ora riservata quando i file sottostanti non possono essere letti come tabella Delta.
Modifiche del comportamento
Modifica di rilievo: L'RStudio ospitato èdi fine vita: con questa versione, Databricks-hosted RStudio Server è end-of-life e non è disponibile in qualsiasi area di lavoro di Azure Databricks in esecuzione nel calcolo serverless. Per ulteriori informazioni e per vedere un elenco di alternative a RStudio, consulta la deprecazione di RStudio Server ospitato .
Modifica di rilievo: rimozione del supporto per la conversione dei tipi
byte
,short
,int
elong
in tipi più ampi: Per garantire un comportamento coerente tra le tabelle Delta e Iceberg, le seguenti modifiche ai tipi di dati non possono più essere applicate alle tabelle con la funzionalità di ampliamento del tipo abilitata.-
byte
short
,int
elong
indecimal
. -
byte
,short
eint
indouble
.
-
Analisi corretta dei modelli regex con negazione nel raggruppamento di caratteri annidati: Questa versione include una modifica per supportare l'analisi corretta dei modelli regex con negazione nel raggruppamento di caratteri annidati. Ad esempio,
[^[abc]]
verrà analizzato come "qualsiasi carattere che non sia uno di 'abc'".Inoltre, il comportamento photon non era coerente con Spark per le classi di caratteri annidate. I modelli regex contenenti classi di caratteri annidati non useranno più Photon e useranno invece Spark. Una classe di caratteri annidata è qualsiasi motivo contenente parentesi quadre tra parentesi quadre, ad esempio
[[a-c][1-3]]
.Migliorare il rilevamento delle corrispondenze duplicate in Delta Lake
MERGE
:MERGE
ora considera le condizioni specificate nella clausolaWHEN MATCHED
. Consulta Upsert in una tabella Delta Lake utilizzando la funzionalità merge.La funzionalità di
addArtifact()
è ora coerente tra i tipi di calcolo: Quando si usaaddArtifact(archive = True)
per aggiungere una dipendenza al calcolo serverless, l'archivio viene decompresso automaticamente. Questa modifica rende il comportamento deladdArtifact(archive = True)
coerente con il calcolo utente singolo, che supporta già l'decompressione automatica degli archivi.Il tipo di dati
VARIANT
non può più essere utilizzato con operazioni che richiedono confronti: Non è possibile utilizzare le clausole o gli operatori seguenti nelle query che includono un tipo di datiVARIANT
:DISTINCT
INTERSECT
EXCEPT
UNION
DISTRIBUTE BY
Inoltre, non è possibile usare queste funzioni dataframe:
df.dropDuplicates()
df.repartition()
Queste operazioni eseguono confronti e confronti che usano il tipo di dati
VARIANT
producono risultati non definiti e non sono supportati in Databricks. Se si usa il tipo diVARIANT
nei carichi di lavoro o nelle tabelle di Azure Databricks, Databricks consiglia le modifiche seguenti:- Aggiornare query ed espressioni per effettuare un cast esplicito dei valori
VARIANT
a tipi di dati nonVARIANT
. - Se sono presenti campi che devono essere usati con una delle operazioni precedenti, estrarre tali campi dal tipo di dati
VARIANT
e archiviarli usando tipi di dati nonVARIANT
.
Correzioni di bug
- gli offset del fuso orario includono ora secondi quando serializzati in CSV, JSON e XML: Timestamp con offset di fuso orario che includono secondi (comuni per i timestamp precedenti al 1900) omettevano i secondi durante la serializzazione in CSV, JSON e XML. Il formattatore timestamp predefinito è stato corretto e ora restituisce i valori di offset corretti per questi timestamp.
Altre modifiche
-
Codici di errore rinominati per l'origine di streaming strutturato
cloudFiles
: I seguenti codici di errore sono stati rinominati:-
_LEGACY_ERROR_TEMP_DBR_0143
viene rinominato inCF_INCORRECT_STREAM_USAGE
. -
_LEGACY_ERROR_TEMP_DBR_0260
viene rinominato inCF_INCORRECT_BATCH_USAGE
.
-
Versione 15.4
28 ottobre 2024
Questa versione di calcolo serverless corrisponde approssimativamente a Databricks Runtime 15.4
Nuove funzionalità
-
Funzioni di convalida UTF-8: questa versione introduce le funzioni seguenti per la convalida delle stringhe UTF-8:
- is_valid_utf8 verifica se una stringa è una stringa UTF-8 valida.
- make_valid_utf8 converte una stringa UTF-8 potenzialmente non valida in una stringa UTF-8 valida usando caratteri di sostituzione.
- validate_utf8 genera un errore se l'input non è una stringa UTF-8 valida.
-
try_validate_utf8 restituisce
NULL
se l'input non è una stringa UTF-8 valida.
- Abilita UniForm Iceberg utilizzando ALTER TABLE: Ora puoi abilitare UniForm Iceberg su tabelle esistenti senza riscrivere i file di dati. Vedere Abilitare le letture di Iceberg in una tabella esistente.
-
try_url_decode funzione: questa versione introduce la funzione try_url_decode , che decodifica una stringa con codifica URL. Se la stringa non è nel formato corretto, la funzione restituisce
NULL
anziché generare un errore. -
Facoltativamente, consentire all'ottimizzatore di basarsi su vincoli di chiave esterna non forzati: Per migliorare le prestazioni delle query, è ora possibile specificare la parola chiave
RELY
sui vincoliFOREIGN KEY
quando si CREATE o ALTER una tabella. -
Esecuzioni di job parallelizzati per sovrascritture selettive: Le sovrascritture selettive con
replaceWhere
ora eseguono job che eliminano i dati e inseriscono nuovi dati in parallelo, migliorando le prestazioni delle query e l'utilizzo del cluster. -
Miglioramento delle prestazioni per il feed di dati delle modifiche con sovrascrizioni selettive: Le sovrascrizioni selettive che utilizzano
replaceWhere
nelle tabelle con feed di dati delle modifiche non scrivono più file di dati di modifica separati per i dati inseriti. Queste operazioni usano una colonna_change_type
nascosta presente nei file di dati Parquet sottostanti per registrare le modifiche senza amplificazione di scrittura. -
Miglioramento della latenza delle query per il
COPY INTO
comando: questa versione include una modifica che migliora la latenza della query per ilCOPY INTO
comando. Questo miglioramento viene implementato rendendo asincrono il caricamento dello stato dall'archivio stati RocksDB. Con questa modifica, si noterà un miglioramento dei tempi di inizio per le query con stati di grandi dimensioni, ad esempio le query con un numero elevato di file già inseriti. -
Supporto per l'eliminazione della funzionalità dei vincoli check della tabella: È ora possibile eliminare la funzionalità della tabella
checkConstraints
da una tabella Delta usandoALTER TABLE table_name DROP FEATURE checkConstraints
. Vedere Disabilitare i vincoli check.
Modifiche del comportamento
Cambio dell'associazione dello schema per le viste: Quando i tipi di dati nella query sottostante di una vista cambiano da quelli usati quando la vista è stata creata per la prima volta, Databricks non genera più errori per i riferimenti alla vista quando non è possibile eseguire alcun cast sicuro.
Al contrario, la visualizzazione compensa usando regole di cast regolari ove possibile. Questa modifica consente a Databricks di tollerare più facilmente le modifiche dello schema di tabella.
Non consentire la sintassi non documentata
!
perNOT
la logica booleana esterna: Databricks non tollererà più l'uso di come sinonimo per!
NOT
l'esterno della logica booleana. Questa modifica riduce la confusione, si allinea allo standard SQL e rende SQL più portabile. Ad esempio:CREATE ... IF ! EXISTS
, IS ! NULL,! NULL
proprietà colonna o campo,! IN
e ! BETWEEN deve essere sostituito con:CREATE ... IF NOT EXISTS
,IS NOT NULL
,NOT NULL
proprietà di colonna o campo,NOT IN
eNOT BETWEEN
.L'operatore di prefisso booleano (ad esempio
!
o!is_mgr
) non è interessato da questa modifica.Non consentire parti non documentate e non elaborate della sintassi della definizione di colonna nelle visualizzazioni: Databricks supporta CREATE VIEW con colonne con nomi specifici e commenti sulle colonne.
La specificazione dei tipi di colonna, dei vincoli
NOT NULL
oDEFAULT
è stata tollerata nella sintassi senza avere alcun effetto. Databricks rimuoverà questa tollerazione della sintassi. In questo modo si riduce la confusione, si allinea allo standard SQL e consente miglioramenti futuri.Gestione coerente degli errori per la decodifica Base64 in Spark e Photon: questa versione modifica il modo in cui Photon gestisce gli errori di decodifica Base64 in modo che corrispondano alla gestione spark di questi errori. Prima di queste modifiche, il percorso di generazione del codice Photon e Spark talvolta non è riuscito a generare eccezioni di analisi, mentre l'esecuzione interpretata di Spark è stata generata
IllegalArgumentException
correttamente oConversionInvalidInputError
. Questo aggiornamento garantisce che Photon generi in modo coerente le stesse eccezioni di Spark durante gli errori di decodifica Base64, offrendo una gestione degli errori più prevedibile e affidabile.L'aggiunta di un vincolo
CHECK
su una colonna non valida restituisce ora la classe di errore UNRESOLVED_COLUMN.WITH_SUGGESTION: Per fornire messaggi di errore più utili, in Databricks Runtime 15.3 e nelle versioni successive, un'istruzioneALTER TABLE ADD CONSTRAINT
che include un vincoloCHECK
riferito a un nome di colonna non valido restituisce la classe di errore UNRESOLVED_COLUMN.WITH_SUGGESTION. In precedenza, veniva restituito un oggettoINTERNAL_ERROR
.
JDK viene aggiornato da JDK 8 a JDK 17
15 agosto 2024
Il calcolo serverless per notebook e flussi di lavoro è stato migrato da Java Development Kit (JDK) 8 a JDK 17 sul lato server. Questo aggiornamento include le modifiche comportamentali seguenti:
Analisi corretta dei modelli regex con negazione nel raggruppamento di caratteri annidati: con questo aggiornamento, Azure Databricks supporta ora l'analisi corretta dei modelli regex con negazione nel raggruppamento di caratteri annidati. Ad esempio,
[^[abc]]
verrà analizzato come "qualsiasi carattere che non sia uno di 'abc'".Inoltre, il comportamento photon non era coerente con Spark per le classi di caratteri annidate. I modelli regex contenenti classi di caratteri annidati non useranno più Photon e useranno invece Spark. Una classe di caratteri annidata è qualsiasi motivo contenente parentesi quadre tra parentesi quadre, ad esempio
[[a-c][1-3]]
.
Versione 15.1
23 luglio 2024
Questa versione di calcolo serverless corrisponde approssimativamente a Databricks Runtime 15.1
Nuove funzionalità
supporto per la sintassi asterisco (*
) nella clausola WHERE
: è ora possibile usare la sintassi asterisco (*
) nella clausola WHERE
per fare riferimento a tutte le colonne dell'elenco SELECT
.
Ad esempio: SELECT * FROM VALUES(1, 2) AS T(a1, a2) WHERE 1 IN(T.*)
.
Modifiche
Miglioramento del ripristino degli errori per l'analisi JSON: il parser JSON usato per from_json()
le espressioni di percorso JSON ora recupera più rapidamente dalla sintassi in formato non corretto, con conseguente minore perdita di dati.
Quando si verifica una sintassi JSON non valida in un campo struct, un valore di matrice, una chiave della mappa o un valore della mappa, il parser JSON restituirà NULL
ora solo per il campo, la chiave o l'elemento illeggibili. I campi, le chiavi o gli elementi successivi verranno analizzati correttamente. Prima di questa modifica, il parser JSON ha abbandonato l'analisi della matrice, dello struct o della mappa e ha restituito per il contenuto rimanente NULL
.
Versione 14.3
15 aprile 2024
Si tratta della versione di calcolo serverless iniziale. Questa versione corrisponde approssimativamente a Databricks Runtime 14.3 con alcune modifiche che rimuovono il supporto per alcune funzionalità non serverless e legacy.
Parametri di configurazione di Spark supportati
Per automatizzare la configurazione di Spark nel calcolo serverless, Azure Databricks ha rimosso il supporto per l'impostazione manuale della maggior parte delle configurazioni spark. È possibile impostare manualmente solo i parametri di configurazione spark seguenti:
-
spark.sql.legacy.timeParserPolicy
(il valore predefinito èCORRECTED
) -
spark.sql.session.timeZone
(il valore predefinito èEtc/UTC
) -
spark.sql.shuffle.partitions
(il valore predefinito èauto
) -
spark.sql.ansi.enabled
(il valore predefinito ètrue
)
L'esecuzione del processo in un ambiente di calcolo serverless avrà esito negativo se si imposta una configurazione Spark non presente in questo elenco.
Per altre informazioni sulla configurazione delle proprietà di Spark, vedere Impostare le proprietà di configurazione di Spark in Azure Databricks.
input_file funzioni sono deprecate
Le funzioni input_file_name(), input_file_block_length()e input_file_block_start() sono deprecate. L'uso di queste funzioni è altamente sconsigliato.
Usare invece la colonna dei metadati del file per recuperare le informazioni sui metadati dei file.
Modifiche comportamentali
La versione di calcolo serverless 2024.15 include le modifiche comportamentali seguenti:
-
correzione di bug unhex(hexStr): quando si usa la
unhex(hexStr)
funzione, hexStr viene sempre riempito a sinistra su un intero byte. In precedenza la funzione unhex ignorava il primo mezzo byte. Ad esempio:unhex('ABC')
ora producex'0ABC'
invece dix'BC'
. - alias di colonna generati automaticamente sono ora stabili: Quando viene fatto riferimento al risultato di un'espressione senza un alias di colonna specificato dall'utente, questo alias generato automaticamente sarà ora stabile. Il nuovo algoritmo può comportare una modifica ai nomi generati automaticamente in precedenza usati in funzionalità come le viste materializzate.
-
le analisi di tabella con campi di tipo
CHAR
sono ora sempre riempite: tabelle Delta, alcune tabelle JDBC e origini dati esterne archiviano i dati CHAR in formato non riempito. Durante la lettura, Azure Databricks ora aggiungerà i dati con spazi alla lunghezza dichiarata per garantire una semantica corretta. -
Cast da BIGINT/DECIMAL a TIMESTAMP generano un'eccezione per i valori di overflow: Azure Databricks consente il cast da BIGINT e DECIMAL a TIMESTAMP considerando il valore come numero di secondi dall'epoca Unix. In precedenza, Azure Databricks restituiva valori fuori limite, ma ora genera un'eccezione in caso di overflow. Utilizzare
try_cast
per restituire NULL anziché un'eccezione. -
L'esecuzione della funzione definita dall'utente pySpark è stata migliorata in modo da corrispondere al comportamento esatto dell'esecuzione della funzione definita dall'utente nel calcolo di un singolo utente: sono state apportate le modifiche seguenti:
- Le funzioni definite dall'utente con un tipo di ritorno stringa non convertono più in modo implicito i valori non stringa in stringhe. In precedenza, le funzioni definite dall'utente con un tipo restituito di
str
applicano unstr(..)
wrapper al risultato indipendentemente dal tipo di dati effettivo del valore restituito. - Le funzioni definite dall'utente con tipi di ritorno
timestamp
non applicano più in modo implicito una conversione del fuso orario ai marcatori temporali.
- Le funzioni definite dall'utente con un tipo di ritorno stringa non convertono più in modo implicito i valori non stringa in stringhe. In precedenza, le funzioni definite dall'utente con un tipo restituito di