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