共用方式為

Unity Catalog 的计算访问模式限制

注意

访问模式已重命名。 共享访问模式现在是 标准模式。 单用户访问模式现在为 “专用 ”,可分配给单个用户或组。 组访问以公共预览版提供。

Databricks 建议对大多数工作负荷使用标准访问模式(以前共享访问模式)。 本文概述了使用 Unity Catalog 的每个访问模式的限制和要求。 有关访问模式的详细信息,请参阅访问模式

Databricks 建议使用计算策略来简化大多数用户的配置选项。 请参阅创建和管理计算策略

有关更新 Unity 目录计算的演示,请参阅:

注意

无隔离共享和凭据直通是不支持 Unity Catalog 的传统访问模式。

重要

Init 脚本和库对各访问模式和 Databricks Runtime 版本提供不同的支持。 请参阅 初始化脚本可以安装在哪里?计算范围库

Unity Catalog 上的专用访问模式限制

Unity 目录上的专用访问模式具有以下限制。 除了所有 Unity Catalog 访问模式的常规限制外,还存在这些限制。 请参阅 Unity Catalog 的常规限制

Unity Catalog 专用访问模式的流式传输限制

  • Databricks Runtime 11.3 LTS 及更低版本不支持异步检查点。
  • StreamingQueryListener 需要 Databricks Runtime 15.1 或更高版本才能在专用计算上使用凭据或与 Unity 目录管理的对象进行交互。

专用访问模式的网络要求

  • 如果工作区部署了防火墙或具有出站网络限制,则必须打开端口 8443 和 8444,才能在专用计算上启用精细访问控制。 请参阅 网络安全组规则

Unity Catalog 上的标准访问模式限制

Unity 目录中的标准访问模式具有以下限制。 除了所有 Unity Catalog 访问模式的常规限制外,还存在这些限制。 请参阅 Unity Catalog 的常规限制

  • 不支持 Databricks Runtime ML。
  • Databricks Runtime 16.4 及更低版本不支持 Spark ML。 Databricks Runtime 17.0 添加了对 Spark ML 的支持。
  • 不支持 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.sparkContextsqlContext 不可用于任何 Databricks Runtime 中的 Scala,并且在 Databricks Runtime 14.0 及更高版本中的 Python 中不受支持。
    • Databricks 建议使用 spark 变量来与 SparkSession 实例进行交互。
    • 也不支持以下 sc 函数:emptyRDDrangeinit_batched_serializerparallelizepickleFiletextFilewholeTextFilesbinaryFilesbinaryRecordssequenceFilenewAPIHadoopFilenewAPIHadoopRDDhadoopFilehadoopRDDunionrunJobsetSystemPropertyuiWebUrlstopsetJobGroupsetLocalPropertygetConf
  • 以下 Scala 数据集 API 操作需要 Databricks Runtime 15.4 LTS 或更高版本:mapmapPartitionsforeachPartitionflatMapreducefilter
  • 不支持 Spark 配置 属性 spark.executor.extraJavaOptions

Unity 目录标准访问模式的 UDF 限制和要求

用户定义的函数(UDF)在标准访问模式下具有以下限制:

  • 不支持 Hive UDF。
  • applyInPandasmapInPandas 需要 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 中使用自定义版本的 grpcpyarrowprotobuf,因为始终首选已安装的版本。 若要查找已安装的库的版本,请参阅特定 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 进行流处理

  • 不能使用 statestorestate-metadata 格式来查询有状态流式处理查询的状态信息。
  • transformWithState 和相关的 API 不受支持。
  • transformWithStateInPandas 需要 Databricks Runtime 16.3 及更高版本。
  • 对于 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 Catalog 标准访问模式的 Scala 内核限制

在标准访问模式计算上使用 scala 内核时,以下限制适用。

  • 如果某些类与内部杏仁内核库冲突,则不能在代码中使用,尤其是 Input。 有关杏仁定义的进口列表,请参阅 杏仁进口
  • 不支持直接登录到 log4j。
  • 在 UI 中,不支持数据帧架构下拉列表。
  • 如果驱动程序达到 OOM,Scala REPL 不会终止。
  • //connector/sql-aws-connectors:sql-aws-connectors 不在 Scala REPL 的 bazel 目标中,使用它会导致 ClassNotFoundException
  • 不支持 Scala 流式处理。
  • Scala 内核与 SQLImplicits 不兼容。

Unity 目录标准访问模式的网络和文件系统访问限制和要求

  • 必须在计算节点上运行命令,因为低特权用户禁止访问文件系统的敏感部分。
  • 不支持 DBFS 的 POSIX 样式路径 (/)。
  • 只有具有 ANY FILE 权限的工作区管理员和用户才能使用 DBFS 直接与文件交互。
  • 在 Databricks Runtime 11.3 LTS 及更低版本中,只能创建到端口 80 和 443 的网络连接。
  • 无法连接到实例元数据服务或 Azure WireServer。

Unity Catalog 的常规限制

以下限制适用于所有已启用 Unity Catalog 的访问模式。

Unity Catalog 的流式处理限制

  • 不支持 Apache Spark 连续处理模式。 请参阅“Spark 结构化流式处理编程指南”中的连续处理

另请参阅 Unity 目录专用访问模式的流式处理限制以及 Unity 目录标准访问模式的流式处理限制和要求

有关使用 Unity Catalog 进行流式处理的详细信息,请参阅将 Unity Catalog 与结构化流式处理配合使用

Unity 目录的 Spark API 限制

不支持 RDD API。