Создание внешнего расположения для подключения облачного хранилища к 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
привилегии во внешнем расположении, в котором содержатся конфиденциальные данные, могут использовать только определенные рабочие области для доступа к этим данным.
Дополнительные сведения об ограничении доступа к другим типам данных по рабочей области см. в разделе "Ограничение доступа к каталогу" для определенных рабочих областей.
Внимание
Привязки рабочей области ссылаются на точку, когда выполняются права доступа к внешнему расположению. Например, если пользователь создает внешнюю таблицу, выпустив инструкцию CREATE TABLE myCat.mySch.myTable LOCATION 'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance'
из myWorkspace
рабочей области, в дополнение к регулярным проверкам привилегий пользователей выполняются следующие проверки привязки рабочей области:
- Привязано ли внешнее расположение
'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance'
,myWorkspace
к которым привязано? - Привязан ли каталог
myCat
кmyWorkspace
уровнюRead & Write
доступа?
Если внешнее расположение впоследствии отключено myWorkspace
, внешняя таблица продолжает функционировать.
Эта функция также позволяет заполнить каталог из центральной рабочей области и сделать его доступным для других рабочих областей с помощью привязок каталога, не делая внешнее расположение доступным в других рабочих областях.
Привязка внешнего расположения к одной или нескольким рабочим областям
Чтобы назначить внешнее расположение определенным рабочим областям, можно использовать обозреватель каталогов или интерфейс командной строки Databricks.
Необходимые разрешения: администратор хранилища метаданных или владелец внешнего расположения.
Примечание.
Администраторы хранилища метаданных могут видеть все внешние расположения в хранилище метаданных с помощью обозревателя каталогов, а владельцы внешних расположений могут видеть все внешние расположения, принадлежащие им в хранилище метаданных, независимо от того, назначено ли внешнее расположение текущей рабочей области. Внешние расположения, которые не назначены рабочей области, отображаются серым цветом.
Обозреватель каталогов
Войдите в рабочую область, связанную с хранилищем метаданных.
На боковой панели щелкните "Каталог".
В верхней части области каталога щелкните значок шестеренки и выберите внешние расположения.
Кроме того, на странице быстрого доступа нажмите кнопку "Внешние данные > ", чтобы перейти на вкладку "Внешние расположения ".
Выберите внешнее расположение и перейдите на вкладку "Рабочие области ".
На вкладке "Рабочие области" снимите флажок "Все рабочие области" с флажком "Доступ ".
Если внешнее расположение уже привязано к одной или нескольким рабочим областям, этот флажок уже снят.
Нажмите кнопку " Назначить рабочим областям" и введите или найдите рабочие области, которые вы хотите назначить.
Чтобы отменить доступ, перейдите на вкладку "Рабочие области" , выберите рабочую область и нажмите кнопку "Отозвать". Чтобы разрешить доступ из всех рабочих областей, установите флажок "Все рабочие области".
CLI
Существует две группы команд CLI Databricks и два шага, необходимых для назначения внешнего расположения рабочей области.
В следующих примерах замените <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.
Отмена привязки внешнего расположения из рабочей области
Инструкции по отмене доступа рабочей области к внешнему расположению с помощью обозревателя каталогов или workspace-bindings
группы команд CLI включаются в привязку внешнего расположения к одной или нескольким рабочим областям.
Следующие шаги
- Предоставьте другим пользователям разрешение на использование внешних расположений. См. статью "Управление внешними расположениями".
- Определите расположения управляемого хранилища с помощью внешних расположений. См. раздел "Указание расположения управляемого хранилища" в каталоге Unity.
- Определите внешние таблицы с помощью внешних расположений. См. статью " Работа с внешними таблицами".
- Определите внешние тома с помощью внешних расположений. См. раздел "Что такое тома каталога Unity?".