サーバーレス コンピューティングのリリース ノート
この記事では、ノートブックとジョブのサーバーレス コンピューティングで現在および今後使用できる機能と動作について説明します。
サーバーレス コンピューティングの詳細については、「サーバーレス コンピューティングに接続する」を参照してください。
Databricks は、サーバーレス コンピューティングの更新プログラムを定期的にリリースし、サーバーレス コンピューティング ランタイムを自動的にアップグレードして、プラットフォームの機能強化とアップグレードをサポートします。 すべてのユーザーが同じ更新プログラムを取得し、短期間でロール アウトされます。
近日公開される動作の変更
このセクションでは、次のサーバーレス コンピューティング バージョンで導入される動作の変更に焦点を当てます。 変更が運用環境にプッシュされると、リリース ノートに追加されます。
2024 年 9 月
ビューのスキーマ バインドの変更
ビューの基になるクエリのデータ型がそのビューが最初に作成されたときに使用されたものから変化する場合に、安全なキャストを実行できなくても Databricks はビューへの参照に関するエラーをスローしなくなります。 代わりに、ビューは可能な場合は通常のキャスト ルールを使用して補正を行うようになります。
この変更により、Databricks はテーブル スキーマの変更を許容しやすくなります。
ドキュメント化されていないブール型ロジックの外部での !
構文の NOT
としての許容を禁止する
Databricks は、ブール型ロジックの外部での NOT
の同意語としての !
の使用を許容しなくなります。 次に例を示します。
CREATE ... IF ! EXISTS
、IS !NULL、! NULL
列またはフィールド プロパティ、! IN
および !BETWEEN は以下のように置き換える必要があります。
CREATE ... IF NOT EXISTS
、IS NOT NULL
、NOT NULL
列またはフィールド プロパティ、NOT IN
および NOT BETWEEN
。
この変更により、混乱が軽減され、SQL 標準への準拠性が増し、SQL の移植性が高くなります。
ブール型プレフィックス演算子 !
(例: !is_mgr
や !(true AND false)
) は、この変更の影響を受けません。
ドキュメント化けされておらず、処理もされない一部のビュー内の列定義構文を禁止する
Databricks は CREATE VIEW と名前付き列と列コメントをサポートしています。
列の型、NOT NULL
制約、DEFAULT
の指定は、影響を生じない構文内では許容されてきました。
Databricks はこの構文を許容しなくなります。
これにより、混乱が軽減され、SQL 標準への準拠性が増し、将来の機能強化が可能になります。
リリース ノート
このセクションには、サーバーレス コンピューティングのリリース ノートが含まれています。 リリース ノートは、年および週ごとに整理されます。 サーバーレス コンピューティングは、常に、ここに記載されている最新リリースバージョンを使用して実行されます。
JDK は JDK 8 から JDK 17 にアップグレードされます
2024 年 8 月 15 日
ノートブックとワークフローのサーバーレス コンピューティングは、サーバー側で Java 開発キット (JDK) 8 から JDK 17 に移行されました。 このアップグレードには、次の動作変更が含まれます。
バグ修正
入れ子になった文字グループ化に否定を含む正規表現パターンの正しい解析: このアップグレードにより、Azure Databricks は入れ子になった文字グループ化に否定を含む正規表現パターンの正しい解析をサポートするようになりました。 たとえば、[^[abc]]
は「'abc' のいずれかではないすべての文字」として解析されます。
さらに、Photon の動作は入れ子になった文字クラスに Spark の一貫性がありませんでした。 入れ子になった文字クラスを含む正規表現パターンには Photon が使用されなくなり、代わりに Spark が使用されます。 入れ子になった文字クラスは、角かっこ内に角かっこ ( [[a-c][1-3]]
など) を含むすべてのパターンです。
バージョン 2024.30
2024 年 7 月 23 日
このサーバーレス コンピューティング リリースは、大まかには Databricks Runtime 15.1 に対応するものです
新機能
WHERE
句でスター (*
) 構文のサポート: スター (*
) 構文を WHERE
句で使用し、SELECT
リストのすべての列を参照できるようになりました。
たとえば、SELECT * FROM VALUES(1, 2) AS T(a1, a2) WHERE 1 IN(T.*)
のようにします。
変更点
JSON 解析のエラー復旧を改善: from_json()
および JSON パス式に使用する JSON パーサーが、形式に誤りがある構文から高速に回復するようになり、データ損失が軽減されました。
構造体フィールド、配列値、マップ キー、またはマップ値で形式に誤りがある JSON 構文が検出された場合、JSON パーサーは読み取り不可能なフィールド、キー、または要素に対してのみ NULL
を返すようになりました。 後続のフィールド、キー、要素は適切に解析されます。 この変更以前は、JSON パーサーは配列、構造体、またはマップの解析を中止し、残りのコンテンツに対して NULL
を返しました。
バージョン 2024.15
2024 年 4 月 15 日
これは、最初のサーバーレス コンピューティング バージョンです。 このバージョンは、Databricks Runtime 14.3 にほぼ対応しており、一部のサーバーレスおよびレガシ機能のサポートを削除する変更が含まれています。
サポートされている Spark 構成パラメーター
サーバーレス コンピューティングでの Spark の構成を自動化するため、Databricks ではほとんどの Spark 構成の手動設定のサポートが削除されました。 手動で設定できるのは、次の Spark 構成パラメーターのみです。
spark.sql.legacy.timeParserPolicy
(既定値はEXCEPTION
です)spark.sql.session.timeZone
(既定値はEtc/UTC
です)spark.sql.shuffle.partitions
(既定値はauto
です)spark.sql.ansi.enabled
(既定値はtrue
です)
この一覧にない Spark 構成を設定した場合、サーバーレス コンピューティングでのジョブの実行は失敗します。
Spark プロパティの構成の詳細については、「Azure Databricks で Spark 構成プロパティを設定する」を参照してください。
input_file 関数は非推奨です
input_file_name()、input_file_block_length()、input_file_block_start() の各関数は非推奨となりました。 これらの関数の使用はお勧めできません。
代わりに、ファイル メタデータ列を使用してファイル メタデータ情報を取得します。
動作の変更
サーバーレス コンピューティング バージョン 2024.15 には、次の動作の変更が含まれています。
- unhex(hexStr) バグ修正:
unhex(hexStr)
関数を使用すると、hexStr は常に左からバイト全体に埋め込まれます。 以前は、unhex 関数は最初の半バイトを無視しました。 たとえば、unhex('ABC')
は、現在はx'0ABC'
をx'BC'
の代わりに生成します。 - 自動生成された列の別名の安定性の向上: 式の結果がユーザー指定の列別名なしで参照されると、この自動生成された別名が安定するようになりました。 新しいアルゴリズムでは、具体化されたビューなどの機能で使用されていた、以前に自動生成された名前が変更される可能性があります。
CHAR
型フィールドを含むテーブル スキャンへの埋め込みの常時実行: Delta テーブル、特定の JDBC テーブル、外部データ ソースは、非埋め込み形式で CHAR データを格納します。 読み取り時に、Databricks は正しいセマンティクスを確保するために、スペースを使用して宣言された長さまでにデータを埋め込むようになりました。- BIGINT/DECIMAL から TIMESTAMP へのキャストで、オーバーフローした値の例外がスローされる: Databricks では、値を Unix エポックからの秒数として扱うことで、BIGINT と DECIMAL から TIMESTAMP へのキャストが可能になります。 以前は、Databricks はオーバーフローした値を返していましたが、オーバーフローの場合は例外をスローするようになりました。
try_cast
は、例外の代わりに NULL を返すために使用します。 - PySpark UDF の実行が、シングル ユーザー コンピューティングでの UDF 実行の正確な動作と一致するように改善されました: 次の変更が行われました。
- 文字列戻り値の型を持つ UDF は、文字列以外の値を文字列に暗黙的には変換しなくなりました。 以前は、戻り値の型
str
が指定された UDF では、戻り値の実際のデータ型に関係なく、str(..)
ラッパーが結果に適用されました。 - 戻り値の型
timestamp
を持つ UDF は、タイムゾーン変換をタイムスタンプに暗黙的には適用しなくなりました。
- 文字列戻り値の型を持つ UDF は、文字列以外の値を文字列に暗黙的には変換しなくなりました。 以前は、戻り値の型
システム環境
サーバーレス コンピューティングには、次のシステム環境が含まれます。
- オペレーティング システム: Ubuntu 22.04.3 LTS
- Python: 3.10.12
- Delta Lake: 3.1.0
インストールされている Python ライブラリ
既定では、次の Python ライブラリがサーバーレス コンピューティングにインストールされます。 追加の依存関係は、{環境} サイド パネルを使用してインストールできます。 「ノートブックの依存関係をインストールする」を参照してください。
ライブラリ | Version | ライブラリ | Version | ライブラリ | 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 |
クリックし | 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 | ノートブック | 6.5.2 |
notebook_shim | 0.2.2 | numpy | 1.23.5 | oauthlib | 3.2.0 |
パッケージング | 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 | 6 | 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 |