計算 Unity Catalog 的存取模式限制
注意
存取模式已重新命名。 共用存取模式現在已為 標準。 單一使用者存取模式現在是 專用,可以指派給單一使用者或群組。 群組存取處於公開預覽狀態。
Databricks 建議針對大部分工作負載使用標準存取模式(先前稱為共用存取模式)。 本文概述 Unity 目錄的每個存取模式的限制和需求。 如需存取模式的詳細資訊,請參閱存取模式。
Databricks 建議使用計算原則來簡化大部分使用者的設定選項。 請參閱建立和管理計算原則。
注意
不支援 Unity Catalog 的舊版存取模式包括無隔離共享和憑證傳遞。
重要
Init 指令碼和程式庫在存取模式和 Databricks 執行時間版本之間有不同的支援。 請參閱 init 腳本可以安裝在哪裡? 和 計算範圍程式庫。
Unity 目錄上的專用存取模式限制
Unity 目錄上的專用存取模式有下列限制。 除了適用於所有 Unity Catalog 存取模式的一般限制之外,這些限制是額外的。 請參閱Unity Catalog的一般限制。
Unity 目錄專用存取模式的精細訪問控制限制
在 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 15.3 和以下版本上,您無法使用單一使用者計算來查詢使用 DLT 管線建立的數據表,包括 串流數據表 和 具體化檢視,如果這些數據表 其他使用者。 建立數據表的用戶是擁有者。
若要查詢 DLT 所建立且由其他使用者擁有的串流數據表和具體化檢視,請使用下列其中一項:
- 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 目錄的標準存取模式限制
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 目錄存取模式中計算。
- 針對使用標準存取模式的計算上之 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 的標量用戶定義函數 (UDFs) 需要 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 進行串流處理。
- 您無法使用格式
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 或更新版本。 - 不支援使用通訊端來源。
- 當您使用 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 Catalog 管理的物件互動。
Unity 目錄標準存取模式的網路和文件系統存取限制和需求
- 您必須以禁止存取檔案系統敏感部分的低權限使用者身分,在計算節點上執行命令。
- 在 Databricks Runtime 11.3 LTS 和以下版本中,您只能建立埠 80 和 443 的網路連線。
- 您無法連線到實例中繼資料服務或 Azure WireServer。
Unity 目錄的一般限制
下列限制適用於所有已啟用 Unity 目錄的存取模式。
Unity Catalog 的 串流限制
- 不支援 Apache Spark 連續處理模式。 請參閱 Spark 結構化串流程序設計指南中的連續處理。
另請參閱 Unity 目錄專用存取模式的 串流限制,以及 Unity 目錄標準存取模式 串流限制和需求。
如需使用 Unity 目錄串流的詳細資訊,請參閱 使用 Unity 目錄搭配結構化串流。