サーバレスコンピュートの制限
この記事では、ノートブックとジョブに対するサーバレス コンピュートの現在の制限について説明します。 まず、最も重要な考慮事項の概要を説明し、次に制限事項の包括的な参照リストを提供します。
一般的な制限事項
新しいワークロードを作成する前、またはワークロードをサーバレス コンピュートに移行する前に、まず次の制限事項を考慮してください。
- 
Scala と R はサポートされていません。 
- 
Spark Connect APIのみがサポートされます。 Spark RDD APIはサポートされていません。 
- 
JAR ライブラリはサポートされていません。 回避策については、 サーバレス コンピュートのベストプラクティスを参照してください。 
- 
サーバレス コンピュートは、すべてのワークスペース ユーザーが利用できます。 
- 
ノートブック タグはサポートされていません。サーバレス 予算ポリシーを使用して、サーバレス の使用量をタグ付けします。 
- 
ANSI SQL は、SQL を記述するときのデフォルトです。 ANSI モードをオプトアウトするには、 spark.sql.ansi.enabledをfalseに設定します。
- 
Databricks Container Services はサポートされていません。 
- 
デフォルトでは、サーバレス ノートブックの Spark クエリは 9000 秒を超えて実行できません。 これは、 spark.databricks.execution.timeoutプロパティを使用して構成できます。詳細については、 サーバレス ノートブックとジョブの Spark プロパティの設定を参照してください。 この制限は、サーバレス ジョブには適用されません。
- 
外部データソースに接続するには、 Unity Catalog を使用する必要があります。 外部ロケーションを使用してクラウドストレージにアクセスします。 
- 
ユーザー定義関数 (UDF) はインターネットにアクセスできません。 このため、 CREATE FUNCTION (外部) コマンドはサポートされていません。 Databricks では、 CREATE FUNCTION (SQL と Python) を使用して UDF を作成することをお勧めします。 
- 
spark.createDataFrameを使用してローカルデータからDataFrameを作成する場合、行サイズは128MBを超えることはできません。
- 
Spark UI は使用できません。 代わりに、クエリ プロファイルを使用して、Spark クエリに関する情報を表示します。 クエリ プロファイルを参照してください。 
- 
Spark ログは、サーバレス ノートブックおよびジョブを使用している場合は使用できません。 ユーザーは、クライアント側のアプリケーションログにのみアクセスできます。 
- 
クロスワークスペース アクセスは、ワークスペースが同じリージョンにあり、宛先ワークスペースに IP ACL またはフロントエンドの PrivateLink が構成されていない場合にのみ許可されます。 
- 
グローバル一時ビューはサポートされていません。 Databricks では、 セッションの一時ビュー を使用するか、セッション間のデータの受け渡しが必要なテーブルを作成することをお勧めします。 
- 
Maven 座標はサポートされていません。 
ストリーミングの制限
- デフォルトまたは時間ベースのトリガー間隔はサポートされていません。 Trigger.AvailableNowのみがサポートされています。構造化ストリーミングのトリガー間隔の設定を参照してください。
- 標準アクセスモードでのストリーミングに関するすべての制限も適用されます。ストリーミングの制限を参照してください。
ノートブックの制限
- ノートブック スコープのライブラリは、開発セッション間でキャッシュされません。
- ユーザー間でノートブックを共有する場合の TEMP テーブルとビューの共有はサポートされていません。
- ノートブック内のデータフレームのオートコンプリートと変数エクスプローラーはサポートされていません。
- デフォルトでは、新しいノートブックは .ipynb形式で保存されます。ノートブックがソース 形式で保存されている場合、サーバレス メタデータが正しく取得されず、一部のフィーチャが期待どおりに機能しないことがあります。
ジョブの制限
- タスク ログは、タスクの実行ごとに分離されません。 ログには、複数のタスクからの出力が含まれます。
- タスク ライブラリは、ノートブック タスクではサポートされていません。 代わりに、ノートブック スコープのライブラリを使用してください。 ノートブック スコープの Python ライブラリを参照してください。
コンピュート固有の制限
次のコンピュート固有の機能はサポートされていません。
- コンピュートポリシー
- コンピュートスコープの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 句 を使用してオブジェクト名をパラメータ化することもできます。 
サポートされているデータソース
サーバレス コンピュートは、DML 操作 (書き込み、更新、削除) で次のデータソースをサポートしています。
- CSV
- JSON
- AVRO
- DELTA
- KAFKA
- PARQUET
- ORC
- TEXT
- UNITY_CATALOG
- BINARYFILE
- XML
- SIMPLESCAN
- ICEBERG
サーバレス コンピュートは、読み込み操作で次のデータソースをサポートしています。
- CSV
- JSON
- AVRO
- DELTA
- KAFKA
- PARQUET
- ORC
- TEXT
- UNITY_CATALOG
- BINARYFILE
- XML
- SIMPLESCAN
- ICEBERG
- MYSQL
- POSTGRESQL
- SQLSERVER
- REDSHIFT
- SNOWFLAKE
- SQLDW(Azure Synapse)
- DATABRICKS
- BIGQUERY
- ORACLE
- SALESFORCE
- SALESFORCE_DATA_CLOUD
- TERADATA
- WORKDAY_RAAS
- MONGODB