Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается настройка объекта внешнего расположения в каталоге Unity для доступа к облачному хранилищу из Azure Databricks.
Обзор внешних местоположений
Внешние расположения ассоциируют учетные данные хранения с контейнерами облачного объектного хранилища. Внешние расположения используются для определения управляемых расположений хранилища для каталогов и схем, а также для определения расположений для внешних таблиц и внешних томов.
Вы можете создать внешнее расположение, которое ссылается на хранилище в контейнере хранилища Azure Data Lake Storage, контейнере AWS S3 или контейнере Cloudflare R2.
Для создания внешней локации можно использовать любой из следующих интерфейсов:
-
Этот параметр предоставляет графический пользовательский интерфейс. Обозреватель каталогов можно использовать для создания внешних расположений, которые ссылаются на контейнеры Azure Data Lake Storage, контейнеры S3 (только для чтения), контейнеры Cloudflare R2 и корень DBFS (устаревшая версия)
В этой статье рассматриваются варианты 1 и 2.
Примечание.
Хранение данных в корневом хранилище DBFS является устаревшей практикой, и Databricks не рекомендует это делать. Однако если рабочая область хранит данные в DBFS root, можно создать внешнее расположение для управления доступом к этим данным с помощью Unity Catalog. Дополнительные сведения см. в статье "Создание внешнего расположения для данных в корневом каталоге DBFS (устаревшая версия)".
Дополнительные сведения об использовании внешних расположений и связи между учетными данными хранилища и внешними расположениями см. в разделе "Подключение к облачному хранилищу объектов" с помощью каталога Unity.
Перед началом работы
Необходимые условия:
Необходимо создать контейнер хранилища Azure Data Lake Storage, контейнер AWS S3 или контейнер Cloudflare R2, который необходимо использовать в качестве внешнего расположения перед созданием объекта внешнего расположения в Azure Databricks.
- Учетные записи хранения Azure Data Lake Storage, используемые в качестве внешних местоположений, должны иметь иерархическое пространство имен.
- Имя контейнера S3 не может использовать нотацию точек (например,
incorrect.bucket.name.notation
). Дополнительные рекомендации по именованию контейнеров см. в правилах именования контейнеров AWS.
- У вас должны быть учетные данные хранения, определенные в Azure Databricks, которые предоставляют доступ к пути расположения облачного хранилища. Сведения о создании учетных данных хранения для подключения к Azure Data Lake Storage, создании учетных данных хранения для подключения к Cloudflare R2 или создании учетных данных хранения для подключения к AWS S3 (только для чтения).
Требования к разрешениям:
- Чтобы иметь возможность доступа, у вас должны быть
CREATE EXTERNAL LOCATION
права как на метахранилище, так и на учетные данные хранилища, на которые ссылается внешнее расположение. Администраторы хранилища метаданных по умолчанию имеютCREATE EXTERNAL LOCATION
на хранилище. - Если вы создаете внешнее расположение для корневого хранилища DBFS, система может создать учетные данные хранения для вас, но вы должны быть администратором рабочей области. Дополнительные сведения см. в разделе "Создание внешнего расположения для данных в корневом каталоге DBFS" (устаревшая версия)
Вариант 1. Создание внешнего расположения с помощью обозревателя каталогов
Внешнее расположение можно создать вручную с помощью обозревателя каталогов.
Разрешения и предварительные требования: см. статью "Перед началом работы".
Чтобы создать внешнее расположение, выполните следующие действия.
Войдите в рабочую область, подключенную к хранилищу метаданных.
На боковой панели щелкните
Каталог.
На странице "Быстрый доступ" нажмите кнопку "Внешние данные >", перейдите на вкладку "Внешние расположения" и нажмите кнопку "Создать расположение".
Введите название внешнего местоположения.
Выберите тип хранилища: Azure Data Lake Storage, S3 (только для чтения),R2 или ROOT DBFS.
Хранение данных в корневом каталоге DBFS является нерекомендуемой, устаревшей практикой. Дополнительные сведения см. в статье "Создание внешнего расположения для данных в корневом каталоге DBFS (устаревшая версия)".
В поле URL-адресвведите или выберите путь к внешнему расположению.
Для Azure Data Lake Storage, S3 и R2 доступны следующие параметры:
Чтобы скопировать путь к контейнеру из существующей точки подключения DBFS, щелкните Копировать изDBFS.
Если вы не копируете данные из существующей точки подключения, используйте поле URL-адреса, чтобы ввести путь к контейнеру или хранилищу, который вы хотите использовать в качестве внешнего расположения.
Например,
abfss://[email protected]/<path>
илиr2://[email protected]/<path>
.
Для корневого каталога DBFS:
- Система заполняет подпуть к расположению корневого хранилища DBFS. Если вы являетесь администратором рабочей области, система также создает учетные данные хранения для вас.
См . статью "Создание внешнего расположения для данных в корневом каталоге DBFS (устаревшая версия)".
Выберите удостоверяющие данные хранилища, которые предоставляют доступ к внешнему ресурсу.
Примечание.
Если ваше внешнее расположение предназначено для корневого каталога DBFS и вы являетесь администратором рабочей области, система создает учетные данные для хранения для вас, и вам не нужно выбирать их.
Если у вас нет учетных данных хранилища, можно создать его:
В раскрывающемся списке учетных данных хранилища выберите + Создать новые учетные данные хранилища.
Введенные учетные данные зависят от типа хранилища:
Для Azure Data Lake Storage введите идентификатор соединителя доступа и (при необходимости) назначаемое пользователем управляемое удостоверение, которое предоставляет доступ к расположению хранилища. См. Создание учетных данных хранилища для доступа к Azure Data Lake Storage
Для маркеров API Cloudflare введите учетную запись Cloudflare, идентификатор ключа доступа и секретный ключ доступа. См. статью "Создание учетных данных хранения для подключения к Cloudflare R2".
Для AWS S3 введите ARN роли IAM, которая дает доступ к местоположению хранилища. Сведения о подключении к AWS S3 (только для чтения) см. в разделе "Создание учетных данных хранения".
(Необязательно) Если вы хотите предоставить пользователям доступ только для чтения к внешнему расположению, нажмите Дополнительные параметры и выберите Только чтение. Дополнительные сведения см. в разделе "Пометить внешнее расположение как доступное только для чтения".
Внешние расположения, ссылающиеся на пути AWS S3, по сути, доступны только для чтения.
(Необязательно) Если внешнее расположение предназначено для метакаталога Hive, нажмите дополнительные параметры и включите резервный режим .
См. раздел Включение резервного режима во внешних расположениях.
(Необязательно, только для расположений AWS S3) Если в контейнере S3 требуется шифрование SSE, можно настроить алгоритм шифрования, чтобы разрешить внешним таблицам и томам в каталоге Unity доступ к данным в контейнере S3.
Инструкции см. в разделе "Настройка алгоритма шифрования во внешнем расположении (только AWS S3)".
(Необязательно) Чтобы включить возможность подписки на уведомления об изменениях во внешнем расположении, нажмите кнопку "Дополнительные параметры " и выберите "Включить события файла".
Дополнительные сведения см. (Рекомендуется) Включить события файлов для внешнего расположения.
Нажмите кнопку Создать.
(Необязательно) Привяжите внешнее расположение к определённым рабочим областям.
По умолчанию любой привилегированный пользователь может использовать внешнюю локацию в любой рабочей области, связанной с метастором. Если вы хотите разрешить доступ только из определенных рабочих областей, перейдите на вкладку "Рабочие области" и назначьте рабочие области. См. (необязательно) Назначьте внешнее расположение для определенных рабочих областей.
Перейдите на вкладку разрешения доступа, чтобы предоставить разрешение на использование внешнего местоположения.
Чтобы любой пользователь мог использовать внешнее расположение, необходимо предоставить разрешения:
Чтобы использовать внешнее расположение для добавления управляемого хранилища данных в хранилище метаданных, каталог или схему, предоставьте привилегию
CREATE MANAGED LOCATION
.Чтобы создать внешние таблицы или тома, предоставьте
CREATE EXTERNAL TABLE
илиCREATE EXTERNAL VOLUME
.
- Нажмите Предоставить.
- В диалоговом окне Grant на диалоговой панели
<external location>
выберите пользователей, группы или учетные записи служб в поле Пользователи и выберите привилегию для предоставления. - Нажмите Предоставить.
Вариант 2. Создание внешнего расположения с помощью SQL
Чтобы создать внешнее расположение с помощью SQL, выполните следующую команду в ноутбуке или редакторе SQL-запросов. Замените значения заполнителей. Сведения о необходимых разрешениях и предварительных требованиях см. в разделе "Перед началом работы".
-
<location-name>
: имя внешнего местоположения. Еслиlocation_name
включает специальные символы, например дефисы (-
), его следует окружить обратными апострофами (` `
). Смотрите Имена.
-
<bucket-path>
: путь в облачном клиенте, к которому это внешнее расположение предоставляет доступ. Например,abfss://[email protected]/<path>
илиr2://[email protected]/<path>
. -
<storage-credential-name>
: имя учетных данных хранения, которые разрешают чтение и запись в контейнер хранилища или путь к контейнеру хранилища. Если имя учетных данных хранилища содержит специальные символы, например дефисы (-
), он должен быть окружен обратными знаками (` `
).
CREATE EXTERNAL LOCATION [IF NOT EXISTS] `<location-name>`
URL '<bucket-path>'
WITH ([STORAGE] CREDENTIAL `<storage-credential-name>`)
[COMMENT '<comment-string>'];
Если вы хотите ограничить внешний доступ к местоположению для определенных рабочих областей в вашей учетной записи, также называемый привязкой рабочей области или изоляцией внешнего местоположения, см. раздел (Необязательно) Назначьте внешнее местоположение определенным рабочим областям.
(Необязательно) Назначить внешнее расположение для конкретных рабочих областей
По умолчанию внешнее расположение доступно из всех рабочих областей в хранилище метаданных. Это означает, что если пользователю предоставлена привилегия (например READ FILES
) в этой внешней локации, они могут использовать эту привилегию в любой рабочей области, подключенной к хранилищу метаданных. При использовании рабочих областей для изоляции доступа к данным пользователей может потребоваться разрешить доступ к внешнему расположению только из определенных рабочих областей. Эта функция называется привязкой рабочей области или изоляцией внешнего местоположения.
Примеры использования привязки внешнего расположения к определенным рабочим областям:
- Обеспечение того, чтобы инженеры данных, имеющие привилегии
CREATE EXTERNAL TABLE
во внешнем расположении, которое содержит производственные данные, могли создавать внешние таблицы только в производственной рабочей области. - Обеспечение того, чтобы инженеры данных с привилегиями
READ FILES
на доступ к внешнему расположению, содержащему конфиденциальные данные, могли использовать только определенные рабочие области для доступа к этим данным.
Дополнительные сведения об ограничении доступа к другим типам данных по рабочей области см. в статье Ограничение доступа к каталогам к определенным рабочим областям.
Внимание
Привязки рабочей области используются в момент, когда осуществляются права доступа к внешнему расположению. Например, если пользователь создает внешнюю таблицу путем выдачи инструкции CREATE TABLE myCat.mySch.myTable LOCATION 'abfss://[email protected]/finance'
из рабочей области myWorkspace
, в дополнение к регулярным проверкам привилегий пользователей выполняются следующие проверки привязки рабочей области:
- Является ли внешнее местоположение
'abfss://[email protected]/finance'
привязанным кmyWorkspace
? - Привязан ли каталог
myCat
кmyWorkspace
с уровнем доступаRead & Write
?
Если после этого связь с myWorkspace
разорвана, внешняя таблица продолжает функционировать.
Эта функция также позволяет заполнить каталог из центральной рабочей области и сделать его доступным для других рабочих областей с помощью привязок каталога, не делая внешнее расположение доступным в других рабочих областях.
Привяжите внешнее расположение к одной или нескольким рабочим областям
Чтобы назначить внешнее расположение определенным рабочим областям, можно использовать обозреватель каталогов или интерфейс командной строки Databricks.
Требуемые разрешения: администратор метахранилища, владелец внешнего расположения или MANAGE
для внешнего расположения.
Примечание.
Администраторы хранилища метаданных могут видеть все внешние расположения в хранилище метаданных с помощью обозревателя каталогов, а владельцы внешних расположений могут видеть все внешние расположения, принадлежащие им в хранилище метаданных, независимо от того, назначено ли внешнее расположение текущей рабочей области. Внешние расположения, которые не назначены рабочей области, отображаются серым цветом.
Обозреватель каталогов
Войдите в рабочую область, связанную с хранилищем метаданных.
На боковой панели щелкните
Каталог.
На странице быстрого доступа нажмите кнопку "Внешние данные>", чтобы перейти на вкладку "Внешние расположения".
Выберите внешнее расположение и перейдите на вкладку Рабочих областей.
На вкладке "Рабочие области" снимите флажок "Все рабочие области имеют доступ".
Если ваше внешнее расположение уже привязано к одной или нескольким рабочим областям, этот флажок уже автоматически снят.
Нажмите Назначить рабочим областям и введите или найдите рабочие области, которые вы хотите назначить.
Чтобы отменить доступ, перейдите на вкладку рабочие пространства, выберите рабочее пространство и щелкните Отменить. Чтобы разрешить доступ из всех рабочих областей, установите флажок Все рабочие области имеют доступ.
интерфейс командной строки (CLI)
Существуют две группы команд Databricks CLI и два шага, необходимых для назначения внешнего местоположения для рабочей области.
В следующих примерах замените <profile-name>
на имя вашего профиля конфигурации аутентификации Azure Databricks. Он должен включать значение личного токена доступа, имя экземпляра рабочей области и идентификатор рабочей области, в которой вы создали личный токен доступа. См. аутентификацию с использованием личного токена доступа Azure Databricks.
external-locations
Используйте команду группыupdate
для установки внешнего расположенияisolation mode
наISOLATED
:databricks external-locations update <my-location> \ --isolation-mode ISOLATED \ --profile <profile-name>
Значение по умолчанию
isolation-mode
—OPEN
для всех рабочих областей, подключенных к хранилищу метаданных.workspace-bindings
Используйте команду группыupdate-bindings
команд, чтобы назначить рабочие области внешнему расположению:databricks workspace-bindings update-bindings external-location <my-location> \ --json '{ "add": [{"workspace_id": <workspace-id>}...], "remove": [{"workspace_id": <workspace-id>}...] }' --profile <profile-name>
Используйте свойства
"add"
и"remove"
для добавления или удаления привязок рабочей области.Примечание.
Привязка только для чтения (
BINDING_TYPE_READ_ONLY
) недоступна для внешних расположений. Поэтому для привязки внешних расположений нет никаких оснований устанавливатьbinding_type
.
Чтобы перечислить все назначения рабочей области для внешнего местоположения, используйте команду workspace-bindings
из группы команд get-bindings
.
databricks workspace-bindings get-bindings external-location <my-location> \
--profile <profile-name>
См. также привязки рабочей области в справочнике по REST API.
Отмена привязки внешнего расположения из рабочей области
Инструкции по отмене доступа рабочей области к внешнему расположению с помощью обозревателя каталогов или группы команд CLI workspace-bindings
включены в Привязка внешнего расположения к одной или нескольким рабочим областям.
Следующие шаги
- Предоставьте другим пользователям разрешение на использование внешних локаций. См. статью "Управление внешними расположениями".
- Определите внешние расположения для управляемого хранилища. См. , чтобы указать расположение управляемого хранилища в каталоге Unity.
- Определите внешние таблицы по внешним расположениям. См. Работа с внешними таблицами.
- Задайте внешние тома с помощью внешних локаций. См. статью Что такое тома каталога Unity?.