Share via


Versionshinweise für serverloses Computing

Wichtig

Dieses Feature befindet sich in der Public Preview. Informationen zur Berechtigung und Aktivierung finden Sie unter Aktivieren der Public Preview von serverlosem Computing.

In diesem Artikel werden die Features und Verhaltensweisen erläutert, die derzeit für serverloses Computing für Notebooks und Workflows verfügbar und geplant sind.

Databricks veröffentlicht regelmäßig Updates für serverloses Computing. Alle Benutzer erhalten innerhalb eines kurzen Zeitraums die gleichen Updates. Weitere Informationen finden Sie unter Wie werden Releases eingeführt?.

Anstehende Verhaltensänderungen

In diesem Abschnitt werden Verhaltensänderungen hervorgehoben, die in der nächsten Version von serverlosem Computing verfügbar gemacht werden. Wenn die Änderungen in die Produktion überführt werden, werden sie den Versionshinweisen hinzugefügt.

Versionshinweise

Dieser Abschnitt enthält Versionshinweise für serverloses Computing. Versionshinweise sind nach Jahr und Woche des Jahres strukturiert. Serverloses Computing wird immer mit dem zuletzt veröffentlichten Release ausgeführt, das hier aufgeführt ist.

Version 2024.15 des serverlosen Computings

15. April 2024

Die Version 2024.15 des serverlosen Computings wurde für die Produktion veröffentlicht. Dies ist die erste Version des serverlosen Computings. Sie entspricht in etwa Databricks Runtime 14.3, enthält allerdings Änderungen, die die Unterstützung einiger nicht serverloser Features sowie einiger Legacyfeatures entfernen.

Diese Version enthält die folgenden Updates:

Unterstützte Spark-Konfigurationsparameter

Um die Konfiguration von Spark auf serverlosem Computing zu automatisieren, hat Databricks die Unterstützung für die manuelle Einstellung aus den meisten Spark-Konfigurationen entfernt. Nur die folgenden Spark-Konfigurationsparameter können manuell festgelegt werden:

  • spark.sql.legacy.timeParserPolicy
  • spark.sql.session.timeZone
  • spark.sql.shuffle.partitions

Die Ausführung von Aufträgen auf serverlosem Computing schlägt fehl, wenn Sie eine Spark-Konfiguration festlegen, die nicht in dieser Liste enthalten ist.

Keine Unterstützung von Zwischenspeicherungs-API und SQL-Befehlen

Die Verwendung von Dataframe- und SQL-Zwischenspeicherungs-APIs wird nicht unterstützt. Die Verwendung dieser APIs oder SQL-Befehle hat eine Ausnahme zur Folge.

Nicht unterstützte APIs:

Nicht unterstützte SQL-Befehle:

Keine Unterstützung globaler temporärer Sichten

Die Erstellung globaler temporärer Sichten wird nicht unterstützt. Die Verwendung folgender Befehle hat eine Ausnahme zur Folge:

Stattdessen empfiehlt Databricks die Verwendung temporärer Sitzungssichten oder die Erstellung von Tabellen, wenn Daten sitzungsübergreifend übergeben werden müssen.

Keine Unterstützung von „CREATE FUNCTION“ (extern)

Der Befehl CREATE FUNCTION (extern) wird nicht unterstützt. Die Verwendung dieses Befehls führt zu einer Ausnahme.

Stattdessen empfiehlt Databricks die Verwendung von CREATE FUNCTION (SQL und Python) zum Erstellen von UDFs.

Keine Unterstützung von Hive SerDe-Tabellen

Hive SerDe-Tabellen werden nicht unterstützt. Darüber hinaus wird der entsprechende Befehl LOAD DATA, der Daten in eine Hive SerDe-Tabelle lädt, nicht unterstützt. Die Verwendung des Befehls hat eine Ausnahme zur Folge.

Die Unterstützung von Datenquellen ist auf AVRO, BINARYFILE, CSV, DELTA, JSON, KAFKA, ORC, PARQUET, ORC, TEXT und XML beschränkt.

Keine Unterstützung von Hive-Variablen

Hive-Variablen (z. B. ${env:var}, ${configName}, ${system:var} und spark.sql.variable) oder Konfigurationsvariablenverweise mit der Syntax ${var} werden nicht unterstützt. Die Verwendung von Hive-Variablen hat eine Ausnahme zur Folge.

Verwenden Sie stattdessen DECLARE VARIABLE, SET VARIABLE und SQL-Sitzungsvariablenverweise und Parametermarkierungen („?“ oder „:var“), um den Sitzungszustand zu deklarieren, zu ändern und auf den Sitzungszustand zu verweisen. In vielen Fällen können Sie auch die IDENTIFIER-Klausel verwenden, um Objektnamen zu parametrisieren.

Ausmusterung von input_file-Funktionen

Die Funktionen input_file_name(), input_file_block_length() und input_file_block_start() wurden ausgemustert. Von der Verwendung dieser Funktionen wird dringend abgeraten.

Verwenden Sie stattdessen die Spalte mit Dateimetadaten, um Dateimetadaten abzurufen.

Verhaltensänderungen

Die Version 2024.15 des serverlosen Computings enthält folgende Verhaltensänderungen:

  • Korrektur für unhex(hexStr): Bei Verwendung der unhex(hexStr)-Funktion wird „hexStr“ immer links auf ein ganzes Byte aufgefüllt. Zuvor wurde das erste halbe Byte von der unhex-Funktion ignoriert. Beispiel: unhex('ABC') erzeugt jetzt x'0ABC' anstatt x'BC'.
  • Automatisch generierte Spaltenaliase sind jetzt stabil: Wenn auf das Ergebnis eines Ausdrucks ohne einen benutzerseitig angegebenen Spaltenalias verwiesen wird, ist dieser automatisch generierte Alias jetzt stabil. Der neue Algorithmus führt möglicherweise zu einer Änderung der zuvor automatisch generierten Namen, die in Features wie materialisierten Sichten verwendet werden.
  • Tabellenüberprüfungen mit Feldern vom Typ CHAR werden jetzt immer aufgefüllt: Delta-Tabellen, bestimmte JDBC-Tabellen und externe Datenquellen speichern CHAR-Daten in nicht aufgefüllter Form. Beim Lesen werden die Daten von Databricks jetzt mit Leerzeichen auf die deklarierte Länge aufgefüllt, um eine korrekte Semantik sicherzustellen.
  • Umwandlungen von BIGINT/DECIMAL in TIMESTAMP lösen eine Ausnahme für überlaufende Werte aus: Databricks ermöglicht das Umwandeln von BIGINT und DECIMAL in TIMESTAMP, indem der Wert als Anzahl von Sekunden aus der Unix-Epoche behandelt wird. Zuvor wurden von Databricks überlaufende Werte zurückgeben. Nun wird jedoch im Falle eines Überlaufs eine Ausnahme ausgelöst. Verwenden Sie try_cast, um NULL anstelle einer Ausnahme zurückzugeben.
  • Die PySpark-UDF-Ausführung wurde verbessert, um exakt dem Verhalten der UDF-Ausführung beim Einzelbenutzercomputing zu entsprechen: Folgende Änderungen wurden vorgenommen:
    • Von UDFs mit einem Zeichenfolgenrückgabetyp werden nicht mehr implizit zeichenfolgenfremde Werte in Zeichenfolgen konvertiert. Zuvor wurde von UDFs mit dem Rückgabetyp str unabhängig vom tatsächlichen Datentyp des zurückgegebenen Werts ein str(..)-Wrapper auf das Ergebnis angewendet.
    • Von UDFs mit Rückgaben vom Typ timestamp werden keine Zeitzonenkonvertierung mehr auf Zeitstempel angewendet.

Systemumgebung

Serverloses Computing beinhaltet die folgende Systemumgebung:

  • Betriebssystem: Ubuntu 22.04.3 LTS
  • Python: 3.10.12
  • Delta Lake: 3.1.0

Installierte Python-Bibliotheken

Bibliothek Version Bibliothek Version Bibliothek Version
anyio 3.5.0 argon2-cffi 21.3.0 argon2-cffi-bindings 21.2.0
asttokens 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
Klicken 8.0.4 comm 0.1.2 contourpy 1.0.5
cryptography 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 facets-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
Packen 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 pyrsistent 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 rope 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 sechs 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 unattended-upgrades 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

Begrenzungen

Serverloses Computing basiert auf der gemeinsam genutzten Computearchitektur. Im Anschluss werden die wichtigsten Einschränkungen aufgeführt, die von gemeinsam genutztem Computing geerbt werden – zusammen mit zusätzlichen Einschränkungen für serverloses Computing. Eine vollständige Liste der Einschränkungen beim gemeinsam genutzten Computing finden Sie unter Einschränkungen des Computezugriffsmodus für Unity Catalog.

Allgemeine Einschränkungen

  • Scala und R werden nicht unterstützt.
  • Beim Schreiben von SQL wird nur ANSI SQL unterstützt.
  • Spark-RDD-APIs werden nicht unterstützt.
  • Spark-Kontext (Spark Context, sc), spark.sparkContext und sqlContext werden nicht unterstützt.
  • Sie können nicht auf DBFS zugreifen.
  • Databricks-Containerdienste werden nicht unterstützt.
  • Das Webterminal wird nicht unterstützt.
  • Bei Abfragen vom Typ Strukturiertes Streaming muss query.awaitTermination() aufgerufen werden, um sicherzustellen, dass die Abfrage abgeschlossen wird.
  • Abfragen können maximal 48 Stunden dauern.
  • Sie müssen Unity Catalog verwenden, um eine Verbindung mit externen Datenquellen herzustellen. Verwenden Sie externe Speicherorte, um auf Cloudspeicher zuzugreifen.
  • Die Unterstützung von Datenquellen ist auf AVRO, BINARYFILE, CSV, DELTA, JSON, KAFKA, ORC, PARQUET, ORC, TEXT und XML beschränkt.
  • Benutzerdefinierte Funktionen (User-Defined Functions, UDFs) können nicht auf das Internet zugreifen.
  • Einzelne Zeilen dürfen maximal 128 MB groß sein.
  • Die Spark-Benutzeroberfläche ist nicht verfügbar. Verwenden Sie stattdessen das Abfrageprofil, um Informationen zu Ihren Spark-Abfragen anzuzeigen. Siehe Abfrageprofil.

Einschränkungen für maschinelles Lernen

Einschränkungen für Notebooks

  • Notebooks haben Zugriff auf 8 GB Arbeitsspeicher. Dies ist nicht konfigurierbar.
  • Notebook-bezogene Bibliotheken werden nicht über Entwicklungssitzungen hinweg zwischengespeichert.
  • Das Freigeben von TEMP-Tabellen und -Sichten beim Freigeben eines Notebooks unter Benutzern wird nicht unterstützt.
  • AutoVervollständigen und Variablen-Explorer für Dataframes in Notebooks werden nicht unterstützt.

Einschränkungen für Workflows

  • Die Treibergröße für serverloses Computing für Workflows ist derzeit fest vorgegeben und kann nicht geändert werden.
  • Aufgabenprotokolle werden nicht pro Aufgabenausführung isoliert. Protokolle enthalten die Ausgabe aus mehreren Aufgaben.
  • Aufgabenbibliotheken werden für Notebookaufgaben nicht unterstützt. Verwenden Sie stattdessen Notebook-bezogene Bibliotheken. Informationen finden Sie unter Python-Bibliotheken im Notebook-Bereich.

Compute-spezifische Einschränkungen

Folgende Compute-spezifische Features werden nicht unterstützt:

  • Compute-Richtlinien
  • Compute-bezogene Initialisierungsskripts
  • Compute-bezogene Bibliotheken (einschließlich benutzerdefinierter Datenquellen und Spark-Erweiterungen). Verwenden Sie stattdessen Notebook-bezogene Bibliotheken.
  • Konfigurationen für den Datenzugriff auf Computeebene, einschließlich Instanzprofilen. Daher ist es nicht möglich, über HMS an Cloudpfaden oder mithilfe von DBFS-Einbindungen ohne eingebettete Anmeldeinformationen auf Tabellen und Dateien zuzugreifen.
  • Instanzenpools
  • Compute von Ereignisprotokollen
  • Apache Spark-Computekonfigurationen und -Umgebungsvariablen

Häufig gestellte Fragen (FAQ)

Wie werden Releases eingeführt?

Serverloses Computing ist ein versionsloses Produkt. Das bedeutet, dass Databricks automatisch Upgrades für die Runtime des serverlosen Computings durchführt, um Verbesserungen und Upgrades für die Plattform zu unterstützen. Alle Benutzer erhalten innerhalb eines kurzen Zeitraums die gleichen Updates.

Wie kann ich meine ausgeführte Version ermitteln?

Ihre serverlosen Workloads werden immer unter der neuesten Runtimeversion ausgeführt. Informationen zur neuesten Version finden Sie in den Versionshinweisen.