サーバーレス コンピューティングのリリース ノート
この記事では、ノートブックとジョブのサーバーレス コンピューティングで現在および今後使用できる機能と動作について説明します。
サーバーレス コンピューティングの詳細については、「サーバーレス コンピューティングに接続する」を参照してください。
Azure Databricks は、サーバーレス コンピューティングの更新プログラムを定期的にリリースし、プラットフォームの機能強化とアップグレードをサポートするためにサーバーレス コンピューティング ランタイムを自動的にアップグレードします。 すべてのユーザーが同じ更新プログラムを取得し、短期間でロール アウトされます。
サーバーレス クライアント イメージ
ノートブックとジョブ用の Databricks サーバーレス コンピューティングは、Spark Connect ベースのアーキテクチャを備えており、アプリケーションに影響を与えずに独立したエンジンのアップグレードを可能にします。 アプリケーションの互換性を確保するために、サーバーレス ワークロードでは、クライアント イメージまたはクライアントと呼ばれるバージョン管理された API が使用されます。これは、新しいサーバー バージョンとの互換性を維持します。
最新のクライアント イメージは、新しいクライアント イメージが解放されるまで更新プログラムを受け取り続けます。 ユーザーは、次のサポートされているクライアント イメージから選択できます。
リリース ノート
このセクションには、サーバーレス コンピューティングのリリース ノートが含まれています。 リリース ノートは、年および週ごとに整理されます。 サーバーレス コンピューティングは、常に、ここに記載されている最新リリースバージョンを使用して実行されます。
バージョン 2024.43
2024 年 10 月 28 日
このサーバーレス コンピューティング リリースは、 Databricks Runtime 15.4 にほぼ対応しています
新機能
- UTF-8 検証関数: このリリースでは、UTF-8 文字列を検証するための次の関数が導入されています。
- is_valid_utf8 は、文字列が有効な UTF-8 文字列であるかどうかを確認しました。
- make_valid_utf8 、無効な可能性がある UTF-8 文字列を、置換文字を使用して有効な UTF-8 文字列に変換します。
- validate_utf8 は入力が有効な UTF-8 文字列でない場合、エラーを発生させます。
- try_validate_utf8 は、入力が有効な UTF-8 文字列でない場合、
NULL
を返します。
- ALTER TABLE: を使用して UniForm Iceberg を有効にします。データ ファイルを書き換えることなく、既存のテーブルで UniForm Iceberg を有効にできるようになりました。 「既存のテーブルを変更して有効にする」をご覧ください。
- try_url_decode function: このリリースでは、URL でエンコードされた文字列をデコードする try_url_decode 関数が導入されています。 文字列が正しい形式になっていない場合、関数はエラーを発生させるのではなく
NULL
を返します。 - 必要に応じて、オプティマイザーが強制されていない外部キー制約に依存できるようにします: クエリのパフォーマンスを向上させるには、テーブルのCREATEまたはALTERをするときに、
FOREIGN KEY
制約にRELY
キーワードを指定できるようになりました。 - 選択的上書きに対して並列化されたジョブの実行: データを削除して新しいデータを並列に挿入するジョブを実行
replaceWhere
使用して選択的上書きが実行され、クエリのパフォーマンスとクラスターの使用率が向上します。 - 選択的上書きによる変更データ フィードのパフォーマンスが向上しました: 変更データ フィードを含むテーブルで
replaceWhere
を使用して選択的上書きを行うと、挿入されたデータに対して個別の変更データ ファイルが書き込まれるようになりました。 これらの操作では、基になる Parquet データ ファイルに存在する非表示の_change_type
列を使って、書き込みを増やすことなく変更が記録されます。 COPY INTO
コマンドのクエリ待機時間の短縮: このリリースには、COPY INTO
コマンドのクエリ待機時間を向上させる変更が含まれています。 この改善は、RocksDB 状態ストアによる状態の読み込みを非同期にすることによって実装されます。 この変更により、多くの状態を持つクエリ (たとえば、既に取り込まれたファイルの数が多いクエリ) で、開始時間が向上するはずです。- check 制約テーブル機能の削除のサポート:
ALTER TABLE table_name DROP FEATURE checkConstraints
を使用してデルタ テーブルからcheckConstraints
テーブル機能を削除できるようになりました。 「CHECK 制約を無効にする」をご覧ください。
動作の変更
ビューのスキーマ バインドの変更: ビューの基になるクエリのデータ型が、ビューの作成時に使用されたものから変更されると、Databricks は、安全なキャストを実行できないときにビューへの参照に関するエラーをスローしなくなりました。
代わりに、ビュー通常のキャストルールを可能な限り使用してを計算します。 この変更により、Databricks はテーブル スキーマの変更を許容しやすくなります。
ブールロジック外の
NOT
に対して文書化されていない!
構文の許容を禁止する: Databricks は、ブールロジックの外部でNOT
のシノニムとして!
を使用することを許容しなくなります。 この変更により、混乱が軽減され、SQL 標準への準拠性が増し、SQL の移植性が高くなります。 次に例を示します。CREATE ... IF ! EXISTS
、IS !NULL、! NULL
列またはフィールド プロパティ、! IN
および !BETWEEN は以下のように置き換える必要があります。CREATE ... IF NOT EXISTS
、IS NOT NULL
、NOT NULL
列またはフィールド プロパティ、NOT IN
およびNOT BETWEEN
。ブール型プレフィックス演算子
!
(例:!is_mgr
や!(true AND false)
) は、この変更の影響を受けません。views: Databricks では、列定義構文の文書化されていない部分と未処理の部分を禁止すると、名前付き列と列コメントを含む CREATE VIEW がサポートされます。
列の型、
NOT NULL
制約、DEFAULT
の指定は、影響を生じない構文内では許容されてきました。 Databricks はこの構文を許容しなくなります。 これにより、混乱が軽減され、SQL 標準への準拠性が増し、将来の機能強化が可能になります。Spark および Photon での Base64 デコードの一貫したエラー処理: このリリースでは、Photon が Base64 デコード エラーを処理する方法が、これらのエラーの Spark 処理と一致するように変更されます。 この変更の前は、Photon と Spark のコード生成パスでは解析例外が生成されないことがあり、Spark では実行が正しく解釈されて
IllegalArgumentException
またはConversionInvalidInputError
が生成されていました。 この更新で、Photon でも Base64 デコード エラーの発生時に Spark と同じ例外が常に生成されるようになり、したがってエラー処理の予測可能性と信頼性が向上します。無効な列に
CHECK
制約を追加すると、UNRESOLVED_COLUMNが返されるようになりました。WITH_SUGGESTIONエラー クラス: Databricks Runtime 15.3 以降では、無効な列名を参照するCHECK
制約を含むALTER TABLE ADD CONSTRAINT
ステートメントにより、UNRESOLVED_COLUMNが返されます。エラー クラスWITH_SUGGESTIONします。 以前は、INTERNAL_ERROR
が返されていました。
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]]
など) を含むすべてのパターンです。
バージョン 15.1
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
を返しました。
バージョン 14.3
2024 年 4 月 15 日
これは、最初のサーバーレス コンピューティング バージョンです。 このバージョンは、Databricks Runtime 14.3 にほぼ対応しており、一部のサーバーレスおよびレガシ機能のサポートを削除する変更が含まれています。
サポートされている Spark 構成パラメーター
サーバーレス コンピューティングでの Spark の構成を自動化するために、Azure Databricks ではほとんどの Spark 構成を手動で設定するためのサポートが削除されました。 手動で設定できるのは、次の Spark 構成パラメーターのみです。
spark.sql.legacy.timeParserPolicy
(既定値はCORRECTED
です)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 データを格納します。 読み取り時に、Azure Databricks は、正しいセマンティクスを確保するために、宣言された長さにスペースを含むデータを埋め込みます。- BIGINT/DECIMAL から TIMESTAMP へのキャストでは、オーバーフローした値の例外がスローされます: Azure Databricks では、UNIX エポックからの秒数として値を処理することで、BIGINT と DECIMAL から TIMESTAMP へのキャストが可能になります。 以前は、Azure Databricks はオーバーフローした値を返していましたが、オーバーフローの場合は例外をスローするようになりました。
try_cast
は、例外の代わりに NULL を返すために使用します。 - PySpark UDF の実行が、シングル ユーザー コンピューティングでの UDF 実行の正確な動作と一致するように改善されました: 次の変更が行われました。
- 文字列戻り値の型を持つ UDF は、文字列以外の値を文字列に暗黙的には変換しなくなりました。 以前は、戻り値の型
str
が指定された UDF では、戻り値の実際のデータ型に関係なく、str(..)
ラッパーが結果に適用されました。 - 戻り値の型
timestamp
を持つ UDF は、タイムゾーン変換をタイムスタンプに暗黙的には適用しなくなりました。
- 文字列戻り値の型を持つ UDF は、文字列以外の値を文字列に暗黙的には変換しなくなりました。 以前は、戻り値の型