この記事では、ノートブックとジョブのサーバーレス コンピューティングの現在の制限事項について説明します。 最も重要な考慮事項の概要から始まり、制限事項の包括的なリファレンス リストを提供します。
一般的な制限事項
新しいワークロードを作成するか、ワークロードをサーバーレス コンピューティングに移行する前に、まず次の制限事項を考慮してください。
- R はサポートされていません。
- Spark Connect API のみがサポートされています。 Spark RDD API はサポートされていません。
- Spark Connect は、サーバーレス コンピューティングで使用され、分析と名前解決を実行時間に延期します。これは、コードの動作を変更する可能性があります。 Spark Connect と Spark クラシックの比較を参照してください。
- SQL を記述するときの既定値は ANSI SQL です。
spark.sql.ansi.enabledをfalseに設定して、ANSI モードをオプトアウトします。 - Databricks Container Services はサポートされていません。
- Unity カタログを使用して外部データ ソースに接続する必要があります。 外部の場所を使用して、クラウド ストレージにアクセスします。
- ユーザー定義関数 (UDF) はインターネットにアクセスできません。 このため、CREATE FUNCTION (External) コマンドはサポートされていません。 Databricks では、CREATE FUNCTION (SQL および Python) を使用して UDF を作成することをお勧めします。
- UDF、
map、mapPartitionsなどのユーザー定義のカスタム コードは、メモリ使用量が 1 GB を超えることはできません。 -
spark.createDataFrameを使用してローカル データから DataFrame を作成する場合、行サイズは 128 MB を超えることはできません。 - Spark UI は使用できません。 代わりに、クエリ プロファイルを使用して、Spark クエリに関する情報を表示します。 「クエリ プロファイル」を参照してください。
- Spark ログは使用できません。 ユーザーは、クライアント側のアプリケーション ログにのみアクセスできます。
- ワークスペース間アクセスは、ワークスペースが同じリージョンにあり、宛先ワークスペースに IP ACL またはフロントエンド PrivateLink が構成されていない場合にのみ許可されます。
- グローバル一時ビューはサポートされていません。 Databricks では、 セッション一時ビュー を使用するか、セッション間のデータの受け渡しが必要なテーブルを作成することをお勧めします。
- Maven 座標はサポートされていません。
- DBFS へのアクセスは制限されています。 代わりに、Unity カタログ ボリューム または ワークスペース ファイル を使用してください。
ストリーミングの制限事項
- 既定または時間ベースのトリガー間隔はサポートされません。 サポートされるのは
Trigger.AvailableNowのみです。 「構造化ストリーミングのトリガー間隔を構成する」を参照してください。 - 標準アクセス モードでのストリーミングに関するすべての制限も適用されます。 「ストリーミングの制限事項」を参照してください。
Notebooks の制限事項
- Scala と R はノートブックではサポートされていません。
- JAR ライブラリはノートブックではサポートされていません。 対処方法については、「サーバーレス コンピューティングのベスト プラクティス」を参照してください。 ジョブ内の JAR タスクがサポートされています。 「ジョブの JAR タスク」を参照してください。
- Notebook スコープのライブラリは、開発セッション間ではキャッシュされません。
- ユーザー間でノートブックを共有するときの TEMP テーブルとビューの共有はサポートされていません。
- Notebooks 内の DataFrame のオートコンプリートと変数エクスプローラーはサポートされていません。
- 既定では、新しいノートブックは
.ipynb形式で保存されます。 ノートブックがソース形式で保存されている場合、サーバーレス メタデータが正しくキャプチャされず、一部の機能が期待どおりに機能しない可能性があります。 - ノートブック タグはサポートされていません。 サーバーレス予算ポリシーを使用して、サーバーレスの使用状況にタグを付けます。
ジョブの制限事項
- タスク ログは、タスクの実行ごとに分離されません。 ログには、複数のタスクからの出力が含まれます。
- タスク ライブラリは、ノートブック タスクではサポートされていません。 代わりにノートブック スコープのライブラリを使用してください。 「ノートブック スコープの Python ライブラリ」を参照してください。
- 既定では、サーバーレス ジョブにはクエリ実行タイムアウトはありません。
spark.databricks.execution.timeoutプロパティを使用して、ジョブ クエリの実行タイムアウトを設定できます。 詳細については、「 サーバーレス ノートブックとジョブの Spark プロパティを構成する」を参照してください。
コンピューティング固有の制限事項
次のコンピューティング固有の機能はサポートされていません。
- コンピューティング ポリシー
- コンピューティング スコープの init スクリプト
- カスタム データ ソースや Spark 拡張機能を含む、コンピューティング スコープのライブラリ。 代わりにノートブック スコープのライブラリを使用してください。
- インスタンス プール
- コンピューティング イベント ログ
- ほとんどの Apache Spark コンピューティング構成。 サポートされている構成の一覧については、「 サーバーレス ノートブックとジョブの Spark プロパティの構成」を参照してください。
- 環境変数。 代わりに、Databricks では 、ウィジェット を使用して ジョブとタスクのパラメーターを作成することをお勧めします。
キャッシュの制限事項
メタデータは、サーバーレス コンピューティング セッションにキャッシュされます。 このため、カタログを切り替えるときにセッション コンテキストが完全にリセットされないことがあります。 セッション コンテキストをクリアするには、サーバーレス コンピューティング リソースをリセットするか、新しいセッションを開始します。
データフレーム API と SQL キャッシュ API は、サーバーレス コンピューティングではサポートされていません。 これらの API または SQL コマンドのいずれかを使用すると、例外が発生します。
Hive の制限事項
Hive SerDe テーブル はサポートされていません。 また、Hive SerDe テーブルにデータを読み込む対応する LOAD DATA コマンドはサポートされていません。 このコマンドを使用すると、例外が発生します。
データ ソースのサポートは、AVRO、BINARYFILE、CSV、DELTA、JSON、KAFKA、ORC、PARQUET、ORC、TEXT、XML に限定されます。
Hive 変数 (たとえば、
${env:var}、${configName}、${system:var}、spark.sql.variable)、または${var}構文を使用した config 変数の参照はサポートされていません。 Hive 変数を使用すると、例外が発生します。代わりに、 DECLARE VARIABLE、 SET VARIABLE、 SQL セッション変数の参照 とパラメーター マーカー ('?'、または ':var') を使用して、セッションの状態を宣言、変更、および参照します。 IDENTIFIER 句 を使用して、多くの場合、オブジェクト名をパラメーター化することもできます。
サポートされるデータ ソース
サーバーレス コンピューティングでは、DML 操作 (書き込み、更新、削除) に対して次のデータ ソースがサポートされます。
CSVJSONAVRODELTAKAFKAPARQUETORCTEXTUNITY_CATALOGBINARYFILEXMLSIMPLESCANICEBERG
サーバーレス コンピューティングでは、読み取り操作用に次のデータ ソースがサポートされています。
CSVJSONAVRODELTAKAFKAPARQUETORCTEXTUNITY_CATALOGBINARYFILEXMLSIMPLESCANICEBERGMYSQLPOSTGRESQLSQLSERVERREDSHIFTSNOWFLAKE-
SQLDW(Azure Synapse) DATABRICKSBIGQUERYORACLESALESFORCESALESFORCE_DATA_CLOUDTERADATAWORKDAY_RAASMONGODB