Unity 目錄的計算存取模式限制
Databricks 建議針對大部分工作負載使用 Unity 目錄和共用存取模式。 本文概述 Unity 目錄的每個存取模式的限制和需求。 如需存取模式的詳細資訊,請參閱存取模式。
Databricks 建議使用計算原則來簡化大部分使用者的設定選項。 請參閱建立和管理計算原則。
注意
不支援 Unity 目錄的舊版訪問模式包括無隔離共享和憑證傳遞。
重要
Init 指令碼和程式庫在存取模式和 Databricks 執行時間版本之間有不同的支援。 請參閱 哪裡可以安裝初始化腳本 和 叢集範圍庫。
Unity Catalog 上的單一使用者存取模式限制
Unity 目錄上的單一使用者存取模式有下列限制。 除了適用於所有 Unity Catalog 存取模式的一般限制之外,這些限制是額外的。 請參閱 Unity 目錄的
Unity Catalog 單一使用者模式的細緻存取控制限制
在 Databricks Runtime 15.3 和以下版本上,不支援單一使用者計算的精細訪問控制。 具體而言:
若要查詢動態檢視、基礎表和檢視表上沒有 SELECT
的檢視,以及具有數據列篩選或數據行遮罩的數據表,請使用下列其中一項:
- SQL 倉儲。
- 使用共用存取模式計算。
- 在 Databricks Runtime 15.4 LTS 或更新版本上使用單一使用者存取模式進行計算。
Databricks Runtime 15.4 LTS 和更新版本支援單一用戶計算的精細訪問控制。 若要利用 Databricks Runtime 15.4 LTS 和更新版本所提供的數據篩選,請確認 您的工作區已啟用無伺服器計算。
無伺服器運算會處理數據篩選,這允許在不需要其基礎資料表和檢視權限的情況下存取檢視。 由於無伺服器計算會處理數據篩選,因此當您使用單一使用者計算來查詢資料視圖時,可能會產生無伺服器計算費用。 如需詳細資訊,請參閱 單一用戶計算的精細訪問控制。
Unity 目錄單一使用者存取模式的串流數據表和具體化檢視限制
在 Databricks Runtime 15.3 和以下版本上,您無法使用單一使用者計算來查詢使用 Delta Live Tables 管線建立的數據表,包括 串流數據表 和 具體化檢視,如果這些數據表 其他使用者。 建立數據表的用戶是擁有者。
若要查詢 Delta Live Tables 所建立且由其他用戶擁有的串流數據表和具體化檢視,請使用下列其中一項:
- SQL 倉儲。
- 在 Databricks Runtime 13.3 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 目錄的
不支援 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 目錄存取模式中計算。
- 針對採用共用存取模式計算的 Databricks Runtime 15.3 或更低版本,請將 Spark 組態
spark.databricks.scala.kernel.fullClasspath.enabled
設定為true
。
Unity 目錄共用存取模式的 Spark API 限制和需求
- 不支援 RDD API。
- 任何 Databricks Runtime 中的 Scala 都不支援 Spark 內容 (
sc
)、spark.sparkContext
和sqlContext
,而且在 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 或更新版本。PySpark UDF 無法存取 Git 資料夾、工作區檔案或磁碟區,以在 Databricks Runtime 14.2 和以下版本匯入模組。
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,包括 Spark 上的 UDAF、UDF 和 Pandas,都需要 Databricks Runtime 14.3 LTS 或更新版本。
請參閱 Unity 目錄中 使用者定義函式 (UDF)。
Unity 目錄共用存取模式的串流限制和需求
注意
某些列出的 Kafka 選項用於 Azure Databricks 上受支援的設定時,支援有限。 所有列出的 Kafka 限制都適用於批次和串流處理。 請參閱使用 Apache Kafka 和 Azure Databricks 進行串流處理。
- 針對 Scala,
foreach
需要 Databricks Runtime 16.1 或更新版本。 不支援foreachBatch
和FlatMapGroupWithState
。 - 針對 Python,
foreachBatch
在 Databricks Runtime 14.0 和更新版本中有下列行為變更:-
print()
命令會將輸出寫入驅動程式記錄。 - 您無法存取函式內的
dbutils.widgets
子模組。 - 函式中參考的任何檔案、模組或對象都必須可串行化,且可在 Spark 上使用。
-
- 針對 Scala,
from_avro
需要 Databricks Runtime 14.2 或更新版本。 -
applyInPandasWithState
需要 Databricks Runtime 14.3 LTS 或更新版本。 - 不支援使用通訊端來源。
- 當您使用 Unity Catalog 管理的數據源與
sourceArchiveDir
搭配時,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 目錄所管理的對象互動。
Unity 目錄共用存取模式的網路和文件系統存取限制和需求
您必須以禁止存取檔案系統敏感部分的低權限使用者身分,在計算節點上執行命令。
在 Databricks Runtime 11.3 LTS 和以下版本中,您只能建立埠 80 和 443 的網路連線。
您無法連線到執行個體中繼資料服務或 Azure WireServer。
Unity 目錄的一般限制
下列限制適用於所有已啟用 Unity 目錄的存取模式。
Unity Catalog 的 串流限制
- 不支援 Apache Spark 連續處理模式。 請參閱 Spark 結構化串流程序設計指南中的連續處理。
另請參閱 Unity 目錄單一使用者存取模式的 串流限制,以及 Unity 目錄共用存取模式的串流限制和需求。
如需使用 Unity 目錄串流的詳細資訊,請參閱 使用 Unity 目錄搭配結構化串流。