メインコンテンツまでスキップ

サーバレスコンピュートの制限

この記事では、ノートブックとジョブに対するサーバレス コンピュートの現在の制限について説明します。 まず、最も重要な考慮事項の概要を説明し、次に制限事項の包括的な参照リストを提供します。

言語とAPIのサポート​

  • Rはサポートされていません。
  • Spark Connect APIのみがサポートされます。 Spark RDD APIはサポートされていません。
  • サーバレス コンピュートで使用されるSpark Connect は、分析と名前解決を実行時まで延期するため、コードの動作が変わる可能性があります。 「Spark Connect と Spark Classic の比較」を参照してください。
  • ANSI モードはdefaultで有効になっています。不正なキャスト、算術オーバーフロー、および不正な形式の入力は、NULLや不正な結果をサイレントに返すのではなく、ランタイムエラーを発生させます。動作を変更する操作の処理方法およびオプトアウトの制限に関する情報については、移行ガイドのSQL動作の違いに関するセクションを参照してください。
  • defaultのセッションタイムゾーンは Etc/UTC (協定世界時) です。別のタイムゾーンを使用するには、spark.sql.session.timeZone を設定します。「Serverless ノートブックとジョブのSparkプロパティを構成する」を参照してください。
  • spark.createDataFrameを使用してローカルデータからDataFrameを作成する場合、行サイズは128MBを超えることはできません。

データアクセスと保存​

  • 外部データソースに接続するには、 Unity Catalog を使用する必要があります。 外部ロケーションを使用してクラウドストレージにアクセスします。

  • DBFS へのアクセスは制限されています。代わりに、 Unity Catalogボリュームまたはワークスペース ファイルを使用してください。

  • ノートブックとジョブタスクの作業ディレクトリは保証されないため、相対ファイルパスや相対的なPythonインポートが失敗する可能性があります。ファイルを参照するには絶対パスを使用し、相対モジュールの代わりに共有Pythonコードをワークスペースファイルとしてインポートしてください。See Work with Python and R modules.

  • Maven 座標はサポートされていません。

  • グローバル一時ビューはサポートされていません。セッション間のデータの受け渡しが必要な場合、Databricks ではセッション一時ビューを使用するか、テーブルを作成することをお勧めします。

  • サーバレス コンピュートは、Google マネージド サービスへのPrivate Service Connect接続をサポートしていません。 Private Service Connect でGoogle Cloud StorageとBigQueryにアクセスするには、クラシック コンピュートを使用します。

ユーザー定義関数(UDF)​

  • ユーザー定義関数 (UDF) はインターネットにアクセスできません。 このため、 CREATE FUNCTION (外部) コマンドはサポートされていません。 Databricks では、 CREATE FUNCTION (SQL と Python) を使用して UDF を作成することをお勧めします。
  • UDF、 map 、 mapPartitionsなどのユーザー定義のカスタム コードは、メモリ使用量が 1 GB を超えることはできません。
  • Scala UDF は高階関数内では使用できません。

UIとログ​

  • Spark UI は使用できません。 代わりに、クエリ プロファイルを使用して、Spark クエリに関する情報を表示します。 クエリ プロファイルを参照してください。
  • Spark ログは使用できません。ユーザーはクライアント側のアプリケーション ログにのみアクセスできます。

ネットワークとワークスペースへのアクセス​

  • クロスワークスペース アクセスは、ワークスペースが同じリージョンにあり、宛先ワークスペースに IP ACL またはフロントエンドの PrivateLink が構成されていない場合にのみ許可されます。
  • Databricks Container Services はサポートされていません。
  • Serverless コンピュートは、IPv4 経由でのみアクセス可能なリソースに接続できません。リソースは IPv4 経由でアクセス可能である必要があります。

ストリーミングの制限​

サーバレス コンピュートは、次の構造化ストリーミング トリガーをサポートします。

  • Trigger.AvailableNow()。 Databricks 、サーバレス コンピュートにこのトリガー モードを推奨します。
  • Trigger.Once()この非推奨モードはサポートされていますが、推奨されません。

以下のトリガーはサーバレスコンピュートではサポートされていません。

  • Trigger.Continuous(interval).
  • Trigger.ProcessingTime(interval).
    • デフォルトでは、トリガーモードを指定しない場合、Apache Spark はトリガーをTrigger.ProcessingTime("0 seconds")に設定します。サポートされているトリガーをサーバレスコンピュートに設定する必要があります。

サポートされていないトリガーを使用しようとすると、クエリはエラーINFINITE_STREAMING_TRIGGER_NOT_SUPPORTEDを発生させます。

継続的なストリーミング ワークロードの場合は、トリガー モードと連続パイプライン モードをサーバレスの連続モードで使用するか、実行ジョブでTrigger.AvailableNow()継続的に使用します。

ストリーミングのユースケースを適切なサーバレス製品にマッピングする決定ガイドについては、サーバレス コンピュートでのストリーミングを参照してください。

標準アクセスモードでのストリーミングに関するすべての制限も適用されます。ストリーミングの制限を参照してください。

ノートブックの制限​

ジョブの制限​

  • タスク ログは、タスクの実行ごとに分離されません。 ログには、複数のタスクからの出力が含まれます。
  • タスク ライブラリは、ノートブック タスクではサポートされていません。 代わりに、ノートブック スコープのライブラリを使用してください。 ノートブック スコープの Python ライブラリを参照してください。
  • デフォルトでは、サーバレス ジョブにはクエリ実行タイムアウトはありません。 spark.databricks.execution.timeoutプロパティを使用して、ジョブ クエリの実行タイムアウトを設定できます。詳細については、 「サーバーレス ノートブックとジョブのSparkプロパティを構成する」を参照してください。
  • サーバレスコンピュートの最大ランタイムは7日間です。7日を超える実行はプラットフォームによって終了され、再試行されません。7日を超えるワークロードを実行するには、それらをより小さな実行に分割するか、クラシックコンピュートを使用します。

コンピュート固有の制限​

次のコンピュート固有の機能はサポートされていません。

キャッシングの制限​

  • メタデータはサーバレス コンピュート セッションにキャッシュされます。 このため、カタログを切り替えてもセッション コンテキストが完全にリセットされない可能性があります。セッション コンテキストをクリアするには、サーバレス コンピュート リソースをリセットするか、新しいセッションを開始します。

  • データフレームおよびSQLキャッシュAPIs 、サーバレス コンピュートではサポートされていません。 これらのAPIsまたはSQLコマンドを使用すると、例外が発生します。

  • Spark 機械学習モデルのキャッシュはセッションあたり 1 GB(1,073,741,824 バイト)に制限されており、単一モデルは 100 MB に制限されています。どちらの制限も、クラシックコンピュートよりもServerlessコンピュートの方が低く設定されており、変更することはできません。セッションの制限を超過すると、ML_CACHE_SIZE_OVERFLOW_EXCEPTION が発生します。モデルごとの制限を超過すると、MODEL_SIZE_OVERFLOW_EXCEPTION が発生します。キャッシュ内の空きを確保するには、使用しなくなったモデルへの Python 参照を削除します。15 分間使用されずに放置されたモデルはローカルディスクに移動しますが、引き続きセッション制限の対象としてカウントされます。

Hive の制限事項​

  • Hive SerDe テーブル はサポートされていません。 また、Hive SerDe テーブルにデータをロードする対応する LOAD DATA コマンドはサポートされていません。 このコマンドを使用すると、例外が発生します。

    データソースのサポートは、AVRO、BINARYFILE、CSV、DELTA、JSON、KAFKA、ORC、PARQUET、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