この記事では、ノートブックとジョブのサーバーレス コンピューティングの現在の制限事項について説明します。 最も重要な考慮事項の概要から始まり、制限事項の包括的なリファレンス リストを提供します。
制限事項の概要
新しいワークロードを作成するか、ワークロードをサーバーレス コンピューティングに移行する前に、まず次の制限事項を考慮してください。
- サポートされている言語は Python と SQL だけです。
- Spark Connect API のみがサポートされています。 Spark RDD API はサポートされていません。
- JAR ライブラリはサポートされていません。 対処方法については、「サーバーレス コンピューティングのベスト プラクティス」を参照してください。
- サーバーレス コンピューティングは、すべてのワークスペース ユーザーが利用できます。
- ノートブック タグはサポートされていません。 サーバーレス予算ポリシーを使用して、サーバーレスの使用状況にタグを付けます。
- ストリーミングの場合、増分バッチ ロジックのみを使用できます。 既定または時間ベースのトリガー間隔はサポートされません。 「ストリーミングの制限事項」を参照してください。
制限事項のリファレンス 一覧
次のセクションでは、サーバーレス コンピューティングの現在の制限事項を示します。
サーバーレス コンピューティングは、Databricks 標準アクセス モードコンピューティング アーキテクチャ (旧称共有アクセス モード) に基づいています。 標準アクセス モードから継承される最も関連性の高い制限事項と、サーバーレス固有の追加の制限事項を以下に示します。 標準アクセス モードの制限事項の完全な一覧については、「 Unity カタログのコンピューティング アクセス モードの制限事項」を参照してください。
一般的な制限事項
- Scala と R はサポートされていません。
- SQL を記述するときの既定値は ANSI SQL です。
spark.sql.ansi.enabled
をfalse
に設定して、ANSI モードをオプトアウトします。 - Spark RDD API はサポートされていません。
- Spark コンテキスト (sc) では、
spark.sparkContext
とsqlContext
はサポートされていません。
- Databricks コンテナー サービスはサポートされていません。
- 既定では、サーバーレス ノートブックの Spark クエリは 9,000 秒を超える時間を実行できません。 これは、
spark.databricks.execution.timeout
プロパティを使用して構成できます。 詳細については、「 サーバーレス ノートブックとジョブの Spark プロパティを構成する」を参照してください。 この制限は、サーバーレス ジョブには適用されません。 - Unity カタログを使用して外部データ ソースに接続する必要があります。 外部の場所を使用して、クラウド ストレージにアクセスします。
- データ ソースのサポートは、AVRO、BINARYFILE、CSV、DELTA、JSON、KAFKA、ORC、PARQUET、ORC、TEXT、XML に限定されます。
- ユーザー定義関数 (UDF) はインターネットにアクセスできません。 このため、CREATE FUNCTION (External) コマンドはサポートされていません。 Databricks では、CREATE FUNCTION (SQL および Python) を使用して UDF を作成することをお勧めします。
- 個々の行が最大サイズの 128 MB を超えないようにする必要があります。
- Spark UI は使用できません。 代わりに、クエリ プロファイルを使用して、Spark クエリに関する情報を表示します。 「クエリ プロファイル」を参照してください。
- Spark ログは、サーバーレス ノートブックとジョブを使用する場合は使用できません。 ユーザーは、クライアント側のアプリケーション ログにのみアクセスできます。
- ワークスペース間アクセスは、ワークスペースが同じリージョンにあり、宛先ワークスペースに IP ACL またはフロントエンド PrivateLink が構成されていない場合にのみ許可されます。
- グローバル一時ビューはサポートされていません。 Databricks では、 セッション一時ビュー を使用するか、セッション間のデータの受け渡しが必要なテーブルを作成することをお勧めします。
ストリーミングの制限事項
- 既定または時間ベースのトリガー間隔はサポートされません。 サポートされるのは
Trigger.AvailableNow
のみです。 「構造化ストリーミングのトリガー間隔を構成する」を参照してください。 - 標準アクセス モードでのストリーミングに関するすべての制限も適用されます。 「Unity Catalog 標準アクセス モードのストリーミングの制限事項と要件」をご確認ください。
機械学習の制限事項
- Databricks Runtime for Machine Learning と Apache Spark MLlib はサポートされていません。
- GPU はサポートされていません。
Notebooks の制限事項
- Notebook スコープのライブラリは、開発セッション間ではキャッシュされません。
- ユーザー間でノートブックを共有するときの TEMP テーブルとビューの共有はサポートされていません。
- Notebooks 内の DataFrame のオートコンプリートと変数エクスプローラーはサポートされていません。
ワークフローの制限事項
- ジョブのサーバーレス コンピューティングのドライバー サイズは現在固定されており、変更できません。
- タスク ログは、タスクの実行ごとに分離されません。 ログには、複数のタスクからの出力が含まれます。
- タスク ライブラリは、ノートブック タスクではサポートされていません。 代わりにノートブック スコープのライブラリを使用してください。 「ノートブック スコープの Python ライブラリ」を参照してください。
コンピューティング固有の制限事項
次のコンピューティング固有の機能はサポートされていません。
- コンピューティング ポリシー
- コンピューティング スコープの init スクリプト
- カスタム データ ソースや Spark 拡張機能を含む、コンピューティング スコープのライブラリ。 代わりにノートブック スコープのライブラリを使用してください。
- インスタンス プール
- コンピューティング イベント ログ
- ほとんどの Apache Spark コンピューティング構成。 サポートされている構成の一覧については、「 サーバーレス ノートブックとジョブの Spark プロパティの構成」を参照してください。
- 環境変数。 代わりに、Databricks では 、ウィジェット を使用して ジョブとタスクのパラメーターを作成することをお勧めします。
キャッシュの制限事項
データフレーム API と SQL キャッシュ API は、サーバーレス コンピューティングではサポートされていません。 これらの API または SQL コマンドのいずれかを使用すると、例外が発生します。
- df.cache()、df.persist()
- df.unpersist()
- spark.catalog.cacheTable()
- spark.catalog.uncacheTable()
- spark.catalog.clearCache()
- CACHE TABLE
- UNCACHE TABLE
- REFRESH TABLE
- CLEAR CACHE
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 句 を使用して、多くの場合、オブジェクト名をパラメーター化することもできます。