Четность API OneLake и Azure Data Lake Storage (ADLS)
OneLake поддерживает те же API, что и Azure Data Lake Storage (ADLS) и хранилище BLOB-объектов Azure, что позволяет пользователям читать, записывать и управлять их данными в OneLake с помощью инструментов, которые они уже используют сегодня. Так как OneLake является управляемым, логическим озером данных, некоторые функции управляются иначе, чем в служба хранилища Azure, а не все поведение поддерживается в OneLake. На этой странице описаны эти различия, включая управляемые папки OneLake, различия API и совместимость открытый код.
Папки Managed 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, а Также управление другими параметрами, такими как уровни доступа.
OneLake принимает почти все те же заголовки, что и хранилище, игнорируя только некоторые заголовки, которые относятся к недопустимым действиям на 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 (заголовок игнорируется)
- Параметр URI:
- Настройка области шифрования
- Заголовки запросов:
- x-ms-encryption-key (заголовок игнорируется)
- x-ms-encryption-key (заголовок игнорируется)
- x-ms-encryption-algorithm:AES256 (заголовок игнорируется)
- Заголовки запросов:
- Настройка уровня доступа
- Заголовки запросов:
- 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
Создание папки в lakehouse (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