Paridade da API Gen2 do OneLake e do Azure Data Lake Storage (ADLS)
O OneLake oferece suporte às mesmas APIs do Azure Data Lake Storage (ADLS) Gen2, permitindo que os usuários leiam, escrevam e gerenciem seus dados no OneLake com as ferramentas que já usam atualmente. Como o OneLake é um data lake lógico gerenciado, alguns recursos são gerenciados de forma diferente do Armazenamento do Azure e nem todos os comportamentos têm suporte no OneLake. Esta página detalha essas diferenças, incluindo pastas gerenciadas do OneLake, diferenças de API e compatibilidade de código aberto.
Pastas OneLake gerenciadas
Os espaços de trabalho e itens de dados em seu locatário de malha definem a estrutura do OneLake. O gerenciamento de espaços de trabalho e itens é feito por meio de experiências de malha - o OneLake não oferece suporte à criação, atualização ou exclusão de espaços de trabalho ou itens por meio das APIs do ADLS Gen2. O OneLake só permite chamadas HEAD no nível do espaço de trabalho (contêiner) e no nível do locatário (conta), pois você deve fazer alterações no locatário e nos espaços de trabalho no portal de administração do Fabric.
O OneLake também impõe uma estrutura de pastas para itens de malha, protegendo itens e suas subpastas gerenciadas contra criação, exclusão ou renomeação por meio de APIs ADLS Gen2. As pastas gerenciadas por malha incluem a pasta de nível superior em um item (por exemplo, /MyLakehouse.lakehouse) e o primeiro nível de pastas dentro dele (por exemplo, /MyLakehouse.lakehouse/Files e /MyLakehouse.lakehouse/Tables).
Você pode executar operações CRUD em qualquer pasta ou arquivo criado dentro dessas pastas gerenciadas e executar operações somente leitura em pastas de espaço de trabalho e de item.
Cabeçalhos e parâmetros de solicitação não suportados
Mesmo em arquivos e pastas criados pelo usuário, o OneLake restringe algumas operações de gerenciamento de malha por meio de APIs ADLS Gen2. Você deve usar experiências do Fabric para atualizar permissões ou editar itens e espaços de trabalho, e o Fabric gerencia outras opções, como camadas de acesso.
O OneLake aceita quase todos os mesmos cabeçalhos que o ADLS Gen2, ignorando apenas alguns cabeçalhos relacionados a ações não permitidas no OneLake. Como esses cabeçalhos não alteram o comportamento de toda a chamada, o OneLake ignora os cabeçalhos proibidos, os retorna em um novo cabeçalho de resposta 'x-ms-rejected-headers' e permite o restante da chamada. Por exemplo, o OneLake ignora o parâmetro 'x-ms-owner' em uma chamada PUT já que o Fabric e o OneLake não têm o mesmo conceito de possuir usuários que o Armazenamento do Azure.
O OneLake rejeita solicitações contendo parâmetros de consulta não permitidos, uma vez que os parâmetros de consulta alteram o comportamento de toda a chamada. Por exemplo, as chamadas UPDATE com o parâmetro 'setAccessControl' são bloqueadas, uma vez que o OneLake nunca suporta a definição de controlo de acesso através das APIs de Armazenamento do Azure.
O OneLake não permite os seguintes comportamentos e seus cabeçalhos de solicitação associados e parâmetros de URI:
- Definir controle de acesso
- Parâmetro URI:
- ação: setAccessControl (Solicitação rejeitada)
- ação: setAccessControlRecursive (Solicitação rejeitada)
- Cabeçalhos de solicitação:
- x-ms-owner (Cabeçalho ignorado)
- x-ms-group (Cabeçalho ignorado)
- x-ms-permissions (Cabeçalho ignorado)
- x-ms-group (Cabeçalho ignorado)
- x-ms-acls (Cabeçalho ignorado)
- Parâmetro URI:
- Definir escopo de criptografia
- Cabeçalhos de solicitação:
- x-ms-encryption-key (Cabeçalho ignorado)
- x-ms-encryption-key (Cabeçalho ignorado)
- x-ms-encryption-algorithm:AES256 (Cabeçalho ignorado)
- Cabeçalhos de solicitação:
- Definir camada de acesso
- Cabeçalhos de solicitação:
- x-ms-access-tier (Cabeçalho ignorado)
- Cabeçalhos de solicitação:
Diferenças no cabeçalho da resposta
Como o OneLake usa um modelo de permissão diferente do ADLS Gen2, os cabeçalhos de resposta relacionados às permissões são tratados de forma diferente:
- 'x-ms-owner' e 'x-ms-group' sempre retornam '$superuser', pois o OneLake não tem usuários ou grupos proprietários
- 'x-ms-permissions' sempre retorna '---------', pois o OneLake não tem usuários, grupos ou permissões de acesso público proprietários
- 'x-ms-acl' retorna as permissões de malha para o usuário chamador convertido em uma lista de controle de acesso (ACL) POSIX, no formato 'rwx'
Integração Open Source
Como o OneLake suporta as mesmas APIs do ADLS Gen2, muitas bibliotecas e pacotes de código aberto compatíveis com o ADLS Gen2 funcionam perfeitamente com o OneLake. Outras bibliotecas podem exigir pequenas atualizações para acomodar pontos de extremidade OneLake ou outros problemas de compatibilidade. As bibliotecas a seguir estão confirmadas como compatíveis com o OneLake devido a alterações recentes. Esta lista não é exaustiva:
Exemplos
Listar itens dentro de um espaço de trabalho
GET https://onelake.dfs.fabric.microsoft.com/myWorkspace?resource=filesystem&recursive=false
Criar uma pasta dentro de uma casa de lago
PUT https://onelake.dfs.fabric.microsoft.com/myWorkspace/myLakehouse.Lakehouse/Files/newFolder/?resource=directory