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
- Keine Unterstützung von Zwischenspeicherungs-API und SQL-Befehlen
- Keine Unterstützung globaler temporärer Sichten
- Keine Unterstützung von „CREATE FUNCTION“ (extern)
- Keine Unterstützung von Hive SerDe-Tabellen
- Keine Unterstützung von Hive-Variablen
- Ausmusterung von input_file-Funktionen
- Änderungen des Verhaltens
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:
- df.cache(), df.persist()
- df.unpersist()
- spark.catalog.cacheTable()
- spark.catalog.uncacheTable()
- spark.catalog.clearCache()
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 jetztx'0ABC'
anstattx'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 einstr(..)
-Wrapper auf das Ergebnis angewendet. - Von UDFs mit Rückgaben vom Typ
timestamp
werden keine Zeitzonenkonvertierung mehr auf Zeitstempel angewendet.
- Von UDFs mit einem Zeichenfolgenrückgabetyp werden nicht mehr implizit zeichenfolgenfremde Werte in Zeichenfolgen konvertiert. Zuvor wurde von UDFs mit dem Rückgabetyp
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
undsqlContext
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
- Databricks Runtime für Machine Learning und Apache Spark MLlib werden nicht unterstützt.
- GPUs werden nicht unterstützt.
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.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für