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.
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.43
28. Oktober 2024
Diese serverlose Computeversion entspricht ungefähr Databricks Runtime 15.4.
Neue Funktionen
- UTF-8-Überprüfungsfunktionen: In dieser Version werden die folgenden Funktionen zum Validieren von UTF-8-Zeichenfolgen eingeführt:
- is_valid_utf8 überprüft, ob eine Zeichenfolge eine gültige UTF-8-Zeichenkette ist.
- make_valid_utf8 konvertiert eine potenziell ungültige UTF-8-Zeichenfolge in eine gültige UTF-8-Zeichenfolge mit Ersetzungszeichen.
- validate_utf8 löst einen Fehler aus, wenn die Eingabe keine gültige UTF-8-Zeichenkette ist.
- try_validate_utf8 gibt
NULL
zurück, wenn die Eingabe keine gültige UTF-8-Zeichenkette ist.
- Aktivieren Sie UniForm Iceberg mithilfe von ALTER TABLE: Sie können uniForm Iceberg jetzt auf vorhandenen Tabellen aktivieren, ohne Datendateien neu zu schreiben. Weitere Informationen finden Sie unter Aktivieren durch Verändern einer vorhandenen Tabelle.
- try_url_decode Funktion: In dieser Version wird die try_url_decode-Funktion eingeführt, die eine URL-codierte Zeichenfolge decodiert. Wenn die Zeichenfolge nicht das richtige Format hat, gibt die Funktion
NULL
zurück, anstatt einen Fehler zu auslösen. - Optional können Sie zulassen, dass der Optimierer auf nicht erzwungene Fremdschlüsseleinschränkungen angewiesen ist: Um die Abfrageleistung zu verbessern, können Sie nun das
RELY
Schlüsselwort fürFOREIGN KEY
Einschränkungen angeben, wenn Sie eine Tabelle ERSTELLEN oder ÄNDERN . - Parallelisierter Auftrag wird für selektive Überschreibungen ausgeführt: Selektive Überschreibungen mit jetzt ausgeführten
replaceWhere
Aufträgen, mit denen Daten gelöscht und neue Daten parallel eingefügt werden, um die Abfrageleistung und die Clusterauslastung zu verbessern. - Verbesserte Leistung für Änderungsdatenfeeds mit selektiven Überschreibungen: Selektive Überschreibungen mithilfe von
replaceWhere
Tabellen mit Änderungsdatenfeed schreiben keine separaten Änderungsdatendateien für eingefügte Daten mehr. Diese Vorgänge verwenden eine ausgeblendete_change_type
-Spalte, die in den zugrunde liegenden Parquet-Datendateien vorhanden ist, um Änderungen ohne Schreibverstärkung aufzuzeichnen. - Verbesserte Abfragelatenz für den
COPY INTO
Befehl: Diese Version enthält eine Änderung, die die Abfragelatenz für denCOPY INTO
Befehl verbessert. Diese Verbesserung wird implementiert, indem das Laden des Zustands durch den RocksDB-Zustandsspeicher asynchron wird. Dank dieser Änderung sollten Sie eine Verbesserung der Startzeiten für Abfragen mit großen Zuständen feststellen,wie Abfragen mit einer großen Anzahl bereits erfasster Dateien. - Unterstützung für das Ablegen der Funktion "Check constraints table": Sie können das
checkConstraints
Tabellenfeature jetzt mithilfeALTER TABLE table_name DROP FEATURE checkConstraints
einer Delta-Tabelle ablegen. Weitere Informationen finden Sie unter Deaktivieren von Überprüfungseinschränkungen.
Verhaltensänderungen
Änderung der Schemabindung für Ansichten: Wenn sich die Datentypen in der zugrunde liegenden Abfrage einer Ansicht von denen ändern, die beim ersten Erstellen der Ansicht verwendet wurden, löst Databricks keine Fehler mehr für Verweise auf die Ansicht aus, wenn keine sichere Umwandlung ausgeführt werden kann.
Stattdessen entschädigt die Ansicht nach Möglichkeit die Verwendung regulärer Umwandlungsregeln. Diese Änderung ermöglicht es Databricks, Tabellenschemaänderungen besser zu tolerieren.
Nicht dokumentierte
!
Syntax-Tolerierung fürNOT
externe boolesche Logik nicht zulassen: Databricks tolerieren die Verwendung!
als Synonym fürNOT
außerhalb der booleschen Logik nicht mehr. Diese Änderung vermindert Verwirrung, entspricht dem SQL-Standard und macht SQL portierbarer. 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
undNOT BETWEEN
.Der booleschen Präfixoperator
!
(z. B.!is_mgr
oder!(true AND false)
) ist von dieser Änderung nicht betroffen.Nicht dokumentierte und nicht verarbeitete Teile der Spaltendefinitionssyntax in Ansichten nicht zulassen: Databricks unterstützt CREATE VIEW mit benannten Spalten und Spaltenkommentaren.
Die Spezifikation von Spaltentypen,
NOT NULL
-Einschränkungen oderDEFAULT
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.Einheitliche Fehlerbehandlung für die Base64-Decodierung in Spark und Photon: Diese Version ändert, wie Photon Base64-Decodierungsfehler behandelt, um die Spark-Behandlung dieser Fehler abzugleichen. Vor diesen Änderungen konnte der Photon- und Spark-Codegenerierungspfad manchmal keine Analyseausnahmen auslösen, während die Spark-Ausführung richtig
IllegalArgumentException
oderConversionInvalidInputError
auslöste. Mit diesem Update wird sichergestellt, dass Photon bei Base64-Decodierungsfehlern konsistent dieselben Ausnahmen auslöst, was eine vorhersehbarere und zuverlässige Fehlerbehandlung ermöglicht.Das Hinzufügen einer
CHECK
Einschränkung für eine ungültige Spalte gibt jetzt den UNRESOLVED_COLUMN zurück. WITH_SUGGESTION Fehlerklasse: Um nützlichere Fehlermeldungen bereitzustellen, gibt in Databricks Runtime 15.3 und höher eine Anweisung, die eineALTER TABLE ADD CONSTRAINT
Einschränkung enthält, die auf einenCHECK
ungültigen Spaltennamen verweist, den UNRESOLVED_COLUMN zurück. WITH_SUGGESTION Fehlerklasse. Zuvor wurde einINTERNAL_ERROR
Wert zurückgegeben.
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
Korrekte Analyse von Regex-Mustern mit Negation in geschachtelter Zeichengruppierung: Mit diesem Upgrade unterstützt Azure Databricks jetzt die richtige Analyse 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 *
-Syntax (Stern) in der WHERE
-Klausel: Sie können jetzt die *
-Syntax (Stern) 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.*)
.
Verhaltensä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.
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. - PySpark UDF-Ausführung wurde verbessert, um das genaue Verhalten der UDF-Ausführung bei der Berechnung einzelner Benutzer abzugleichen: Die folgenden Ä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 |