Четность API OneLake и Azure Data Lake Storage (ADLS) 2-го поколения

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

Папки Managed OneLake

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

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

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

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

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

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

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

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 (заголовок игнорируется)

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

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

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

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

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

Примеры

Вывод списка элементов в рабочей области

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

Создание папки в lakehouse

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