Изоляция записных книжек
Изоляция записных книжек связана с видимостью переменных и классов между записными книжками. Azure Databricks поддерживает два типа изоляции:
- Изоляция переменных и классов
- Изоляция сеанса Spark
Примечание.
Azure Databricks управляет изоляцией пользователей с помощью режимов доступа, настроенных в кластерах.
- Отсутствие изоляции общего доступа: один и тот же кластер могут использовать несколько пользователей. Пользователи используют учетные данные, заданные на уровне кластера. Никакие средства управления доступом к данным не применяются.
- Один пользователь: только именованный пользователь может использовать кластер. Все команды выполняются с привилегиями этого пользователя. Списки управления доступом к таблицам в хранилище метаданных Hive не применяются. Этот режим доступа поддерживает каталог Unity.
- Общий доступ: один и тот же кластер могут использовать несколько пользователей. Пользователи полностью изолированы друг от друга, и каждый пользователь выполняет команды с собственными привилегиями. Применяются списки управления доступом к таблицам в хранилище метаданных Hive. Этот режим доступа поддерживает каталог Unity.
Изоляция переменных и классов
Переменные и классы доступны только в текущей записной книжке. Например, две записные книжки, подключенные к одному кластеру, могут определять переменные и классы с одинаковым именем, но эти объекты являются разными.
Чтобы определить класс, видимый для всех записных книжек, присоединенных к тому же кластеру, определите класс в ячейке пакета. Затем можно получить доступ к классу, используя его полное имя, что аналогично доступу к классу в присоединенной библиотеке Scala или Java.
Изоляция сеансов Spark
Каждая записная книжка, подключенная к кластеру, имеет предопределенную переменную, которая spark
представляет собой .SparkSession
SparkSession
— это точка входа для использования API Spark, а также настройки конфигурации среды выполнения.
Изоляция сеансов Spark включена по умолчанию. Вы также можете использовать глобальные временные представления для совместного использования временных представлений в записных книжках. См. раздел CREATE VIEW. Чтобы отключить изоляцию сеансов Spark, задайте для параметра spark.databricks.session.share
значение true
в конфигурации Spark.
Важно!
Значение true параметра spark.databricks.session.share
прерывает мониторинг, используемый для потоковой передачи как ячеек записной книжки, так и заданий. В частности:
- Графы в ячейках потоковой передачи не отображаются.
- Задания не блокируются, пока выполняется поток (они только успешно завершаются, останавливая поток).
- Завершение потоков в заданиях не отслеживается. Вместо этого необходимо вручную вызвать
awaitTermination()
. - Вызов создания новой визуализации для кадров данных потоковой передачи не работает.
Ячейки, которые активируют команды на других языках (то есть ячейки, использующие %scala
, %python
, %r
и %sql
) и ячейки, включающие другие записные книжки (то есть ячейки, использующие %run
), являются частью текущей записной книжки. Таким образом, эти ячейки находятся в том же сеансе, что и другие ячейки записной книжки. В отличие от этого, рабочий процесс записной книжки запускает записную книжку с изолированным SparkSession
, что означает, что временные представления, определенные в такой записной книжке, не видны в других записных книжках