Unity Catalog 的计算访问模式限制

Databricks 建议对大部分工作负载使用 Unity Catalog 和共享访问模式。 本文概述了 Unity Catalog 的每种访问模式的各种限制。 有关访问模式的详细信息,请参阅访问模式

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

注意

无隔离共享是不支持 Unity Catalog 的旧访问模式。

重要

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

Unity Catalog 上的单用户访问模式限制

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

Unity Catalog 单用户访问模式的精细访问控制限制

  • 不支持动态视图。

  • 若要从视图中进行读取,你必须对所有引用的表和视图拥有 SELECT 权限。

  • 无法访问具有行筛选器或列掩码的表。

  • 不能使用单个用户计算来查询由已启用 Unity Catalog 的增量实时表管道创建的表,包括在 Databricks SQL 中创建的流式处理表具体化视图。 若要查询由增量实时表管道创建的表,必须使用采用 Databricks Runtime 13.3 LTS 及更高版本的共享计算。

Unity Catalog 单用户访问模式的流式处理限制

  • Databricks Runtime 11.3 LTS 及更低版本不支持异步检查点。

Unity Catalog 上的共享访问模式限制

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

  • 不支持 Databricks Runtime ML 和 Spark 机器学习库 (MLlib)。

  • 不支持 Spark-submit 作业。

  • 在 Databricks Runtime 13.3 及更高版本上,单个行不得超过最大大小 (128MB)。

  • 与凭据传递一起使用时,Unity Catalog 功能将被禁用。

  • 不支持自定义容器。

Unity Catalog 共享访问模式的语言支持

  • 不支持 R。
  • Databricks Runtime 13.3 及更高版本支持 Scala。

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

Unity Catalog 共享访问模式的 UDF 限制

重要

对共享访问模式下启用了 Unity Catalog 的计算上 Scala UDF 的支持处于公共预览状态

对于共享访问模式,用户定义的函数 (UDF) 具有以下限制:

  • 不支持 Hive UDF。

  • Databricks Runtime 14.2 及更低版本不支持 applyInPandasmapInPandas

  • Databricks Runtime 14.2 及更高版本支持 Scala 标量 UDF。 其他 Scala UDF 和 UDAF 不受支持。

  • 在 Databricks Runtime 13.3 LTS 及更高版本中,Python 标量 UDF 和 Pandas UDF 受支持。 不支持其他 Python UDF,包括 UDAF、UDF 和 Spark 上的 Pandas。

请参阅 Unity Catalog 中的用户定义函数 (UDF)

Unity Catalog 共享访问模式的流式处理限制

注意

一些列出的 Kafka 选项在 Azure Databricks 上用于受支持的配置时,支持有限。 请参阅使用 Apache Kafka 和 Azure Databricks 进行流处理

  • 对于 Scala,不支持 foreachforeachBatch
  • 对于 Python,foreachBatch 在 Databricks Runtime 14.0 及更高版本中具有新行为。 请参阅 Databricks Runtime 14.0 中 foreachBatch 的行为变化
  • 对于 Scala,from_avro 需要 Databricks Runtime 14.2 或更高版本。
  • 不支持 applyInPandasWithState
  • 不支持使用套接字源。
  • option("cleanSource", "archive") 与 Unity Catalog 管理的数据源配合使用时,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

Unity Catalog 共享访问模式的网络和文件系统访问限制

  • 必须在计算节点上运行命令,因为低特权用户禁止访问文件系统的敏感部分。

  • 在 Databricks Runtime 11.3 LTS 及更低版本中,只能创建到端口 80 和 443 的网络连接。

  • 无法连接到实例元数据服务或 Azure WireServer。

Unity Catalog 的常规限制

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

Unity Catalog 的流式处理限制

  • 不支持 Apache Spark 连续处理模式。 请参阅“Spark 结构化流式处理编程指南”中的连续处理
  • StreamingQueryListener 不能使用凭据,也不能与 Unity Catalog 管理的对象交互。

另请参阅 Unity Catalog 单用户访问模式的流式处理限制Unity Catalog 共享访问模式的流式处理限制

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