Note sulla versione di calcolo serverless

Importante

Questa funzionalità è disponibile in anteprima pubblica. Per informazioni sull'idoneità e l'abilitazione, vedere Abilitare l'anteprima pubblica di calcolo serverless.

Questo articolo illustra le funzionalità e i comportamenti attualmente disponibili e imminenti nelle risorse di calcolo serverless per notebook e flussi di lavoro.

Databricks rilascia periodicamente gli aggiornamenti alle risorse di calcolo serverless. Tutti gli utenti ottengono gli stessi aggiornamenti, distribuiti in un breve periodo di tempo. Vedere Come vengono implementate le versioni?

Modifiche comportamentali imminenti

Questa sezione evidenzia 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.

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.

Serverless compute version 2024.15

15 aprile 2024

La versione di calcolo serverless 2024.15 è stata rilasciata nell'ambiente di produzione. Si tratta della versione di calcolo serverless iniziale che corrisponde approssimativamente a Databricks Runtime 14.3 con alcune modifiche che rimuovono il supporto per alcune funzionalità non serverless e legacy.

Questa versione include gli aggiornamenti seguenti:

Configurazioni spark non supportate

Nel tentativo di automatizzare le configurazioni spark nel calcolo serverless, Databricks ha rimosso il supporto per la maggior parte delle configurazioni Spark. È possibile impostare spark.sql.legacy.timeParserPolicy e spark.sql.session.timeZone solo nelle configurazioni di Spark.

Se si prova un'altra configurazione di Spark, non verrà eseguita.

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 genererà 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, edizione Standard T 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

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 Portachiavi 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 Segreto Archiviazione 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

Limiti

Il calcolo serverless si basa sull'architettura di calcolo condivisa. Di seguito sono elencate le limitazioni più importanti ereditate dal calcolo condiviso, insieme a limitazioni aggiuntive specifiche del serverless. Per un elenco completo delle limitazioni di calcolo condivise, vedere Limitazioni della modalità di accesso alle risorse di calcolo per il catalogo unity.

Limitazioni generali

  • Scala e R non sono supportati.
  • Durante la scrittura di SQL è supportato solo ANSI SQL.
  • Le API RDD Spark non sono supportate.
  • Contesto Spark (sc), spark.sparkContexte sqlContext non sono supportati.
  • Non è possibile accedere a DBFS.
  • I servizi contenitore Databricks non sono supportati.
  • Il terminale Web non è supportato.
  • Le query structured Streaming richiedono la chiamata di query.awaitTermination() per assicurarsi che la query venga completata.
  • Nessuna query può essere eseguita più di 48 ore.
  • È necessario usare Unity Catalog per connettersi a origini dati esterne. Usare percorsi esterni per accedere all'archiviazione cloud.
  • Il supporto per le origini dati è limitato ad AVRO, BINARYFILE, CSV, DELTA, JSON, KAFKA, ORC, PARQUET, ORC, TEXT e XML.
  • Le funzioni definite dall'utente non possono accedere a Internet.
  • Le singole righe non devono superare le dimensioni massime di 128 MB.
  • L'interfaccia utente di Spark non è disponibile. Usare invece il profilo di query per visualizzare informazioni sulle query Spark. Vedere Profilo di query.

Limitazioni di Machine Learning

Limitazioni dei notebook

  • I notebook hanno accesso a 8 GB di memoria che non possono essere configurati.
  • Le librerie con ambito notebook non vengono memorizzate nella cache tra le sessioni di sviluppo.
  • La condivisione di tabelle e viste TEMP quando si condivide un notebook tra gli utenti non è supportata.
  • Il completamento automatico e Esplora variabili per i dataframe nei notebook non sono supportati.

Limitazioni del flusso di lavoro

  • Le dimensioni del driver per il calcolo serverless per i flussi di lavoro sono attualmente fisse e non possono essere modificate.
  • I log attività non sono isolati per ogni esecuzione di attività. I log conterranno l'output di più attività.
  • Le librerie di attività non sono supportate per le attività del notebook. Usare invece librerie con ambito notebook. Vedere Librerie Python con ambito notebook.

Limitazioni specifiche del calcolo

Le funzionalità specifiche del calcolo seguenti non sono supportate:

  • Criteri di calcolo
  • Script init con ambito di calcolo
  • Librerie con ambito di calcolo, incluse origini dati personalizzate ed estensioni Spark. Usare invece librerie con ambito notebook.
  • Configurazioni di accesso ai dati a livello di calcolo. Di conseguenza, l'accesso a tabelle e file tramite HMS nei percorsi cloud o con montaggi DBFS che non dispongono di credenziali incorporate non funzionerà.
  • Pool di istanze
  • Registri eventi di calcolo
  • Configurazioni di calcolo e variabili di ambiente apache Spark

Domande frequenti

Come vengono implementate le versioni?

Il calcolo serverless è un prodotto senza versione, il che significa che Databricks aggiorna 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.

Ricerca per categorie determinare quale versione è in esecuzione?

I carichi di lavoro serverless saranno sempre in esecuzione nella versione di runtime più recente. Vedere Note sulla versione per la versione più recente.