Condividi tramite


Note sulla versione di calcolo 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 sul calcolo serverless, vedere Connettersi al calcolo serverless.

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.

Modifiche comportamentali imminenti

In questa sezione vengono evidenziate le modifiche comportamentali in arrivo nella prossima versione di calcolo serverless. Quando le modifiche vengono inserite nell'ambiente di produzione, verranno aggiunte alle note sulla versione.

Settembre 2024

Modifica dell'associazione dello schema per le visualizzazioni

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 genererà più errori per i riferimenti alla visualizzazione quando non è possibile eseguire alcun cast sicuro. Al contrario, la visualizzazione compenserà l'uso di regole di cast regolari, se possibile.

Questa modifica consente a Databricks di tollerare più facilmente le modifiche dello schema di tabella.

Non consentire la sintassi non documentata ! per NOT la logica booleana esterna

Databricks non tollererà più l'uso di ! come sinonimo di NOT al di fuori della logica booleana. Ad esempio:

CREATE ... IF ! EXISTS, IS ! Proprietà NULL, ! NULL colonna o campo ! IN e ! BETWEEN deve essere sostituito con:

CREATE ... IF NOT EXISTS, IS NOT NULL, NOT NULL colonna o proprietà NOT IN del campo e NOT BETWEEN.

Questa modifica riduce la confusione, si allinea allo standard SQL e rende SQL più portabile.

L'operatore ! di prefisso booleano (ad esempio !is_mgr o !(true AND false)) non è interessato da questa modifica.

Non consentire parti non documentate e non elaborate della sintassi della definizione di colonna nelle viste

Databricks supporta CREATE VIEW con colonne denominate e commenti di colonna. La specifica di tipi di colonna, NOT NULL vincoli o DEFAULT è stata tollerata nella sintassi senza alcun effetto. Databricks rimuoverà questa tollerazione della sintassi.

In questo modo si riduce la confusione, si allinea allo standard SQL e consente miglioramenti futuri.

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.

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:

Correzioni di bug

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 2024.30

23 luglio 2024

Questa versione di calcolo serverless corrisponde approssimativamente a Databricks Runtime 15.1

Nuove funzionalità

Supporto per la sintassi star (*) nella WHERE clausola : è ora possibile usare la sintassi star (*) nella WHERE clausola 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 2024.15

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, 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 è EXCEPTION)
  • 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.

Memorizzazione nella cache di comandi API e SQL non supportati

L'utilizzo delle API di dataframe e cache SQL non è supportato. L'uso di una di queste API o comandi SQL genererà un'eccezione.

API non supportate:

Comandi SQL non supportati:

Viste temporanee globali non supportate

La creazione di visualizzazioni temporanee globali non è supportata. L'uso di uno di questi comandi genererà un'eccezione:

Databricks consiglia invece di usare viste temporanee di sessione o di creare tabelle in cui è necessario il passaggio dei dati tra sessioni.

CREATE FUNCTION (esterno) non supportato

Il comando CREATE FUNCTION (External) non è supportato. L'uso di questo comando genera un'eccezione.

Databricks consiglia invece di usare CREATE FUNCTION (SQL e Python) per creare funzioni definite dall'utente.

Tabelle SerDe Hive non supportate

Le tabelle SerDe Hive non sono supportate. Inoltre, il comando LOAD DATA corrispondente che carica i dati in una tabella SerDe Hive non è supportato. L'uso del comando genererà un'eccezione.

Il supporto per le origini dati è limitato ad AVRO, BINARYFILE, CSV, DELTA, JSON, KAFKA, ORC, PARQUET, ORC, TEXT e XML.

Variabili Hive non supportate

Le variabili Hive (ad esempio ${env:var}, ${system:var}${configName}, e spark.sql.variable) o i riferimenti alle variabili di configurazione che usano la ${var} sintassi non sono supportati. L'uso delle variabili Hive genererà un'eccezione.

Usare invece DECLARE VARIABLE, SET VARIABLE e i riferimenti alle variabili di sessione SQL e ai marcatori di parametro ('?', o ':var') per dichiarare, modificare e fare riferimento allo stato della sessione. È anche possibile usare la clausola IDENTIFIER per parametrizzare i nomi degli oggetti in molti casi.

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 del 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 produce x'0ABC' invece di x'BC'.
  • Gli alias di colonna generati automaticamente sono ora stabili: quando il risultato di un'espressione viene fatto riferimento 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 delle tabelle con CHAR campi di tipo sono ora sempre riempite: tabelle Delta, alcune tabelle JDBC e origini dati esterne archiviano i dati CHAR in formato non riempito. Durante la lettura, Databricks ora aggiungerà i dati con spazi alla lunghezza dichiarata per garantire una semantica corretta.
  • I cast da BIGINT/DECIMAL a TIMESTAMP generano un'eccezione per i valori overflow: Databricks consente il cast da BIGINT e DECIMAL a TIMESTAMP considerando il valore come numero di secondi dall'epoca Unix. In precedenza, Databricks restituiva valori con overflow, 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 per corrispondere al comportamento esatto dell'esecuzione della funzione definita dall'utente nel calcolo a utente singolo: sono state apportate le modifiche seguenti:
    • Le funzioni definite dall'utente con un tipo restituito stringa non convertno più in modo implicito valori non stringa in stringhe. In precedenza, le funzioni definite dall'utente con un tipo restituito di str applicano un str(..) wrapper al risultato indipendentemente dal tipo di dati effettivo del valore restituito.
    • Le funzioni definite dall'utente con timestamp tipi restituiti non applicano più in modo implicito una conversione del fuso orario ai timestamp.

Ambiente di sistema

Il calcolo serverless include l'ambiente di sistema seguente:

  • Sistema operativo: Ubuntu 22.04.3 LTS
  • Python: 3.10.12
  • Delta Lake: 3.1.0

Librerie Python installate

Le librerie Python seguenti vengono installate nel calcolo serverless per impostazione predefinita. È possibile installare altre dipendenze usando il pannello laterale Ambiente . Vedere Installare le dipendenze dei notebook.

Libreria Versione Libreria Versione Libreria Versione
anyio 3.5.0 argon2-cffi 21.3.0 argon2-cffi-bindings 21.2.0
asttoken 2.0.5 astunparse 1.6.3 attrs 22.1.0
backcall 0.2.0 beautifulsoup4 4.11.1 black 22.6.0
bleach 4.1.0 blinker 1.4 boto3 1.24.28
botocore 1.27.96 cachetools 5.3.2 certifi 2022.12.7
cffi 1.15.1 chardet 4.0.0 charset-normalizer 2.0.4
Clic 8.0.4 serv 0.1.2 contourpy 1.0.5
Crittografia 39.0.1 cycler 0.11.0 Cython 0.29.32
databricks-connect 14.3.1 databricks-sdk 0.20.0 dbus-python 1.2.18
debugpy 1.6.7 decorator 5.1.1 defusedxml 0.7.1
distlib 0.3.8 docstring-to-markdown 0,11 entrypoints 0,4
executing 0.8.3 facet-overview 1.1.1 fastjsonschema 2.19.1
filelock 3.13.1 fonttools 4.25.0 google-auth 2.28.1
googleapis-common-protos 1.62.0 grpcio 1.62.0 grpcio-status 1.62.0
httplib2 0.20.2 idna 3.4 importlib-metadata 4.6.4
ipyflow-core 0.0.198 ipykernel 6.25.0 ipython 8.14.0
ipython-genutils 0.2.0 ipywidgets 7.7.2 jedi 0.18.1
jeepney 0.7.1 Jinja2 3.1.2 jmespath 0.10.0
joblib 1.2.0 jsonschema 4.17.3 jupyter-client 7.3.4
jupyter-server 1.23.4 jupyter_core 5.2.0 jupyterlab-pygments 0.1.2
jupyterlab-widgets 1.0.0 keyring 23.5.0 kiwisolver 1.4.4
launchpadlib 1.10.16 lazr.restfulclient 0.14.4 lazr.uri 1.0.6
lxml 4.9.1 MarkupSafe 2.1.1 matplotlib 3.7.0
matplotlib-inline 0.1.6 Mccabe 0.7.0 mistune 0.8.4
more-itertools 8.10.0 mypy-extensions 0.4.3 nbclassic 0.5.2
nbclient 0.5.13 nbconvert 6.5.4 nbformat 5.7.0
nest-asyncio 1.5.6 nodeenv 1.8.0 notebook 6.5.2
notebook_shim 0.2.2 numpy 1.23.5 oauthlib 3.2.0
creazione del pacchetto 23.2 pandas 1.5.3 pandocfilters 1.5.0
parso 0.8.3 pathspec 0.10.3 patsy 0.5.3
pexpect 4.8.0 pickleshare 0.7.5 Pillow 9.4.0
pip 22.3.1 platformdirs 2.5.2 plotly 5.9.0
pluggy 1.0.0 prometheus-client 0.14.1 prompt-toolkit 3.0.36
protobuf 4.25.3 psutil 5.9.0 psycopg2 2.9.3
ptyprocess 0.7.0 pure-eval 0.2.2 py4j 0.10.9.7
pyarrow 8.0.0 pyarrow-hotfix 0.5 pyasn1 0.5.1
pyasn1-modules 0.3.0 pyccolo 0.0.52 pycparser 2.21
pydantic 1.10.6 pyflakes 3.1.0 Pygments 2.11.2
PyGObject 3.42.1 PyJWT 2.3.0 pyodbc 4.0.32
pyparsing 3.0.9 pyright 1.1.294 pirsistente 0.18.0
python-dateutil 2.8.2 python-lsp-jsonrpc 1.1.1 python-lsp-server 1.8.0
pytoolconfig 1.2.5 pytz 2022.7 pyzmq 23.2.0
requests 2.28.1 corda 1.7.0 rsa 4.9
s3transfer 0.6.2 scikit-learn 1.1.1 scipy 1.10.0
seaborn 0.12.2 SecretStorage 3.3.1 Send2Trash 1.8.0
setuptools 65.6.3 sei 1.16.0 sniffio 1.2.0
soupsieve 2.3.2.post1 ssh-import-id 5,11 stack-data 0.2.0
statsmodels 0.13.5 tenacity 8.1.0 terminado 0.17.1
threadpoolctl 2.2.0 tinycss2 1.2.1 tokenize-rt 4.2.1
tomli 2.0.1 tornado 6.1 traitlets 5.7.1
typing_extensions 4.4.0 ujson 5.4.0 aggiornamenti automatici 0,1
urllib3 1.26.14 virtualenv 20.16.7 wadllib 1.3.6
wcwidth 0.2.5 webencodings 0.5.1 websocket-client 0.58.0
whatthepatch 1.0.2 wheel 0.38.4 widgetsnbextension 3.6.1
yapf 0.33.0 Zipp 1.0.0