Unity Catalog のコンピューティング アクセス モードの制限事項

Databricks では、ほとんどのワークロードで Unity Catalogと共有アクセス モードを使用することをお勧めします。 この記事では、Unity Catalog の各アクセス モードの制限事項と要件について概説します。 アクセス モードの詳細については、「アクセス モード」を参照してください。

Databricks では、コンピューティング ポリシーを使用して、ほとんどのユーザーの構成オプションを簡略化することをお勧めします。 「コンピューティング ポリシーの作成と管理」を参照してください。

Note

分離なし共有は、Unity Catalog をサポートしないレガシ アクセス モードです。

重要

Init スクリプトとライブラリでは、アクセス モードと Databricks Runtime バージョンで異なるサポートがあります。 「init スクリプトをインストールできる場所」を参照してください。クラスター スコープのライブラリ

Unity Catalog でのシングル ユーザー アクセス モードの制限事項

Unity Catalog のシングル ユーザー アクセス モードには、次の制限があります。 これらは、すべての Unity Catalog アクセス モードの一般的な制限事項に追加されるものです。 「Unity Catalog の一般的な制限事項」を参照してください。

Unity Catalog シングル ユーザー アクセス モードの詳細なアクセス制御の制限事項

Databricks Runtime 15.3 以前では、シングルユーザー コンピューティングでの詳細なアクセス制御をサポートしていません。 具体的には、次のように使用します。

  • 行フィルターまたは列マスクがあるテーブルにはアクセスできません。
  • 動的ビューにアクセスできません。
  • ビューから読み取るには、そのビューで参照されているすべてのテーブルとビューに SELECT が必要です。

動的ビュー、基になるテーブルとビューに対する SELECT がないビュー、行フィルターまたは列マスクが含まれるテーブルのクエリを実行するには、次のいずれかを使います。

  • SQL ウェアハウス

  • 共有アクセス モードを使用したコンピューティング。

  • Databricks Runtime 15.4 LTS 以降のシングル ユーザー アクセス モードを使用したコンピューティング (パブリック プレビュー)。

    Databricks Runtime 15.4 LTS 以降では、シングルユーザー コンピューティングでの詳細なアクセス制御をサポートしています。 Databricks Runtime 15.4 LTS 以降で提供されるデータ フィルター処理を利用するには、"ワークスペースでサーバーレス コンピューティングが有効になっている" ことも確認する必要があります。詳細なアクセス制御をサポートするデータ フィルター処理は、サーバーレス コンピューティングで実行されるためです。 そのため、シングルユーザー コンピューティングを使用してデータ フィルター処理操作を実行すると、サーバーレス コンピューティングのリソースに対して課金される場合があります。 「シングル ユーザー コンピューティングに対するきめ細かなアクセス制御」をご覧ください。

Unity Catalog シングル ユーザー アクセス モードでのストリーミング テーブルと具体化されたビューの制限事項

ストリーミング テーブル具体化されたビューなど、Delta Live Tables パイプラインで作成されたテーブルが、他のユーザーによって所有されている場合、Databricks Runtime 15.3 以前では、シングルユーザー コンピューティングを使ってそれらのテーブルのクエリを実行することはできません。 テーブルを作成したユーザーが所有者です。

Delta Live Tables で作成され、他のユーザーによって所有されているテーブルのクエリを実行するには、次のいずれかを使います。

  • SQL ウェアハウス

  • Databricks Runtime 13.3 LTS 以降で共有アクセス モードを使用したコンピューティング。

  • Databricks Runtime 15.4 LTS 以降のシングル ユーザー アクセス モードを使用したコンピューティング (パブリック プレビュー)。

    Databricks Runtime 15.4 LTS 以降では、Delta Live Tables で生成されたテーブルに対する、シングルユーザー コンピューティングでのクエリの実行をサポートしています。 Databricks Runtime 15.4 LTS 以降で提供されるデータ フィルター処理を利用するには、"ワークスペースでサーバーレス コンピューティングが有効になっている" ことも確認する必要があります。Delta Live Tables で生成されたテーブルをサポートするデータ フィルター処理は、サーバーレス コンピューティングで実行されるためです。 そのため、シングルユーザー コンピューティングを使用してデータ フィルター処理操作を実行すると、サーバーレス コンピューティングのリソースに対して課金される場合があります。 「シングル ユーザー コンピューティングに対するきめ細かなアクセス制御」をご覧ください。

Unity Catalog シングル ユーザー アクセス モードのストリーミングの制限事項

  • 非同期チェックポイント処理は、Databricks Runtime 11.3 以前でサポートされていません。
  • StreamingQueryListener では、シングルユーザー コンピューティングで資格情報を使用したり、Unity Catalog によって管理されるオブジェクトを操作したりするのに、Databricks Runtime 15.1 以降が必要です。

Unity Catalog での共有アクセス モードの制限事項

Unity Catalog の共有アクセス モードには、次の制限事項があります。 これらは、Unity Catalog のすべてのアクセス モードの一般的な制限事項に加えて適用されます。 「Unity Catalog の一般的な制限事項」を参照してください。

  • Databricks Runtime ML と Spark Machine Learning Library (MLlib) はサポートされていません。

  • Spark-submit ジョブはサポートされていません。

  • Databricks Runtime 13.3 以降では、個々の行が 128 MB を超えてはなりません。

  • PySpark の UDF は、Git のフォルダー、ワークスペース ファイル、ボリュームにアクセスして、Databricks Runtime 14.2 以前にモジュールをインポートすることはできません。

  • 資格情報パススルーで共有アクセス モードを使用すると、Unity Catalog の機能は無効になります。

  • カスタム コンテナーはサポートされていません。

Unity Catalog 共有アクセス モードの言語サポート

  • R はサポートされていません。
  • Scala は Databricks Runtime 13.3 以降でサポートされています。
    • Databricks Runtime 15.4 LTS 以降では、Databricks Runtime にバンドルされた Java または Scala のすべてのライブラリ (JAR ファイル) を、Unity Catalog のアクセス モードのコンピューティングで使用できます。
    • Databricks Runtime 15.3 以前の場合は、共有アクセス モードを使用したコンピューティングで、Spark の構成 spark.databricks.scala.kernel.fullClasspath.enabledtrue に設定します。

Unity Catalog 共有アクセス モードの Spark API の制限事項と要件

  • RDD API はサポートされていません。
  • DBUtils と、クラウド ストレージからデータを直接読み取るその他のクライアントは、外部の場所を使用してストレージの場所にアクセスする場合にのみサポートされます。 「クラウド ストレージを Azure Databricks に接続するための外部の場所を作成する」を参照してください。
  • Spark コンテキスト (sc)、spark.sparkContextsqlContext は、Databricks Runtime の Scala ではサポートされておらず、Databricks Runtime 14.0 以降の Python ではサポートされていません。
    • Databricks では、spark 変数を使用して SparkSession インスタンスを操作することをお勧めします。
    • 次の sc 関数はサポートされていません: emptyRDDrangeinit_batched_serializerparallelizepickleFiletextFilewholeTextFilesbinaryFilesbinaryRecordssequenceFilenewAPIHadoopFilenewAPIHadoopRDDhadoopFilehadoopRDDunionrunJobsetSystemPropertyuiWebUrlstopsetJobGroupsetLocalPropertygetConf
  • Scala Dataset API 操作 mapmapPartitionsforeachPartitionflatMapreducefilter には、Databricks Runtime 15.4 LTS 以降が必要です。

Unity Catalog 共有アクセス モードの UDF の制限事項と要件

ユーザー定義関数 (UDF) には、共有アクセス モードについて次の制限があります。

  • Hive UDF はサポートされていません。

  • applyInPandasmapInPandas には Databricks Runtime 14.3 以降が必要です。

  • Scala のスカラー UDF には Databricks Runtime 14.2 以降が必要です。 その他の Scala UDF と UDAF はサポートされていません。

  • Databricks Runtime 14.2 以下では、ノートブックスコープまたはクラスタースコープのライブラリを通した PySpark UDF 内のカスタム バージョンの grpcpyarrow、または protobuf の使用はサポートされていません。これはインストールされているバージョンが常に優先されるためです。 インストールされているライブラリのバージョンを確認するには、特定の Databricks Runtime バージョンのリリース ノートの "システム環境" セクションを参照してください。

  • Python のスカラー UDF と Pandas UDF には Databricks Runtime 13.3 LTS 以降が必要です。 Spark 上の UDAF、UDTF、Pandas など、他の Python UDF はサポートされていません。

Unity Catalog のユーザー定義関数 (UDF)」を参照してください。

Unity Catalog 共有アクセス モードのストリーミングの制限事項と要件

Note

一覧に示されている Kafka オプションの一部では、Azure Databricks でサポートされている構成に使用する場合のサポートが制限されています。 「Apache Kafka と Azure Databricks を使用したストリーム処理」を参照してください。

  • Scala に関しては、foreachforeachBatchStreamingListenersFlatMapGroupWithState はサポートされていません。
  • Python の場合、foreachBatch は Databricks Runtime 14.0 以降で次のように動作が変更されました。
    • print() コマンドは、ドライバー ログに出力を書き込みます。
    • 関数内の dbutils.widgets サブモジュールにアクセスすることはできません。
    • 関数で参照されるすべてのファイル、モジュール、またはオブジェクトは、シリアル化可能であり、Spark で使用できる必要があります。
  • Scala の場合、from_avro には Databricks Runtime 14.2 以降が必要です。
  • applyInPandasWithState には Databricks Runtime 14.3 LTS 以降が必要です。
  • ソケット ソースの操作はサポートされません。
  • Unity Catalog で管理されているデータ ソースで option("cleanSource", "archive") を使用する場合、sourceArchiveDir はソースと同じ外部の場所にある必要があります。
  • Kafka のソースやシンクの場合、次のオプションはサポートされていません。
    • kafka.sasl.client.callback.handler.class
    • kafka.sasl.login.callback.handler.class
    • kafka.sasl.login.class
    • kafka.partition.assignment.strategy
  • Databricks Runtime 13.3 LTS 以降では Kafka の次のオプションがサポートされていますが、Databricks Runtime 12.2 LTS ではサポートされていません。 Unity Catalog によって管理される外部の場所は、次のオプションの場合にのみ指定できます。
    • kafka.ssl.truststore.location
    • kafka.ssl.keystore.location
  • StreamingQueryListener では、共有コンピューティングで資格情報を使用したり、Unity Catalog によって管理されるオブジェクトを操作したりするのに、Databricks Runtime 14.3 LTS 以降が必要です。

Unity Catalog 共有アクセス モードのネットワークとファイル システムのアクセス制限と要件

  • ファイル システムの機密性の高い部分へのアクセスが禁じられている特権の低いユーザーとして、コンピューティング ノードでコマンドを実行する必要があります。

  • Databricks Runtime 11.3 LTS 以下では、ポート 80 と 443 へのネットワーク接続のみを確立できます。

  • インスタンス メタデータ サービスや Azure WireServer には接続できません。

Unity Catalog の一般的な制限事項

Unity Catalog 対応のすべてのアクセス モードには、次の制限事項が適用されます。

Unity Catalog のストリーミングの制限事項

  • Apache Spark の連続処理モードはサポートされていません。 詳しくは、「Spark 構造化ストリーミング プログラミング ガイド」の「継続的処理」をご覧ください。

Unity Catalog シングル ユーザー アクセス モードのストリーミングの制限事項」と「Unity Catalog 共有アクセス モードのストリーミングの制限事項と要件」も参照してください。

Unity Catalog でのストリーミングの詳細については、「構造化ストリーミングで Unity Catalog を使用する」を参照してください。