Notebook 격리

Notebook 격리란 Notebook 간 변수 및 클래스의 가시성을 가리킵니다. Azure Databricks는 두 가지 유형의 격리를 지원합니다.

  • 변수 및 클래스 격리
  • Spark 세션 격리

참고 항목

Azure Databricks는 클러스터에 구성된 액세스 모드를 사용하여 사용자 격리를 관리합니다.

  • 분리 공유 없음: 여러 사용자가 동일한 클러스터를 사용할 수 있습니다. 사용자는 클러스터 수준에서 설정된 자격 증명을 공유합니다. 데이터 액세스 제어가 적용되지 않습니다.
  • 단일 사용자: 명명된 사용자만 클러스터를 사용할 수 있습니다. 모든 명령은 해당 사용자의 권한으로 실행됩니다. Hive 메타스토어의 테이블 ACL은 적용되지 않습니다. 이 액세스 모드는 Unity 카탈로그를 지원합니다.
  • 공유: 여러 사용자가 동일한 클러스터를 사용할 수 있습니다. 사용자는 서로 완전히 격리되어 있으며 각 사용자는 고유한 권한으로 명령을 실행합니다. Hive 메타스토어의 테이블 ACL이 적용됩니다. 이 액세스 모드는 Unity 카탈로그를 지원합니다.

변수 및 클래스 격리

변수 및 클래스는 현재 Notebook에서만 사용할 수 있습니다. 예를 들어, 동일한 클러스터에 연결된 두 개의 Notebook은 이름이 같은 변수와 클래스를 정의할 수 있지만 각 개체는 고유합니다.

동일한 클러스터에 연결된 모든 Notebook에 표시되는 클래스를 정의하려면 패키지 셀에서 클래스를 정의합니다. 그런 다음 정규화된 이름을 사용하여 클래스에 액세스할 수 있습니다. 이것은 연결된 Scala 또는 Java 라이브러리의 클래스에 액세스하는 것과 동일합니다.

Spark 세션 격리

클러스터에 연결된 모든 Notebook에는 SparkSession을 나타내는 미리 정의된 변수 spark가 있습니다. SparkSession은 Spark API를 사용하고 런타임 구성을 설정하기 위한 진입점입니다.

Spark 세션 격리는 기본적으로 사용하도록 설정됩니다. 전역 임시 보기를 사용하여 전자 필기장 간에 임시 보기를 공유할 수도 있습니다. CREATE VIEW를 참조하세요. Spark 세션 격리를 사용하지 않도록 설정하려면 Spark 구성에서 spark.databricks.session.sharetrue로 설정합니다.

Important

spark.databricks.session.share를 true로 설정하면 스트리밍 Notebook 셀과 스트리밍 작업 양쪽에서 사용하는 모니터링이 중단됩니다. 특별한 사항

  • 스트리밍 셀의 그래프가 표시되지 않습니다.
  • 스트림이 실행되는 한 작업이 차단되지 않습니다(작업은 단지 “성공적으로” 완료되어 스트림을 중지합니다).
  • 작업의 스트림에 대한 종료가 모니터링되지 않습니다. 대신 수동으로 awaitTermination()을 호출해야 합니다.
  • 스트리밍 DataFrames에서 새 시각화 만들기 호출은 작동하지 않습니다.

다른 언어의 명령을 트리거하는 셀(즉, %scala, %python, %r, %sql을 사용하는 셀)과 다른 Notebook을 포함하는 셀(즉, %run을 사용하는 셀)은 현재 Notebook의 일부입니다. 따라서 이러한 셀은 다른 Notebook 셀과 동일한 세션에 있습니다. 반면, Notebook 워크플로는 격리된 SparkSessionNotebook을 실행합니다. 즉, 이러한 Notebook에 정의된 임시 보기는 다른 Notebook에 표시되지 않습니다.