共用方式為


筆記本隔離

筆記本隔離是指筆記本之間變數和類別的可見度。 Azure Databricks 支援兩種類型的隔離:

  • 變數和類別隔離
  • Spark 工作階段隔離

注意

Azure Databricks 會使用 叢集上設定的 存取模式來管理使用者隔離。

  • 沒有共用 隔離:多個使用者可以使用相同的叢集。 使用者共用在叢集層級設定的認證。 不會強制執行任何資料存取控制。
  • 單一使用者 :只有具名使用者可以使用叢集。 所有命令都會以該使用者的權限執行。 不會強制執行 Hive 中繼存放區中的資料表 ACL。 此存取模式支援 Unity 目錄。
  • 共用 :多個使用者可以使用相同的叢集。 使用者彼此完全隔離,而且每個使用者都以自己的權限執行命令。 強制執行 Hive 中繼存放區中的資料表 ACL。 此存取模式支援 Unity 目錄。

變數和類別隔離

變數和類別僅適用于目前的筆記本。 例如,連結至相同叢集的兩個筆記本可以定義具有相同名稱的變數和類別,但這些物件是不同的。

若要定義連結至相同叢集 之所有筆記本可見 的類別,請在封裝資料格 定義 類別。 然後,您可以使用其完整名稱來存取類別,這與存取附加 Scala 或 JAVA 程式庫中的類別相同。

Spark 會話隔離

附加至叢集的每個筆記本都有一 spark 個名為 的預先定義變數,代表 SparkSessionSparkSession 是使用 Spark API 以及設定執行時間組態的進入點。

預設會啟用 Spark 會話隔離。 您也可以使用 全域 暫存檢視跨筆記本共用暫存檢視。 請參閱 CREATE VIEW 。 若要停用 Spark 會話隔離,請在 Spark 組態中將 設定為 spark.databricks.session.sharetrue

重要

設定 spark.databricks.session.share true 會中斷串流筆記本資料格和串流作業所使用的監視。 具體而言:

  • 串流資料格中的圖表不會顯示。
  • 只要資料流程正在執行,作業就不會封鎖(它們只會「成功」完成,停止資料流程)。
  • 作業中的資料流程不會受到監視以終止。 相反地,您必須手動呼叫 awaitTermination()
  • 呼叫在 串流資料框架上建立新的視覺效果 無法運作。

觸發其他語言命令的儲存格(也就是使用 %scala%python%r%sql 的儲存格,以及包含其他筆記本的儲存格(也就是使用 %run 的儲存格)是目前筆記本的一部分。 因此,這些儲存格與其他筆記本儲存格位於相同的會話中。 相反地,筆記本工作流程會 執行具有隔離 SparkSession 的筆記本,這表示這類筆記本中定義的暫存檢視在其他 筆記本中看不到