Поделиться через


Создание внешнего расположения для подключения облачного хранилища к Azure Databricks

В этой статье описывается настройка внешнего расположения в каталоге Unity для подключения облачного хранилища к Azure Databricks.

Внешние расположения связывают учетные данные хранилища каталога Unity с контейнерами облачного хранилища объектов. Внешние расположения используются для определения управляемых расположений хранилища для каталогов и схем, а также для определения расположений для внешних таблиц и внешних томов.

Вы можете создать внешнее расположение, которое ссылается на хранилище в контейнере хранилища Azure Data Lake Storage 2-го поколения или контейнере Cloudflare R2.

Вы можете создать внешнее расположение с помощью обозревателя каталогов, интерфейса командной строки Databricks, команд SQL в записной книжке или sql-запросе Databricks или Terraform.

Примечание.

При определении тома облачный URI-код ресурса (URI) к данным в пути тома регулируется разрешениями тома.

Перед началом работы

Необходимые условия:

Требования к разрешениям:

  • У вас должны быть CREATE EXTERNAL LOCATION права на хранилище метаданных и учетные данные хранилища, на которые ссылается внешнее расположение. Администраторы хранилища метаданных имеют CREATE EXTERNAL LOCATION хранилище метаданных по умолчанию.

Создание внешнего расположения вручную с помощью обозревателя каталогов

Внешнее расположение можно создать вручную с помощью обозревателя каталогов.

Разрешения и предварительные требования: см. статью "Перед началом работы".

Чтобы создать внешнее расположение, выполните следующие действия.

  1. Войдите в рабочую область, подключенную к хранилищу метаданных.

  2. На боковой панели щелкните Значок каталога "Каталог".

  3. В верхней части области каталога щелкните Значок добавления или плюса значок "Добавить " и выберите " Добавить внешнее расположение " в меню.

    Кроме того, на странице быстрого доступа нажмите кнопку "Внешние данные>", перейдите на вкладку "Внешние расположения" и нажмите кнопку "Создать расположение".

  4. Введите имя внешнего расположения.

  5. При необходимости скопируйте путь контейнера из существующей точки подключения (только Azure Data Lake Storage 2-го поколения контейнеров).

  6. Если вы не копируете из существующей точки подключения, используйте поле URL-адреса , чтобы ввести путь к контейнеру хранилища или путь к контейнеру R2, который вы хотите использовать в качестве внешнего расположения.

    Например, abfss://my-container-name@my-storage-account.dfs.core.windows.net/<path> или r2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>.

  7. Выберите учетные данные хранилища, которые предоставляют доступ к внешнему расположению.

  8. (Необязательно) Если у пользователей есть доступ только для чтения к внешнему расположению, нажмите кнопку "Дополнительные параметры " и выберите " Только чтение". Дополнительные сведения см. в разделе "Пометить внешнее расположение как доступное только для чтения".

  9. Нажмите кнопку Создать.

  10. (Необязательно) Привязка внешнего расположения к определенным рабочим областям.

    По умолчанию любой привилегированный пользователь может использовать внешнее расположение в любой рабочей области, подключенной к хранилищу метаданных. Если вы хотите разрешить доступ только из определенных рабочих областей, перейдите на вкладку "Рабочие области" и назначьте рабочие области. См . раздел (необязательно) Назначение внешнего расположения определенным рабочим областям.

  11. Предоставьте разрешение на использование внешнего расположения.

    Чтобы любой пользователь мог использовать внешнее расположение, необходимо предоставить разрешения:

    • Чтобы использовать внешнее расположение для добавления управляемого хранилища в хранилище метаданных, каталог или схему, предоставьте этому привилегию CREATE MANAGED LOCATION .
    • Создание внешних таблиц или томов, предоставление CREATE EXTERNAL TABLE или CREATE EXTERNAL VOLUME.

    Чтобы использовать обозреватель каталогов для предоставления разрешений:

    1. Щелкните имя внешнего расположения, чтобы открыть область сведений.
    2. На вкладке "Разрешения" нажмите кнопку "Предоставить".
    3. В диалоговом окне "Предоставление" <external location>выберите пользователей, группы или субъекты-службы в поле "Субъекты" и выберите привилегию, которую вы хотите предоставить.
    4. Нажмите кнопку "Предоставить".

Создание внешнего расположения с помощью 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.

Необходимые разрешения: администратор хранилища метаданных или владелец внешнего расположения.

Примечание.

Администраторы хранилища метаданных могут видеть все внешние расположения в хранилище метаданных с помощью обозревателя каталогов, а владельцы внешних расположений могут видеть все внешние расположения, принадлежащие им в хранилище метаданных, независимо от того, назначено ли внешнее расположение текущей рабочей области. Внешние расположения, которые не назначены рабочей области, отображаются серым цветом.

Обозреватель каталогов

  1. Войдите в рабочую область, связанную с хранилищем метаданных.

  2. На боковой панели щелкните Значок каталога "Каталог".

  3. В верхней части области каталога щелкните Значок шестеренки значок шестеренки и выберите внешние расположения.

    Кроме того, на странице быстрого доступа нажмите кнопку "Внешние данные > ", чтобы перейти на вкладку "Внешние расположения ".

  4. Выберите внешнее расположение и перейдите на вкладку "Рабочие области ".

  5. На вкладке "Рабочие области" снимите флажок "Все рабочие области" с флажком "Доступ ".

    Если внешнее расположение уже привязано к одной или нескольким рабочим областям, этот флажок уже снят.

  6. Нажмите кнопку " Назначить рабочим областям" и введите или найдите рабочие области, которые вы хотите назначить.

Чтобы отменить доступ, перейдите на вкладку "Рабочие области" , выберите рабочую область и нажмите кнопку "Отозвать". Чтобы разрешить доступ из всех рабочих областей, установите флажок "Все рабочие области".

CLI

Существует две группы команд CLI Databricks и два шага, необходимых для назначения внешнего расположения рабочей области.

В следующих примерах замените <profile-name> имя профиля конфигурации проверки подлинности Azure Databricks. Он должен включать значение личного маркера доступа в дополнение к имени экземпляра рабочей области и идентификатору рабочей области, в которой вы создали личный маркер доступа. См . проверку подлинности маркера личного доступа Azure Databricks.

  1. external-locations Используйте команду группы update команд, чтобы задать для внешних isolation mode ISOLATEDрасположений значение :

    databricks external-locations update <my-location> \
    --isolation-mode ISOLATED \
    --profile <profile-name>
    

    Значение по умолчанию isolation-modeOPEN для всех рабочих областей, подключенных к хранилищу метаданных.

  2. 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 включаются в привязку внешнего расположения к одной или нескольким рабочим областям.

Следующие шаги