注意
访问模式已重命名。 共享访问模式现在是 标准模式。 单用户访问模式现在为 “专用 ”,可分配给单个用户或组。 组访问以公共预览版提供。
Databricks 建议对大多数工作负荷使用标准访问模式(以前共享访问模式)。 本文概述了使用 Unity Catalog 的每个访问模式的限制和要求。 有关访问模式的详细信息,请参阅访问模式。
Databricks 建议使用计算策略来简化大多数用户的配置选项。 请参阅创建和管理计算策略。
注意
无隔离共享和凭据直通是不支持 Unity Catalog 的传统访问模式。
重要
Init 脚本和库对各访问模式和 Databricks Runtime 版本提供不同的支持。 请参阅 初始化脚本可以安装在哪里? 和 计算范围库。
Unity Catalog 上的专用访问模式限制
Unity 目录上的专用访问模式具有以下限制。 除了所有 Unity Catalog 访问模式的常规限制外,还存在这些限制。 请参阅 Unity Catalog 的常规限制。
Unity Catalog 专用访问模式的精细化访问控制限制
在 Databricks Runtime 15.3 及更低版本上,不支持单用户计算上的精细访问控制。 具体而言:
要查询动态视图、基础表和视图上没有 SELECT
的视图以及具有行筛选器或列掩码的表,请使用以下项之一:
- SQL 仓库。
- 使用标准访问模式进行计算。
- 在 Databricks Runtime 15.4 LTS 或更高版本上使用专用访问模式计算。
Databricks Runtime 15.4 LTS 及更高版本支持单用户计算的精细访问控制。 若要利用 Databricks Runtime 15.4 LTS 及更高版本中提供的数据筛选,你还必须验证你的工作区是否已启用无服务器计算。
Unity Catalog 专用访问模式的流式传输限制
- Databricks Runtime 11.3 LTS 及更低版本不支持异步检查点。
StreamingQueryListener
需要 Databricks Runtime 15.1 或更高版本才能在单个用户计算上使用凭据或与 Unity Catalog 管理的对象交互。
Unity Catalog 上的标准访问模式限制
Unity 目录中的标准访问模式具有以下限制。 除了所有 Unity Catalog 访问模式的常规限制外,还存在这些限制。 请参阅 Unity Catalog 的常规限制。
- 不支持 Databricks Runtime ML 和 Spark 机器学习库 (MLlib)。
- 不支持 Spark-submit 作业任务。 请改用 JAR 任务。
- 仅当使用外部位置访问存储位置时,才支持直接从云存储读取数据的 DBUtils 和其他客户端。 请参阅创建外部位置以将云存储连接到 Azure Databricks。
- 在 Databricks Runtime 13.3 及更高版本中,单个行不得超过 128MB。
- DBFS 根和装载不支持 FUSE。
- 不支持自定义容器。
Unity 目录标准访问模式的语言支持
- 不支持 R。
- Databricks Runtime 13.3 及更高版本中支持 Scala。
- 在 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 上下文 (
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 目录标准访问模式的 UDF 限制和要求
用户定义的函数(UDF)在标准访问模式下具有以下限制:
不支持 Hive UDF。
applyInPandas
和mapInPandas
需要 Databricks Runtime 14.3 或更高版本。在 Databricks Runtime 14.2 及更低版本中,PySpark UDF 无法访问 Git 文件夹、工作区文件或卷来导入模块。
Scala 标量 UDF 需要 Databricks Runtime 14.2 或更高版本。 不支持其他 Scala UDF 和 UDAF。
在 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 和 Spark 上的 Pandas)需要 Databricks Runtime 14.3 LTS 或更高版本。
请参阅 Unity Catalog 中的用户定义函数 (UDF)。
Unity Catalog 标准访问模式的流式处理限制和要求
注意
一些列出的 Kafka 选项在 Azure Databricks 上用于受支持的配置时,支持有限。 所有列出的 Kafka 限制对于批处理和流处理均有效。 请参阅使用 Apache Kafka 和 Azure Databricks 进行流处理。
- 不能使用
statestore
和state-metadata
格式来查询有状态流式处理查询的状态信息。 transformWithState
、transformWithStateInPandas
及其关联的 API 不受支持。- 对于 Scala,
foreach
需要 Databricks Runtime 16.1 或更高版本。foreachBatch
,并且flatMapGroupsWithState
需要 Databricks Runtime 16.2 或更高版本。 - 对于 Python,
foreachBatch
在 Databricks Runtime 14.0 及更高版本中具有以下行为更改:print()
命令会将输出写入驱动程序日志。- 无法访问函数内的
dbutils.widgets
子模块。 - 函数中引用的任何文件、模块或对象都必须可序列化并在 Spark 上可用。
- 对于 Scala,
from_avro
需要 Databricks Runtime 14.2 或更高版本。 applyInPandasWithState
需要 Databricks Runtime 14.3 LTS 或更高版本。- 不支持使用套接字源。
- 将
sourceArchiveDir
与 Unity Catalog 管理的数据源配合使用时,option("cleanSource", "archive")
必须位于源所在的同一外部位置。 - 对于 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 目录标准访问模式的网络和文件系统访问限制和要求
必须在计算节点上运行命令,因为低特权用户禁止访问文件系统的敏感部分。
在 Databricks Runtime 11.3 LTS 及更低版本中,只能创建到端口 80 和 443 的网络连接。
无法连接到实例元数据服务或 Azure WireServer。
Unity Catalog 的常规限制
以下限制适用于所有已启用 Unity Catalog 的访问模式。
Unity Catalog 的流式处理限制
- 不支持 Apache Spark 连续处理模式。 请参阅“Spark 结构化流式处理编程指南”中的连续处理。
另请参阅 Unity 目录专用访问模式的流式处理限制以及 Unity 目录标准访问模式的流式处理限制和要求。
有关使用 Unity Catalog 进行流式处理的详细信息,请参阅将 Unity Catalog 与结构化流式处理配合使用。