Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Внимание
Подключения DBFS относятся к устаревшей практике и не рекомендуются компанией Databricks. Новые учетные записи подготавливаются без доступа к этим функциям. Databricks рекомендует использовать внешние местоположения в Unity Catalog.
Azure Databricks позволяет пользователям подключить облачное хранилище объектов к файловой системе Databricks (DBFS), чтобы упростить доступ к данным для пользователей, незнакомых с облачными понятиями. Подключенные данные не работают с каталогом Unity, и Databricks рекомендует перейти от использования подключений и вместо этого управлять управлением данными с помощью каталога Unity.
Как Azure Databricks подключает облачное хранилище объектов?
Маунты Azure Databricks создают связь между рабочей областью и облачным хранилищем объектов, что позволяет взаимодействовать с облачным хранилищем объектов, используя привычные файловые пути относительно файловой системы Databricks. Монтажи работают путем создания локального псевдонима в подкаталоге /mnt, в котором хранится следующая информация:
- Расположение облачного хранилища объектов.
- Спецификации драйвера для подключения к учетной записи хранения или контейнеру.
- Учетные данные безопасности, необходимые для доступа к данным.
Какой синтаксис используется для подключения хранилища?
source задает универсальный код ресурса (URI) хранилища объектов (при необходимости может кодировать учетные данные безопасности).
mount_point указывает локальный путь в каталоге /mnt. Некоторые источники хранилища объектов поддерживают необязательный encryption_type аргумент. Для некоторых шаблонов доступа можно передать дополнительные спецификации конфигурации в качестве словаря extra_configs.
Примечание.
Databricks рекомендует настраивать конфигурации Spark и Hadoop для определенных подключений в виде параметров, используя extra_configs. Это гарантирует, что конфигурации привязаны к подключению, а не к кластеру или сеансу.
dbutils.fs.mount(
source: str,
mount_point: str,
encryption_type: Optional[str] = "",
extra_configs: Optional[dict[str:str]] = None
)
Обратитесь к администраторам рабочей области и облака перед настройкой или изменением подключений данных, так как неверная конфигурация может скомпрометировать доступ ко всем пользователям в рабочей области.
Примечание.
Помимо подходов, описанных в этой статье, можно автоматизировать подключение контейнера с помощью поставщика Databricks Terraform и databricks_mount.
Отключить точку монтирования
Чтобы отключить точку подключения, используйте следующую команду:
dbutils.fs.unmount("/mnt/<mount-name>")
Предупреждение
Чтобы избежать ошибок, никогда не изменяйте точку подключения во время чтения или записи в нее других заданий. После изменения подключения всегда запустите dbutils.fs.refreshMounts() на всех остальных запущенных кластерах, чтобы распространить любые обновления подключения. См. команду refreshMounts (dbutils.fs.refreshMounts).
Подключение ADLS или Blob-хранилища через ABFS
Вы можете подключить данные в учетной записи хранения Azure с помощью субъекта-службы приложений идентификатора Microsoft Entra для проверки подлинности. Дополнительные сведения см. в разделе «Доступ к хранилищу с использованием учетной записи службы и Microsoft Entra ID (Azure Active Directory)».
Внимание
- Все пользователи в рабочей области Azure Databricks имеют доступ к подключенной учетной записи ADLS. Используемый служебный принципал для доступа к учетной записи ADLS должен иметь доступ только к этой учетной записи ADLS и не должен иметь доступ к другим ресурсам Azure.
- При создании точки подключения с помощью кластера пользователи кластера могут немедленно получить доступ к точке подключения. Чтобы использовать точку подключения в другом работающем кластере, необходимо в этом работающем кластере выполнить
dbutils.fs.refreshMounts(), чтобы сделать созданную точку подключения доступной. - Отключение точки подключения во время выполнения заданий может привести к ошибкам. Убедитесь, что производственные задания не отключают хранилище в процессе обработки.
- Точки подключения, использующие секреты, не обновляются автоматически. Если в подключенном хранилище используется секрет, который периодически обновляется, истекает или удаляется, могут возникать ошибки, например
401 Unauthorized. Чтобы устранить такую ошибку, необходимо отключить и повторно подключить хранилище. - Иерархическое пространство имен (HNS) должно быть включено для успешного подключения учетной записи хранения Azure Data Lake Storage с помощью конечной точки ABFS.
Выполните следующую команду в записной книжке, чтобы проверить подлинность и создать точку подключения.
configs = {"fs.azure.account.auth.type": "OAuth",
"fs.azure.account.oauth.provider.type": "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider",
"fs.azure.account.oauth2.client.id": "<application-id>",
"fs.azure.account.oauth2.client.secret": dbutils.secrets.get(scope="<scope-name>",key="<service-credential-key-name>"),
"fs.azure.account.oauth2.client.endpoint": "https://login.microsoftonline.com/<directory-id>/oauth2/token"}
# Optionally, you can add <directory-name> to the source URI of your mount point.
dbutils.fs.mount(
source = "abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/",
mount_point = "/mnt/<mount-name>",
extra_configs = configs)
val configs = Map(
"fs.azure.account.auth.type" -> "OAuth",
"fs.azure.account.oauth.provider.type" -> "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider",
"fs.azure.account.oauth2.client.id" -> "<application-id>",
"fs.azure.account.oauth2.client.secret" -> dbutils.secrets.get(scope="<scope-name>",key="<service-credential-key-name>"),
"fs.azure.account.oauth2.client.endpoint" -> "https://login.microsoftonline.com/<directory-id>/oauth2/token")
// Optionally, you can add <directory-name> to the source URI of your mount point.
dbutils.fs.mount(
source = "abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/",
mountPoint = "/mnt/<mount-name>",
extraConfigs = configs)
Заменить
-
<application-id>с идентификатором клиента (приложения) для приложения Azure Active Directory. -
<scope-name>с именем области секретов Databricks. -
<service-credential-key-name>с именем ключа, содержащего секрет клиента. -
<directory-id>с идентификатором клиента (каталога) для приложения Azure Active Directory. -
<container-name>с именем контейнера в учетной записи хранилища ADLS. -
<storage-account-name>с именем учетной записи хранения ADLS. -
<mount-name>с именем предназначенной точки монтирования в DBFS.