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


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

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

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

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

Внешнее расположение можно создать с помощью Catalog Explorer, интерфейса командной строки Databricks CLI, SQL-команд в записной книжке или SQL-запроса Databricks, или Terraform.

Дополнительные сведения об использовании внешних расположений и связи между учетными данными хранилища и внешними расположениями см. в статье «Управление доступом к облачному хранилищу с помощью каталога Unity».

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

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

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

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

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

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

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

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

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

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

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

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

  5. В поле URL-адресвведите или выберите путь к внешнему расположению. У вас есть три варианта:

    • Чтобы скопировать путь к контейнеру из существующей точки подключения DBFS, щелкните Копировать изDBFS.

    • Чтобы скопировать подпуть к корневому хранилищу DBFS, щелкните Копировать из DBFS и выберите Копировать из корневого хранилища DBFS. Если вы являетесь администратором рабочей области, система также создает учетные данные хранения для вас.

      См. Создайте внешнее местоположение для данных в корневом каталоге DBFS.

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

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

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

    Примечание.

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

    Если у вас нет учетных данных хранилища, можно создать его:

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

    2. В раскрывающемся списке тип учетных данных выберите тип учетных данных, которые вы хотите использовать в объекте учетных данных хранилища: управляемое удостоверение Azure или маркер API Cloudflare.

    3. Для управляемого удостоверения Azure введите идентификатор соединителя доступа и (при необходимости) назначаемое пользователем управляемое удостоверение, которое предоставляет доступ к расположению хранилища. Для маркеров API Cloudflare введите учетную запись Cloudflare, идентификатор ключа доступа и секретный ключ доступа.

      Дополнительные сведения см. в статье Создание учетных данных хранилища для подключения к Azure Data Lake Storage 2-го поколения или создание учетных данных хранения для подключения к Cloudflare R2.

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

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

    См. раздел Включение резервного режима во внешних расположениях.

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

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

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

  11. Перейдите на вкладку разрешения доступа, чтобы предоставить разрешение на использование внешнего местоположения.

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

    • Чтобы использовать внешнее расположение для добавления управляемого хранилища данных в хранилище метаданных, каталог или схему, предоставьте привилегию CREATE MANAGED LOCATION.
    • Чтобы создать внешние таблицы или тома, предоставьте CREATE EXTERNAL TABLE или CREATE EXTERNAL VOLUME.
    1. Щелкните Предоставить.
    2. В диалоговом окне Grant на диалоговой панели <external location> выберите пользователей, группы или учетные записи служб в поле Пользователи и выберите привилегию для предоставления.
    3. Щелкните Предоставить.

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

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

Примечание.

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

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

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

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

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

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

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

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

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

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

CLI

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

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

  1. Используйте команду update из группы external-locations, чтобы установить значение 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.

Чтобы вывести список всех назначений рабочих областей для внешнего расположения, используйте команду get-bindings группы команд workspace-bindings:

databricks workspace-bindings get-bindings external-location <my-location> \
--profile <profile-name>

См. также привязки рабочей области в справочнике по REST API.

Отмена привязки внешнего расположения из рабочей области

Инструкции по отмене доступа рабочей области к внешнему расположению с помощью обозревателя каталогов или группы команд CLI workspace-bindings включены в Привязка внешнего расположения к одной или нескольким рабочим областям.

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