注
アクセス モードの名前が変更されました。 共有アクセス モードが Standard になりました。 シングル ユーザー アクセス モードが Dedicated になり、1 人のユーザーまたはグループに割り当てることができます。 グループ アクセスはパブリック プレビュー段階です。
Databricks では、ほとんどのワークロードで標準アクセス モード (以前の共有アクセス モード) を使用することをお勧めします。 この記事では、Unity Catalog の各アクセス モードにおける制限事項と要件について説明します。 アクセス モードの詳細については、「アクセス モード」を参照してください。
Databricks は、ほとんどのユーザー向けに構成の簡素化のため、コンピューティング ポリシーの使用を推奨しています。 「コンピューティング ポリシーの作成と管理」を参照してください。
注
分離なしの共有と資格情報のパススルーは、Unity カタログをサポートしないレガシ アクセス モードです。
重要
Init スクリプトとライブラリは、アクセス モードおよび Databricks Runtime のバージョンによってサポート状況が異なります。 init スクリプトをインストールできる場所とコンピューティング スコープのライブラリを参照してください。
Unity カタログの専用アクセス モードの制限事項
Unity カタログの専用アクセス モードには、次の制限があります。 これらは、すべての Unity Catalog アクセス モードに共通する一般的な制限に加えて適用されます。 「Unity Catalog の一般的な制限事項」を参照してください。
専用アクセス モードによるきめ細かいアクセス制御のサポート
注
Databricks Runtime 15.4 LTS 以降で使用できるデータ フィルター処理を利用するには、サーバーレス コンピューティングに対してワークスペースを有効にする必要があります。
Databricks Runtime 15.4 LTS 以降では、読み取り操作に対するきめ細かなアクセス制御がサポートされています。
Databricks Runtime 16.3 以降では、 MERGE INTO と
DataFrame.write.mode("append")
API を使用した行フィルターと列フィルターを含むテーブルへの書き込みがサポートされています。 書き込み操作のサポートを参照してください。Databricks Runtime 15.3 以下では、専用コンピューティングでのきめ細かなアクセス制御はサポートされていません。 具体的な内容は次のとおりです。
- 行フィルターや列マスクが設定されたテーブルにはアクセスできません。
- 動的ビューにはアクセスできません。
- ビューを読み取るには、そのビューが参照しているすべてのテーブルおよびビューに対して
SELECT
権限が必要です。
Unityカタログ専用アクセスモードにおけるストリーミングテーブルとマテリアライズドビューの制限事項
Databricks Runtime 15.3 以下では、 ストリーミング テーブル や 具体化されたビューなど、Lakeflow 宣言型パイプラインを使用して作成されたテーブルをクエリするために専用のコンピューティングを使用することはできません (これらのテーブルが 他のユーザーが所有している場合)。 テーブルの作成者がその所有者となります。
Lakeflow 宣言パイプラインによって作成され、他のユーザーが所有するストリーミング テーブルと具体化されたビューに対してクエリを実行するには、次のいずれかを使用します。
- SQL ウェアハウス
- Databricks Runtime 13.3 LTS 以降の標準アクセス モードを使用したコンピューティング。
- Databricks Runtime 15.4 LTS 以降の専用アクセス モードを使用したコンピューティング。
ワークスペースでもサーバーレス コンピューティングを有効にする必要があります。 詳細については、 専用コンピューティングでのきめ細かなアクセス制御に関するページを参照してください。
Unity カタログ専用アクセス モードのストリーミング制限
- Databricks Runtime 11.3 LTS 以下では、非同期チェックポイントはサポートされていません。
StreamingQueryListener
では、Databricks Runtime 15.1 以降で資格情報を使用したり、専用コンピューティングで Unity Catalog によって管理されるオブジェクトと対話したりする必要があります。
専用アクセス モードのネットワーク要件
- ワークスペースがファイアウォールを使用してデプロイされた場合、または送信ネットワークの制限がある場合は、ポート 8443 と 8444 を開いて、専用コンピューティングできめ細かなアクセス制御を有効にする必要があります。 ネットワーク セキュリティ グループの規則 を参照してください。
Unity カタログの標準アクセス モードの制限事項
Unity カタログの標準アクセス モードには、次の制限があります。 これらは、すべての Unity Catalog アクセス モードに共通する一般的な制限に加えて適用されます。 「Unity Catalog の一般的な制限事項」を参照してください。
- Databricks Runtime ML はサポートされていません。
- Spark ML は、Databricks Runtime 16.4 以降ではサポートされていません。 Databricks Runtime 17.0 では、Spark ML のサポートが追加されました。
- Spark-submit ジョブ タスクはサポートされていません。 代わりに、JAR タスク を使用してください。
- クラウド ストレージからデータを直接読み取る DBUtils やその他のクライアントは、外部ロケーションを使用してストレージ ロケーションにアクセスする場合にのみサポートされます。 クラウド ストレージを Azure Databricks に接続するには、「外部ロケーションを作成する」を参照してください。
- Databricks Runtime 13.3 以上では、1 行あたりのサイズが 128 MB を超えることはできません。
- DBFS ルートおよびマウントは FUSE をサポートしていません。
- カスタム コンテナーはサポートされていません。
Unity カタログ標準アクセス モードの言語サポート
- 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.enabled
をtrue
に設定します。
Unity カタログ標準アクセス モードの Spark API の制限事項と要件
- RDD API はサポートされていません。
- Spark Context (
sc
)、spark.sparkContext
、およびsqlContext
は、すべての Databricks Runtime において Scala でサポートされておらず、Databricks Runtime 14.0 以上において Python でサポートされていません。- Databricks は、
SparkSession
インスタンスとのやり取りにはspark
変数を使用することを推奨しています。 - 次の
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 Dataset API 操作には Databricks Runtime 15.4 LTS 以上が必要です:
map
、mapPartitions
、foreachPartition
、flatMap
、reduce
、filter
。 - Spark 構成 プロパティ
spark.executor.extraJavaOptions
はサポートされていません。
Unity カタログ標準アクセス モードの UDF の制限事項と要件
ユーザー定義関数 (UDF) には、標準アクセス モードでは次の制限があります。
- Hive UDF はサポートされていません。
-
applyInPandas
とmapInPandas
では Databricks Runtime 14.3 以上が必要です。 - Databricks Runtime 14.2 以下では、PySpark UDF から Git フォルダー、ワークスペース ファイル、またはボリュームにアクセスしてモジュールをインポートすることはできません。
- Scala スカラ UDF および Scala UDAF では Databricks Runtime 14.2 LTS 以上が必要です。
- Databricks Runtime 14.2 以下では、ノートブック スコープまたはクラスター スコープのライブラリを通じて、PySpark UDF で
grpc
、pyarrow
、protobuf
のカスタム バージョンを使用することはサポートされていません。インストール済みのバージョンが常に優先されるためです。 インストール済みのライブラリのバージョンについては、該当する Databricks Runtime バージョンのリリース ノートで「システム環境」セクションを参照してください。
- Python スカラ UDF および Pandas UDF では Databricks Runtime 13.3 LTS 以上が必要です。
- 非スカラの Python および Pandas UDF (UDAF、UDTF、Pandas on Spark など) では Databricks Runtime 14.3 LTS 以上が必要です。
「Unity Catalog におけるユーザー定義関数 (UDF)」を参照してください。
Unity カタログ標準アクセス モードのストリーミングの制限事項と要件
注
記載されている Kafka のオプションの一部は、Azure Databricks でサポートされている構成で使用する場合に制限があります。 記載されている Kafka の制限事項は、バッチ処理とストリーム処理の両方に適用されます。 「Apache Kafka と Azure Databricks を使用したストリーム処理」を参照してください。
statestore
形式とstate-metadata
形式を使用して、ステートフル ストリーミング クエリの状態情報を照会することはできません。transformWithState
および関連する API はサポートされていません。transformWithStateInPandas
には Databricks Runtime 16.3 以降が必要です。- 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 以上が必要です。 - Scala では、
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
- Scala の場合、
StreamingQueryListener
には Databricks Runtime 16.1 以降が必要です。 - Python の場合、
StreamingQueryListener
では、Databricks Runtime 14.3 LTS 以降で、資格情報を使用したり、標準アクセス モードでコンピューティング時に Unity Catalog によって管理されるオブジェクトと対話したりする必要があります。
Unity カタログ標準アクセス モードの Scala カーネルの制限事項
標準アクセス モードコンピューティングで Scala カーネルを使用する場合は、次の制限が適用されます。
- 特定のクラスは、内部のカーネル ライブラリ (特に
Input
) と競合する場合は、コードで使用できません。 アーモンドの定義された輸入品の一覧については、 アーモンドの輸入を参照してください。 - log4j への直接ログ記録はサポートされていません。
- UI では、データフレーム スキーマドロップダウンはサポートされていません。
- ドライバーが OOM にヒットした場合、Scala REPL は終了しません。
//connector/sql-aws-connectors:sql-aws-connectors
が Scala REPL のバゼル ターゲットに含まれていない場合は、ClassNotFoundException
で結果を使用します。- Scala ストリーミングはサポートされていません。
- Scala カーネルは SQLImplicits と互換性がありません。
Unity カタログ標準アクセス モードのネットワークとファイル システムのアクセス制限と要件
- コンピューティング ノード上でコマンドを実行する際は、ファイルシステムの重要領域へのアクセスが禁止された低権限ユーザーとして実行する必要があります。
- DBFS の POSIX スタイルのパス (
/
) はサポートされていません。 - DBFS を使用してファイルを直接操作できるのは、ワークスペース管理者と任意の FILE アクセス許可を持つユーザーだけです。
- Databricks Runtime 11.3 LTS 以下では、ネットワーク接続はポート 80 および 443 に対してのみ作成できます。
- インスタンス メタデータ サービスや Azure WireServer には接続できません。
Unity Catalog の一般的な制限
以下の制限は、すべての Unity Catalog 対応のアクセス モードに適用されます。
Unity Catalog のストリーミング制限
- Apache Spark の連続処理モードはサポートされていません。 Spark Structured Streaming プログラミング ガイドの「連続処理」を参照してください。
Unity カタログ専用アクセス モードのストリーミング制限と、Unity カタログ標準アクセス モードのストリーミングの制限事項と要件も参照してください。
Unity Catalog でのストリーミングの詳細については、「構造化ストリーミングでの Unity Catalog の使用」をご覧ください。
Unity カタログの Spark API の制限事項
RDD API はサポートされていません。