Unity Catalog のアクセス モードの制限
アクセスモードの名前が変更されました。 共有アクセス モードが Standard になりました。 シングル ユーザー アクセス モードが [専用 ] になり、1 人のユーザーまたはグループに割り当てることができるようになりました。 グループ アクセスはパブリック プレビュー段階です。
Databricks では、ほとんどのワークロードで標準アクセス モード (以前の共有アクセス モード) を使用することをお勧めします。 この記事では、Unity Catalog の各アクセス モードの制限事項と要件について説明します。 アクセスモードの詳細については、「 アクセスモード」を参照してください。
Databricks では、ほとんどのユーザーの構成オプションを簡略化するために、コンピュート ポリシーを使用することをお勧めします。 「コンピュート ポリシーの作成と管理」を参照してください。
非分離共有パススルーと資格情報パススルーは、Unity Catalog をサポートしていない従来のアクセス モードです。
initスクリプトとライブラリは、アクセスモードと Databricks Runtime バージョンによってサポートが異なります。 「initスクリプトはどこでインストールできますか?」を参照してください。 および コンピュートスコープのライブラリ。
Unity Catalog の専用アクセス モードの制限
Unity Catalog の専用アクセス モードには、次の制限があります。 これらは、すべての Unity Catalog アクセス モードの一般的な制限に追加されるものです。 「Unity Catalog の一般的な制限事項」を参照してください。
Unity Catalog 専用アクセス モードのきめ細かなアクセス制御の制限事項
Databricks Runtime 15.3 以前では、シングル ユーザー コンピュートに対するきめ細かなアクセス制御はサポートされていません。具体的には:
- 行フィルターまたは列マスクを持つテーブルにはアクセスできません。
- 動的ビューにはアクセスできません。
- 任意のビューから読み取るには、ビューが参照するすべてのテーブルとビューに
SELECT
が必要です。
動的ビュー、基になるテーブルとビューに SELECT
がないビュー、および行フィルターまたは列マスクを持つテーブルに対してクエリを実行するには、次のいずれかを使用します。
- A SQLウェアハウス.
- 標準アクセスモードのコンピュート。
- Databricks Runtime 15.4 LTS以上での専用アクセスモードを備えたコンピュート。
Databricks Runtime 15.4 LTS 以降では、シングル ユーザー コンピュートに対するきめ細かなアクセス制御がサポートされています。 Databricks Runtime 15.4 LTS 以降で提供されているデータフィルタリングを利用するには、 ワークスペースでサーバレス コンピュートが有効になっている ことを確認します。
サーバレス コンピュートは、データ・フィルタリングを処理します。これにより、基礎となるテーブルやビューに対するパーミッションを必要とせずにビューにアクセスできます。 サーバレス コンピュートはデータ フィルタリングを処理するため、シングル ユーザ コンピュートを使用してビューをクエリすると、サーバレス コンピュートの料金が発生する場合があります。 詳細については、「 Fine-grained access control on dedicated コンピュート (旧称 single user コンピュート)」を参照してください。
Unity Catalog 専用アクセス モードのストリーミング テーブルと具体化されたビューの制限
Databricks Runtime 15.3 以前では、DLT パイプラインを使用して作成されたテーブル (ストリーミングテーブルやマテリアライズドビューなど) が 他のユーザーによって所有 されている場合、それらのテーブルをクエリするためにシングルユーザー コンピュートを使用することはできません。テーブルを作成するユーザーが所有者です。
DLT によって作成され、他のユーザーが所有するストリーミングテーブルとマテリアライズドビューをクエリするには、次のいずれかを使用します。
- A SQLウェアハウス.
- Databricks Runtime 13.3 LTS 以上の標準アクセスモードのコンピュート。
- Databricks Runtime 15.4 LTS以上での専用アクセスモードを備えたコンピュート。
また、ワークスペースでサーバレス コンピュートが有効になっている必要があります。 詳細については、「 Fine-grained access control on dedicated コンピュート (旧称 single user コンピュート)」を参照してください。
Unity Catalog 専用アクセス モードのストリーミング制限
- 非同期チェックポイント処理は、Databricks Runtime 11.3 LTS 以下ではサポートされていません。
StreamingQueryListener
Databricks Runtime 15.1 以降で、Unity Catalog によって管理されるオブジェクトを Single User コンピュートで使用したり、操作したりするには、それが必要です。
Unity Catalog の標準アクセス モードの制限
Unity Catalog の標準アクセス モードには、次の制限があります。 これらは、すべての Unity Catalog アクセス モードの一般的な制限に追加されるものです。 「Unity Catalog の一般的な制限事項」を参照してください。
- Databricks Runtime ML および Spark 機械学習ライブラリ (MLlib) はサポートされていません。
- Spark-submit ジョブ タスクはサポートされていません。 代わりに JAR タスク を使用してください。
- DBUtils と、クラウド ストレージからデータを直接読み取るその他のクライアントは、外部ロケーションを使用してストレージの場所にアクセスする場合にのみサポートされます。 クラウドストレージをDatabricksに接続するための外部ロケーションの作成を参照してください。
- Databricks Runtime 13.3 以降では、個々の行が 128 MB を超えてはなりません。
- DBFSルートとマウントは FUSE をサポートしていません。
Unity Catalog 標準アクセスモードの言語サポート
- R はサポートされていません。
- Scala は、Databricks Runtime 13.3 以降でサポートされています。
- Databricks Runtime15.4LTS 以降では、 にバンドルされているすべてのJava またはScala ライブラリ (JAR ファイル)Databricks Runtime をコンピュートで アクセスUnity Catalog モードで使用できます。
- 標準アクセスモードを使用するコンピュートの Databricks Runtime 15.3以下の場合は、 Spark コンフィグ
spark.databricks.scala.kernel.fullClasspath.enabled
をtrue
に設定してください。
Unity Catalog 標準アクセスモードの Spark API の制限事項と要件
-
RDD APIs はサポートされていません。
-
Spark コンテキスト (
sc
)、spark.sparkContext
、sqlContext
は、Databricks Runtime の Scala ではサポートされておらず、Databricks Runtime 14.0 以降の Python でもサポートされていません。- Databricks では、
spark
変数を使用してSparkSession
インスタンスと対話することをお勧めします。 - 次の
sc
関数もサポートされていません:emptyRDD
、range
、init_batched_serializer
、parallelize
、pickleFile
、textFile
、wholeTextFiles
、binaryFiles
、binaryRecords
、sequenceFile
、newAPIHadoopFile
、newAPIHadoopRDD
、hadoopFile
、hadoopRDD
、union
、runJob
、setSystemProperty
、uiWebUrl
、stop
、setJobGroup
、setLocalProperty
、getConf
。
- Databricks では、
-
次の Scala データセット API 操作には、Databricks Runtime 15.4 LTS 以降が必要です:
map
、mapPartitions
、foreachPartition
、flatMap
、reduce
、filter
。 -
Spark 構成プロパティ
spark.executor.extraJavaOptions
はサポートされていません。
Unity Catalog 標準アクセス モードの UDF の制限事項と要件
ユーザー定義関数 (UDF) には、標準アクセス・モードに関して以下の制限があります。
-
Hive UDFs はサポートされていません。
-
applyInPandas
またmapInPandas
Databricks Runtime 14.3 以降が必要です。 -
PySpark UDF は、Git フォルダー、ワークスペース ファイル、またはボリュームにアクセスして、Databricks Runtime 14.2 以下のモジュールをインポートできません。
-
Scala スカラー UDF には、Databricks Runtime 14.2 以降が必要です。 他の Scala UDF と UDAFs はサポートされていません。
-
Databricks Runtime 14.2 以下では、インストールされているバージョンが常に優先されるため、ノートブック スコープのライブラリまたはクラスター スコープのライブラリを使用してPySpark UDFで
grpc
、pyarrow
、またはprotobuf
のカスタム バージョンを使用することはサポートされていません。インストールされているライブラリのバージョンを確認するには、各 バージョンのリリースノート の 「System Environment Databricks Runtime」セクションを参照してください。 -
Python スカラー UDF と Pandas UDF には、Databricks Runtime 14.1 以降が必要です。
-
非スカラー Python UDF および Pandas UDF ( UDAFs、UDTF、 Pandas on Sparkなど) には、 Databricks Runtime 14.3 LTS 以上が必要です。
「Unity Catalog のユーザー定義関数 (UDF)」を参照してください。
Unity Catalog 標準アクセス モードのストリーミングの制限と要件
リストされている Kafka オプションの一部は、Databricks でサポートされている構成に使用すると、サポートが制限されます。 リストされているすべての Kafka の制限は、バッチ処理とストリーム処理の両方で有効です。 「Apache Kafka と Databricks を使用したストリーム処理」を参照してください。
-
statestore
形式とstate-metadata
形式を使用して、ステートフル ストリーミング クエリの状態情報をクエリすることはできません。 -
transformWithState
、transformWithStateInPandas
、および関連する APIs はサポートされていません。 -
Scala の場合、
foreach
には Databricks Runtime 16.1 以降が必要です。foreachBatch
、およびflatMapGroupsWithState
には Databricks Runtime 16.2 以降が必要です。 -
Python の場合、Databricks Runtime 14.0 以降では、
foreachBatch
の動作が次のように変更されています。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
-
次の Kafka オプションは、Databricks Runtime 13.3 LTS 以降でサポートされていますが、Databricks Runtime 12.2 LTS ではサポートされていません。 次のオプションには、 Unity Catalog によって管理される外部ロケーションのみを指定できます。
kafka.ssl.truststore.location
kafka.ssl.keystore.location
-
Scala の場合、
StreamingQueryListener
には Databricks Runtime 16.1 以降が必要です。 -
Pythonの場合、
StreamingQueryListener
Databricks RuntimeLTSUnity Catalogでは、標準アクセスモードのコンピュートで資格情報を使用したり、 によって管理されるオブジェクトと対話したりするには、 14.3 以上が必要です。
ネットワークとファイルシステムのアクセス制限と Unity Catalog 標準アクセスモードの要件
-
コンピュートノードでコマンドは、ファイルシステムの機密性の高い部分へのアクセスが禁止されている低特権ユーザーとして実行する必要があります。
-
Databricks Runtime 11.3 LTS 以下では、ポート 80 と 443 へのネットワーク接続のみを作成できます。
-
インスタンスメタデータサービスや、 Databricks VPCで実行されているサービスには接続できません。
Unity Catalog の一般的な制限事項
次の制限は、Unity Catalog が有効なすべてのアクセスモードに適用されます。
Unity Catalog のストリーミングの制限事項
- Apache Spark の連続処理モードはサポートされていません。 Spark 構造化ストリーミング プログラミング ガイドの 「連続処理 」を参照してください。
「Unity Catalog 専用アクセス モードのストリーミングの制限事項」および「Unity Catalog 標準アクセス モードのストリーミングの制限事項と要件」も参照してください。
Unity Catalog でのストリーミングの詳細については、「 構造化ストリーミングでの Unity Catalog の使用」を参照してください。