Versionshinweise für serverloses Computing
In diesem Artikel werden die Features und Verhaltensweisen erläutert, die derzeit für serverloses Computing für Notebooks und Aufträge verfügbar und geplant sind.
Weitere Informationen zu serverlosem Computing finden Sie unter Herstellen einer Verbindung mit serverlosem Computing.
Databricks veröffentlicht regelmäßig Updates für serverloses Computing und aktualisiert automatisch die Runtime für serverloses Computing, um Verbesserungen und Upgrades auf der Plattform zu unterstützen. Alle Benutzer erhalten innerhalb eines kurzen Zeitraums die gleichen Updates.
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.
September 2024
Änderung der Schemabindung für Ansichten
Wenn sich die Datentypen in der zugrunde liegenden Abfrage einer Ansicht in Typen ändern, die beim ersten Erstellen der Ansicht nicht verwendet wurden, gibt Databricks keine Fehler mehr für Verweise auf die Ansicht aus, wenn keine sichere Umwandlung ausgeführt werden kann. Stattdessen wird nach Möglichkeit mit regulären Umwandlungs-Regeln ausgeglichen.
Diese Änderung ermöglicht es Databricks, Tabellenschemaänderungen besser zu tolerieren.
Verbieten nicht dokumentierter !
-Syntaxtoleranz für NOT
außerhalb der booleschen Logik
Databricks toleriert außerhalb der booleschen Logik nicht mehr das Verwenden von !
als Synonym für NOT
. Zum Beispiel:
CREATE ... IF ! EXISTS
, IS ! NULL, ! NULL
-Spalteneigenschaft oder -Feldeigenschaft, ! IN
und ! BETWEEN müssen durch Folgendes ersetzt werden:
CREATE ... IF NOT EXISTS
-, IS NOT NULL
-, NOT NULL
-Spalteneigenschaft oder Feldeigenschaft, NOT IN
und NOT BETWEEN
.
Diese Änderung vermindert Verwirrung, entspricht dem SQL-Standard und macht SQL portierbarer.
Der booleschen Präfixoperator !
(z. B. !is_mgr
oder !(true AND false)
) ist von dieser Änderung nicht betroffen.
Verbieten nicht dokumentierter und unverarbeiteter Teile der Spaltendefinitionssyntax in Ansichten
Databricks unterstützt CREATE VIEW mit benannten Spalten und Spaltenkommentaren.
Die Spezifikation von Spaltentypen, NOT NULL
-Einschränkungen oder DEFAULT
wurde in der Syntax toleriert, ohne dass dies Folgen hat.
Databricks entfernt diese Syntaxtoleranz.
Dies reduziert Verwirrung, entspricht dem SQL-Standard und ermöglicht zukünftige Verbesserungen.
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.
Das JDK wird von JDK 8 auf JDK 17 aktualisiert
15. August 2024
Serverloses Compute für Notebooks und Workflows wurde von Java Development Kit (JDK) 8 auf der Serverseite zu JDK 17 migriert. Dieses Upgrade umfasst die folgenden Verhaltensänderungen:
Fehlerkorrekturen
Korrektes Parsen von Regex-Mustern mit Negation in geschachtelter Zeichengruppierung: Mit diesem Upgrade unterstützt Azure Databricks jetzt das richtige Parsen von Regex-Mustern mit Negation in geschachtelter Zeichengruppierung. Beispielsweise wird [^[abc]]
als „beliebiges Zeichen analysiert, das NICHT abc“ ist.
Darüber hinaus war das Photon-Verhalten mit Spark für geschachtelte Zeichenklassen inkonsistent. Regex-Muster, die geschachtelte Zeichenklassen enthalten, verwenden Photon nicht mehr und verwenden stattdessen Spark. Eine geschachtelte Zeichenklasse ist jedes Muster, das eckige Klammern in eckigen Klammern enthält, z. B. [[a-c][1-3]]
.
Version 2024.30
23. Juli 2024
Dieses serverlose Computingrelease entspricht ungefähr Databricks Runtime 15.1.
Neue Funktionen
Unterstützung für die Sternsyntax (*
) in der WHERE
-Klausel: Sie können jetzt die Sternsyntax (*
) in der WHERE
-Klausel verwenden, um auf alle Spalten in der SELECT
-Liste zu verweisen.
Beispiel: SELECT * FROM VALUES(1, 2) AS T(a1, a2) WHERE 1 IN(T.*)
.
Änderungen
Verbesserte Wiederherstellung nach Fehlern für die JSON-Analyse: Der für from_json()
und JSON-Pfadausdrücke verwendete JSON-Parser wird bei falsch formatierter Syntax jetzt schneller wiederhergestellt, sodass weniger Datenverluste auftreten.
Beim falsch formatierter JSON-Syntax in einem Strukturfeld, einem Arraywert, einem Zuordnungsschlüssel oder einem Zuordnungswert gibt der JSON-Parser NULL
jetzt nur für das nicht lesbare Feld, den Schlüssel oder das Element zurück. Nachfolgende Felder, Schlüssel oder Elemente werden ordnungsgemäß analysiert. Vor dieser Änderung hat der JSON-Parser die Analyse des Arrays, der Struktur oder der Zuordnung abgebrochen und für den verbleibenden Inhalt NULL
zurückgegeben.
Version 2024.15
15. April 2024
Dies ist die Anfangsversion für serverloses Computing. Diese Version entspricht ungefähr Databricks Runtime 14.3 mit einigen Änderungen, um die Unterstützung für einige nicht serverlose und ältere Features zu entfernen.
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
(Standardwert:EXCEPTION
)spark.sql.session.timeZone
(Standardwert:Etc/UTC
)spark.sql.shuffle.partitions
(Standardwert:auto
)spark.sql.ansi.enabled
(Standardwert:true
)
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.
Weitere Informationen zum Konfigurieren von Spark-Eigenschaften finden Sie unter Festlegen von Spark-Konfigurationseigenschaften in Azure Databricks.
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
Die folgenden Python-Bibliotheken werden standardmäßig auf serverlosem Computing installiert. Zusätzliche Abhängigkeiten können mithilfe des Seitenbereichs Umgebung installiert werden. Weitere Informationen finden Sie unter Installieren von Notebookabhängigkeiten.
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 |