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


Эквивалентность API OneLake с хранилищем Azure

OneLake поддерживает те же API, что и Azure Data Lake Storage (ADLS) и Blob-хранилище Azure. Эта совместимость API позволяет пользователям читать, записывать и управлять данными в OneLake с помощью имеющихся у них инструментов. Так как OneLake является управляемым, логическим озером данных, некоторые функции обрабатываются иначе, чем в Azure Storage, и не все функциональные возможности поддерживаются в OneLake. На этой странице описаны эти различия, включая управляемые папки OneLake, различия в API и совместимость с открытым кодом.

Управляемые папки OneLake

Рабочие области и элементы данных в клиенте Fabric определяют структуру OneLake. Управление рабочими областями и элементами осуществляется с помощью интерфейса Fabric. OneLake не поддерживает создание, обновление или удаление рабочих областей или элементов через API ADLS. OneLake разрешает только запросы HEAD на уровне рабочей области (контейнера) и на уровне арендатора (учетной записи), так как необходимо вносить изменения в арендаторов и рабочие области через админ-панель Fabric.

OneLake также применяет структуру папок для элементов Fabric, защищает элементы и их управляемые вложенные папки от создания, удаления или переименования с помощью ADLS и Blob API. Папки, управляемые структурой, включают папку верхнего уровня в элемент (например, /MyLakehouse.lakehouse) и первый уровень папок внутри него (например, /MyLakehouse.lakehouse/Files и /MyLakehouse.lakehouse/Tables).

Операции CRUD можно выполнять в любой папке или файле, созданных в этих управляемых папках, а операции только для чтения можно выполнять в папках рабочей области и элементов.

Неподдерживаемые заголовки и параметры запроса

Даже в созданных пользователем файлах и папках OneLake ограничивает некоторые операции управления Fabric через API ADLS. Для обновления разрешений или редактирования элементов и рабочих областей необходимо использовать опыт Fabric, а также Fabric управляет другими параметрами, такими как уровни доступа.

OneLake принимает почти все те же заголовки, что и хранилище, игнорируя только некоторые заголовки, которые относятся к недопустимым действиям на OneLake. Так как эти заголовки не изменяют поведение всего вызова, OneLake игнорирует запрещенные заголовки, возвращает их в новом заголовке ответа x-ms-rejected-headers и разрешает остальные вызовы. Например, OneLake игнорирует параметр x-ms-owner в вызове PUT, так как Fabric и OneLake не имеют той же концепции владения пользователями, что и служба хранилища Azure.

OneLake отклоняет запросы, содержащие неуправляемые параметры запроса, так как параметры запроса изменяют поведение всего вызова. Например, вызовы UPDATE с параметром 'setAccessControl' блокируются, поскольку OneLake не поддерживает настройку управления доступом через API хранилища Azure.

OneLake не позволяет выполнять следующие действия и связанные с ними заголовки запросов и параметры URI:

  • Настройка управления доступом
    • Параметр URI:
      • действие: setAccessControl (отклонен запрос)
      • действие: setAccessControlRecursive (отклонен запрос)
    • Заголовки запросов:
      • x-ms-owner (Этот заголовок игнорируется)
      • x-ms-group (заголовок игнорируется)
      • x-ms-permissions (заголовок игнорируется)
      • x-ms-group (заголовок игнорируется)
      • x-ms-acls (заголовок не учитывается)
  • Настройка области шифрования
    • Заголовки запросов:
      • x-ms-encryption-key (заголовок игнорируется)
      • x-ms-encryption-key («заголовок» игнорируется)
      • x-ms-encryption-algorithm:AES256 (заголовок игнорируется)
  • Настройка уровня доступа
    • Заголовки запросов:
      • x-ms-access-tier (заголовок x-ms-access-tier игнорируется)

Различия заголовков ответов

Так как OneLake использует другую модель разрешений, чем ADLS, заголовки ответов, связанные с разрешениями, обрабатываются иначе:

  • "x-ms-owner" и "x-ms-group" всегда возвращают "$superuser", так как OneLake не имеет владельцев или групп пользователей.
  • "X-ms-permissions" всегда возвращает значение "---------", так как OneLake не имеет прав владения пользователями, группами или разрешениями на общедоступный доступ
  • "x-ms-acl" возвращает разрешения Fabric для вызывающего пользователя, которые преобразуются в список управления доступом POSIX (ACL) в формате "rwx".

Интеграция с открытым кодом

Так как OneLake поддерживает те же API, что и ADLS и хранилище BLOB-объектов, многие библиотеки с открытым кодом и пакеты, совместимые с ADLS и хранилищем BLOB-объектов, легко работают с OneLake (например, обозревателе службы хранилища Azure). Другие библиотеки могут требовать небольших обновлений для обеспечения работы с конечными точками OneLake и решения других вопросов совместимости. Следующие библиотеки подтверждены как совместимые с OneLake в связи с недавними изменениями. Этот список не является исчерпывающим.

Примеры

Список элементов в рабочей области (ADLS)

GET https://onelake.dfs.fabric.microsoft.com/myWorkspace?resource=filesystem&recursive=false

Список элементов в рабочей среде (BLOB-объект)

GET  https://onelake.blob.fabric.microsoft.com/myWorkspace?restype=container&comp=list&delimiter=%2F

Создайте папку в озерном доме (ADLS)

PUT https://onelake.dfs.fabric.microsoft.com/myWorkspace/myLakehouse.Lakehouse/Files/newFolder/?resource=directory

Получение свойств BLOB-объекта

HEAD  https://onelake.blob.fabric.microsoft.com/myWorkspace/myLakehouse.Lakehouse/Files/file.txt