サーバーレス コンピューティングのリリース ノート
この記事では、ノートブックとジョブのサーバーレス コンピューティングで現在および今後使用できる機能と動作について説明します。
サーバーレス コンピューティングの詳細については、「サーバーレス コンピューティングに接続する」を参照してください。
Azure Databricks は、サーバーレス コンピューティングの更新プログラムを定期的にリリースし、プラットフォームの機能強化とアップグレードをサポートするためにサーバーレス コンピューティング ランタイムを自動的にアップグレードします。 すべてのユーザーが同じ更新プログラムを取得し、短期間でロール アウトされます。
サーバーレス環境バージョン
ノートブックとジョブ用の Databricks サーバーレス コンピューティングは、Spark Connect ベースのアーキテクチャを備えており、アプリケーションに影響を与えずに独立したエンジンのアップグレードを可能にします。 アプリケーションの互換性を確保するために、サーバーレス ワークロードでは、環境バージョンまたはクライアントと呼ばれるバージョン管理された API が使用され、新しいサーバー バージョンとの互換性が維持されます。
最新の環境バージョンは、新しいバージョンがリリースされるまで更新プログラムを受け取り続けます。 ユーザーは、次のサポートされている環境バージョンから選択できます:
リリース ノート
このセクションには、サーバーレス コンピューティングのリリース ノートが含まれています。 リリース ノートは、年および週ごとに整理されます。 サーバーレス コンピューティングは、常に、ここに記載されている最新リリースバージョンを使用して実行されます。
- サーバーレス ノートブックで使用可能な高メモリ設定 (パブリック プレビュー)
- バージョン 16.1
- バージョン 15.4
- JDK は JDK 8 から JDK 17 にアップグレードされます
- バージョン 15.1
- バージョン 14.3
サーバーレス ノートブックで使用可能な高メモリ設定 (パブリック プレビュー)
2025 年 2 月 7 日
これで、サーバーレス コンピューティング ノートブックのワークロードに対して、より大きなメモリ サイズを構成できるようになりました。 この設定は、対話型のノートブック ワークロードとスケジュールされたノートブック ワークロードの両方に適用できます。
メモリが多いサーバーレス使用量は、標準メモリよりも DBU の放射率が高くなります。
詳細については、「サーバーレス ワークロードの高メモリを構成する」を参照してください。
バージョン 16.1
2025 年 2 月 5 日
このサーバーレス コンピューティング リリースは、大まかには Databricks Runtime 16.0 と Databricks Runtime 16.1 に対応するものです。
新機能
再帰スキーマの Avro サポート:
from_avro
関数とavro
データ ソースでrecursiveFieldMaxDepth
オプションを使用できるようになりました。 このオプションは、Avro データ ソースのスキーマ再帰の最大深度を設定します。 「ストリーミング Avro データの読み取りと書き込み」を参照してください。Avro の Confluent スキーマ レジストリのサポートが拡張されました: サーバーレスでは、Confluent スキーマ レジストリを使用した Avro スキーマ参照がサポートされるようになりました。 外部 Confluent スキーマ レジストリに対する認証については、を参照してください。
リキッド クラスタリングを使用したテーブルでの再クラスター化の強制:
OPTIMIZE FULL
構文を使用して、リキッド クラスタリングが有効になっているテーブル内のすべてのレコードを強制的に再クラスター化できるようになりました。 「すべてのレコードに対して再クラスター化を強制する」をご覧ください。Python 用 Delta API で ID 列がサポートされるようになりました: Python 用 Delta API を使用して、ID 列を含むテーブルを作成できるようになりました。 「Delta Lake で ID 列を使用する」を参照してください。
ストリーミング書き込み中のリキッド クラスター化テーブルの作成: 構造化ストリーミング書き込みを使用して新しいテーブルを作成するときに、
clusterBy
を使用してリキッド クラスタリングを有効にできるようになりました。 「リキッド クラスタリングを有効にする」をご覧ください。OPTIMIZE FULL 句のサポート: サーバーレス コンピューティングは、OPTIMIZEFULL 句がサポートされるようになりました。 この句は、以前にクラスター化された可能性のあるデータを含め、リキッド クラスタリングを使用するテーブル内のすべてのレコードを最適化します。
INSERT およびテーブル参照での WITH オプションの指定のサポート: サーバーレス コンピューティングでは、データ ソースの動作を制御するために使用できる
INSERT
ステートメントのテーブル参照とテーブル名に対するオプションの指定がサポートされるようになりました。新しい SQL 関数: サーバーレス コンピューティングで次の SQL 関数を使用できるようになりました。
- try_url_decode は、エラー対応バージョンの url_decodeです。
zeroifnull()
関数の入力式がNULL
である場合、zeroifnull は 0 を返します。- nullifzero は、入力が 0 の場合は
NULL
を返し、0 でない場合はその入力を返します。 - dayname(expr) は、指定された日付の曜日の 3 文字の英語頭字語を返します。
- uniform(expr1, expr2 [,seed]) は、指定された数値範囲内の独立した同じ分散値を持つランダムな値を返します。
- randstr(length) は、英数字のランダムな文字列
length
返します。
データを Delta テーブルにマージする際のスキーマの自動展開の有効化:
DeltaMergeBuilder
クラスのwithSchemaEvolution()
メンバーに対するサポートが追加されました。withSchemaEvolution()
を使用して、MERGE
操作中にスキーマの自動展開を有効にします。 たとえば、mergeBuilder.whenMatched(...).withSchemaEvolution().execute()}}
のようにします。Apache Spark での照合順序のサポートがパブリック プレビュー段階です: 言語を認識し、大文字と小文字を区別せず、アクセスを区別しない照合順序を
STRING
の列と式に割り当てることができるようになりました。 これらの照合順序は、文字列比較、並べ替え、グループ化操作、および多くの文字列関数で使用されます。 「照合順序」を参照してください。Delta Lake での照合順序のサポートがパブリック プレビュー段階です: Delta テーブルの作成または変更時に列の照合順序を定義できるようになりました。 「Delta Lake での照合順序のサポート」を参照してください。
バキュームの
LITE
モードがパブリック プレビュー段階です:VACUUM table_name LITE
を使用して、Delta トランザクション ログのメタデータを活用する軽量のバキューム操作を実行できるようになりました。 フルとライトモード および VACUUM を参照してください。USE CATALOG with IDENTIFIER
句のパラメーター化のサポート: IDENTIFIER 句 が、USE CATALOG ステートメントでサポートされるようになりました。 このサポートにより、文字列変数またはパラメーター マーカーに基づいて現在のカタログをパラメーター化できます。テーブルとビューの COMMENT ON COLUMN サポート: COMMENT ON ステートメントで、ビュー列とテーブル列のコメントの変更がサポートされるようになりました。
その他の関数の名前付きパラメーター呼び出し: 次の関数は、名前付きパラメーター呼び出しをサポートしています。
REPAIR TABLE コマンドの
SYNC METADATA
パラメーターが Hive メタストアでサポートされています:REPAIR TABLE
コマンドでSYNC METADATA
パラメーターを使用して、Hive メタストア マネージド テーブルのメタデータを更新できるようになりました。 「REPAIR TABLE」を参照してください。圧縮された Apache Arrow バッチのデータ整合性の強化: データの破損からさらに保護するために、すべての
LZ4
圧縮された Apache Arrow バッチにLZ4
コンテンツとブロックチェックサムが含まれます。 「LZ4 フレーム タイプの説明」を参照してください。組み込みの Oracle JDBC Driver: サーバーレス コンピューティングには、Oracle JDBC Driver が組み込まれています。
DriverManager
経由でユーザーがアップロードした JDBC ドライバー JAR を使用する場合は、カスタム JAR を明示的に使用するようにスクリプトを書き換える必要があります。 それ以外の場合は、組み込みのドライバーが使用されます。 このドライバーは、Lakehouse フェデレーションのみをサポートします。 その他のユース ケースでは、独自のドライバーを指定する必要があります。パスを使用してアクセスされた Delta テーブルの詳細なエラー: パスを使用してアクセスされた Delta テーブルの新しいエラー メッセージ エクスペリエンスが利用できるようになりました。 すべての例外がユーザーに転送されるようになりました。 基になるファイルを Delta テーブルとして読み取ることができない場合に、例外
DELTA_MISSING_DELTA_TABLE
が予約されるようになりました。
動作の変更
破壊的変更: ホストされている RStudio のサポートが終了します: このリリースでは、Databricks でホストされている RStudio Server はサポート終了となり、サーバーレス コンピューティングで実行されている Azure Databricks ワークスペースで使用できなくなります。 RStudio の代替手段の詳細と一覧については、「ホストされている RStudio Server の廃止」を参照してください。
破壊的変更:
byte
、short
、int
、long
の型をより広い型に変更するためのサポートの削除: Delta テーブルと Iceberg テーブル間で一貫した動作を確保するために、以下のデータ型の変更は、型の拡大機能が有効になっているテーブルには適用できなくなりました。byte
、short
、int
、long
をdecimal
にします。byte
、short
、およびint
からdouble
まで。
入れ子になった文字グループ化での否定による正規表現パターンの正しい解析: このリリースには、入れ子になった文字グループ化での否定を使用した正規表現パターンの正しい解析をサポートする変更が含まれています。 たとえば、
[^[abc]]
は「'abc' のいずれかではないすべての文字」として解析されます。さらに、Photon の動作は入れ子になった文字クラスに Spark の一貫性がありませんでした。 入れ子になった文字クラスを含む正規表現パターンには Photon が使用されなくなり、代わりに Spark が使用されます。 入れ子になった文字クラスは、角かっこ内に角かっこ (
[[a-c][1-3]]
など) を含むすべてのパターンです。Delta Lake の
MERGE
での重複一致検出の向上:MERGE
は、WHEN MATCHED
句で指定された条件を考慮するようになりました。 「マージを使用した Delta Lake テーブルへのアップサート」を参照してください。addArtifact()
機能が、コンピューティングの種類間で一貫性を持つようになりました:addArtifact(archive = True)
を使用して、サーバーレス コンピューティングに依存関係を追加すると、アーカイブが自動的にアンパックされます。 この変更により、addArtifact(archive = True)
の動作は、アーカイブの自動アンパックを既にサポートしているシングル ユーザー コンピューティングと一貫性を持つようになります。VARIANT
データ型は、比較を必要とする操作では使用できなくなりました:VARIANT
データ型を含むクエリでは、次の句や演算子を使用できません。DISTINCT
INTERSECT
EXCEPT
UNION
DISTRIBUTE BY
さらに、次の DataFrame 関数も使用できません:
df.dropDuplicates()
df.repartition()
これらの操作は比較を実行しますが、
VARIANT
データ型を使用する比較では未定義の結果が生成され、Databricks ではサポートされません。 Azure Databricks のワークロードまたはテーブルでVARIANT
型を使用する場合、Databricks では次の変更が推奨されます。- クエリまたは式を更新して、
VARIANT
値をVARIANT
以外のデータ型に明示的にキャストします。 - 上記のいずれかの操作で使用する必要があるフィールドがある場合は、
VARIANT
データ型からそれらのフィールドを抽出し、VARIANT
以外のデータ型を使用して格納します。
「バリアント データにクエリを実行する」を参照してください。
バグ修正
- CSV、JSON、XML にシリアル化されたときに、タイムゾーン オフセットに秒が含まれるようになりました: 秒を含むタイム ゾーン オフセットを持つタイムスタンプ (1900 年より前のタイムスタンプに共通) は、CSV、JSON、XML にシリアル化されるときに秒を省略していました。 既定のタイムスタンプ フォーマッタが修正され、これらのタイムスタンプの正しいオフセット値が返されるようになりました。
その他の変更点
cloudFiles
構造化ストリーミング ソースのエラー コードの名前が変更されました: 次のエラー コードの名前が変更されました。_LEGACY_ERROR_TEMP_DBR_0143
の名前はCF_INCORRECT_STREAM_USAGE
に変更されました。_LEGACY_ERROR_TEMP_DBR_0260
の名前はCF_INCORRECT_BATCH_USAGE
に変更されました。
バージョン 15.4
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 を有効にできるようになりました。 「既存のテーブルで Iceberg 読み取りを有効にする」を参照してください。
- try_url_decode function: このリリースでは、URL でエンコードされた文字列をデコードする try_url_decode 関数が導入されています。 文字列が正しい形式になっていない場合、関数はエラーを発生させるのではなく
NULL
を返します。 - 必要に応じて、オプティマイザーが強制されていない外部キー制約に依存できるようにします: クエリのパフォーマンスを向上させるには、テーブルのCREATE
RELY
するときに、FOREIGN KEY
制約にキーワードを指定できるようになりました。 - 選択的上書きに対して並列化されたジョブの実行: データを削除して新しいデータを並列に挿入するジョブを実行
replaceWhere
使用して選択的上書きが実行され、クエリのパフォーマンスとクラスターの使用率が向上します。 - 選択的上書きによる変更データ フィードのパフォーマンスが向上しました: 変更データ フィードを含むテーブルで
replaceWhere
を使用して選択的上書きを行うと、挿入されたデータに対して個別の変更データ ファイルが書き込まれるようになりました。 これらの操作では、基になる Parquet データ ファイルに存在する非表示の_change_type
列を使って、書き込みを増やすことなく変更が記録されます。 COPY INTO
コマンドのクエリ待機時間の短縮: このリリースには、COPY INTO
コマンドのクエリ待機時間を向上させる変更が含まれています。 この改善は、RocksDB 状態ストアによる状態の読み込みを非同期にすることによって実装されます。 この変更により、多くの状態を持つクエリ (たとえば、既に取り込まれたファイルの数が多いクエリ) で、開始時間が向上するはずです。- check 制約テーブル機能の削除のサポート:
checkConstraints
を使用してデルタ テーブルからALTER TABLE table_name DROP FEATURE 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)
) は、この変更の影響を受けません。ビューの列定義構文の文書化されていない部分と未処理の部分を禁止する: 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 以降では、無効な列名を参照するALTER TABLE ADD CONSTRAINT
制約を含むCHECK
ステートメントにより、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 は、文字列以外の値を文字列に暗黙的には変換しなくなりました。 以前は、戻り値の型