Создание внешнего расположения для подключения облачного хранилища к Azure Databricks
В этой статье описывается настройка внешнего расположения в каталоге Unity для подключения облачного хранилища к Azure Databricks.
Внешние расположения связывают учетные данные хранилища каталога Unity с контейнерами облачного хранилища объектов. Внешние расположения используются для определения управляемых расположений хранилища для каталогов и схем, а также для определения расположений для внешних таблиц и внешних томов.
Вы можете создать внешнее расположение, которое ссылается на хранилище в контейнере хранилища Azure Data Lake Storage 2-го поколения или контейнере Cloudflare R2.
Вы можете создать внешнее расположение с помощью обозревателя каталогов, интерфейса командной строки Databricks, команд SQL в записной книжке или sql-запросе Databricks или Terraform.
Примечание.
При определении тома облачный URI-код ресурса (URI) к данным в пути тома регулируется разрешениями тома.
Перед началом работы
Необходимые условия:
Перед созданием объекта внешнего расположения в Azure Databricks необходимо создать контейнер хранилища Azure Data Lake Storage 2-го поколения или контейнер Cloudflare R2.
Azure Data Lake Storage 2-го поколения учетные записи хранения, используемые в качестве внешних расположений, должны иметь иерархическое пространство имен.
У вас должны быть учетные данные хранения, определенные в Azure Databricks, которые предоставляют доступ к пути расположения облачного хранилища. Сведения о создании учетных данных хранения для подключения к Azure Data Lake Storage 2-го поколения и создании учетных данных хранилища для подключения к Cloudflare R2.
Требования к разрешениям:
- У вас должны быть
CREATE EXTERNAL LOCATION
права на хранилище метаданных и учетные данные хранилища, на которые ссылается внешнее расположение. Администраторы хранилища метаданных имеютCREATE EXTERNAL LOCATION
хранилище метаданных по умолчанию.
Создание внешнего расположения с помощью обозревателя каталогов
Внешнее расположение можно создать вручную с помощью обозревателя каталогов.
Разрешения и предварительные требования: см. статью "Перед началом работы".
Чтобы создать внешнее расположение, выполните следующие действия.
Войдите в рабочую область, подключенную к хранилищу метаданных.
На боковой панели щелкните
"Каталог".
Нажмите кнопку +Добавить и выберите "Добавить внешнее расположение".
Введите имя внешнего расположения.
При необходимости скопируйте путь контейнера из существующей точки подключения (только Azure Data Lake Storage 2-го поколения контейнеров).
Если вы не копируете из существующей точки подключения, используйте поле URL-адреса , чтобы ввести путь к контейнеру хранилища или путь к контейнеру R2, который вы хотите использовать в качестве внешнего расположения.
Например,
abfss://my-container-name@my-storage-account.dfs.core.windows.net/<path>
илиr2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>
.Выберите учетные данные хранилища, которые предоставляют доступ к внешнему расположению.
(Необязательно) Если у пользователей есть доступ только для чтения к внешнему расположению, нажмите кнопку "Дополнительные параметры " и выберите " Только чтение". Дополнительные сведения см. в разделе "Пометить внешнее расположение как доступное только для чтения".
Нажмите кнопку Создать.
(Необязательно) Привязка внешнего расположения к определенным рабочим областям.
По умолчанию любой привилегированный пользователь может использовать внешнее расположение в любой рабочей области, подключенной к хранилищу метаданных. Если вы хотите разрешить доступ только из определенных рабочих областей, перейдите на вкладку "Рабочие области" и назначьте рабочие области. См . раздел (необязательно) Назначение внешнего расположения определенным рабочим областям.
Предоставьте разрешение на использование внешнего расположения.
Чтобы любой пользователь мог использовать внешнее расположение, необходимо предоставить разрешения:
- Чтобы использовать внешнее расположение для добавления управляемого хранилища в хранилище метаданных, каталог или схему, предоставьте этому привилегию
CREATE MANAGED LOCATION
. - Создание внешних таблиц или томов, предоставление
CREATE EXTERNAL TABLE
илиCREATE EXTERNAL VOLUME
.
Чтобы использовать обозреватель каталогов для предоставления разрешений:
- Щелкните имя внешнего расположения, чтобы открыть область сведений.
- На вкладке "Разрешения" нажмите кнопку "Предоставить".
- В диалоговом окне "Предоставление"
<external location>
выберите пользователей, группы или субъекты-службы в поле "Субъекты" и выберите привилегию, которую вы хотите предоставить. - Нажмите кнопку "Предоставить".
- Чтобы использовать внешнее расположение для добавления управляемого хранилища в хранилище метаданных, каталог или схему, предоставьте этому привилегию
Создание внешнего расположения с помощью SQL
Чтобы создать внешнее расположение с помощью SQL, выполните следующую команду в записной книжке или редакторе sql-запросов. Замените значения заполнителей.
Разрешения и предварительные требования: см. статью "Перед началом работы".
<location-name>
: имя внешнего расположения. Еслиlocation_name
он включает специальные символы, например дефисы (-
), он должен быть окружен обратными знаками (` `
). См . имена.<bucket-path>
: путь в облачном клиенте, к которому это внешнее расположение предоставляет доступ. Например,abfss://my-container-name@my-storage-account.dfs.core.windows.net/<path>
илиr2://my-bucket@my-account-id.r2.cloudflarestorage.com/<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
привилегии во внешнем расположении, в котором содержатся конфиденциальные данные, могут использовать только определенные рабочие области для доступа к этим данным.
Дополнительные сведения об ограничении доступа к данным других типов по рабочей области см . в примере привязки к каталогу рабочей области.
Привязка внешнего расположения к одной или нескольким рабочим областям
Чтобы назначить внешнее расположение определенным рабочим областям, можно использовать обозреватель каталогов или REST API каталога Unity.
Необходимые разрешения: администратор хранилища метаданных или владелец внешнего расположения.
Примечание.
Администраторы хранилища метаданных могут видеть все внешние расположения в хранилище метаданных с помощью обозревателя каталогов, а владельцы внешних расположений могут видеть все внешние расположения, принадлежащие им в хранилище метаданных, независимо от того, назначено ли внешнее расположение текущей рабочей области. Внешние расположения, которые не назначены рабочей области, отображаются серым цветом.
Обозреватель каталогов
Войдите в рабочую область, связанную с хранилищем метаданных.
На боковой панели щелкните
"Каталог".
В нижней части экрана щелкните внешние расположения внешних данных>.
Выберите внешнее расположение и перейдите на вкладку "Рабочие области ".
На вкладке "Рабочие области" снимите флажок "Все рабочие области" с флажком "Доступ ".
Если внешнее расположение уже привязано к одной или нескольким рабочим областям, этот флажок уже снят.
Нажмите кнопку " Назначить рабочим областям" и введите или найдите рабочие области, которые вы хотите назначить.
Чтобы отменить доступ, перейдите на вкладку "Рабочие области" , выберите рабочую область и нажмите кнопку "Отозвать". Чтобы разрешить доступ из всех рабочих областей, установите флажок "Все рабочие области".
API
Существует два API и два шага, необходимые для назначения внешнего расположения рабочей области. В следующих примерах замените <workspace-url>
имя экземпляра рабочей области. Сведения о том, как получить имя экземпляра рабочей области и идентификатор рабочей области, см. в статье "Получение идентификаторов для объектов рабочей области". Дополнительные сведения о получении маркеров доступа см. в статье "Проверка подлинности для автоматизации Azure Databricks".
external-locations
Используйте API, чтобы задать для внешних расположенийisolation mode
ISOLATION_MODE_ISOLATED
значение :curl -L -X PATCH 'https://<workspace-url>/api/2.1/unity-catalog/external-locations/<my-location> \ -H 'Authorization: Bearer <my-token> \ -H 'Content-Type: application/json' \ --data-raw '{ "isolation_mode": "ISOLATION_MODE_ISOLATED" }'
Значение по умолчанию
isolation mode
—ISOLATION_MODE_OPEN
для всех рабочих областей, подключенных к хранилищу метаданных. См . справочник по внешним расположениям в справочнике по REST API.Используйте API обновления
bindings
для назначения рабочих областей внешнему расположению:curl -L -X PATCH 'https://<workspace-url>/api/2.1/unity-catalog/bindings/external-locations/<my-location> \ -H 'Authorization: Bearer <my-token> \ -H 'Content-Type: application/json' \ --data-raw '{ "add": [{"workspace_id": <workspace-id>,...], "remove": [{"workspace_id": <workspace-id>,...] }'
"add"
"remove"
Используйте свойства для добавления или удаления привязок рабочей области.Примечание.
Привязка только для чтения (
BINDING_TYPE_READ_ONLY
) недоступна для внешних расположений. Поэтому для привязки внешних расположений нет причинbinding_type
.
Чтобы вывести список всех назначений рабочих областей для внешнего расположения, используйте API списка bindings
:
curl -L -X GET 'https://<workspace-url>/api/2.1/unity-catalog/bindings/external-locations/<my-location> \
-H 'Authorization: Bearer <my-token> \
См . статью "Привязки рабочей области" в справочнике по REST API.
Отмена привязки внешнего расположения из рабочей области
Инструкции по отмене доступа рабочей области к внешнему расположению с помощью обозревателя каталогов или bindings
API включены в привязку внешнего расположения к одной или нескольким рабочим областям.
Следующие шаги
- Предоставьте другим пользователям разрешение на использование внешних расположений. См. статью "Управление внешними расположениями".
- Определите расположения управляемого хранилища с помощью внешних расположений. См. раздел "Указание расположения управляемого хранилища" в каталоге Unity.
- Определите внешние таблицы с помощью внешних расположений. См. раздел Создание внешней таблицы.
- Определите внешние тома с помощью внешних расположений. См. статью "Создание и работа с томами".
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по