Partilhar via


Paridade da API do OneLake com o Armazenamento do Azure

O OneLake dá suporte às mesmas APIs do Azure Data Lake Storage (ADLS) e do Azure Blob Storage. Essa paridade de API permite que os usuários leiam, escrevam e gerenciem seus dados no OneLake com as ferramentas que já usam hoje. 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 no seu locatário do Fabric 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 ADLS. 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 do Fabric, protegendo itens e suas subpastas geridas contra criação, exclusão ou renomeação por meio de APIs ADLS e Blob. 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 geridas e executar operações de leitura nas pastas de espaço de trabalho e de itens.

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 do Fabric por meio de APIs ADLS. 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 Storage, 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)
  • 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)
  • Definir camada de acesso
    • Cabeçalhos de solicitação:
      • x-ms-access-tier (Cabeçalho ignorado)

Diferenças no cabeçalho da resposta

Como o OneLake usa um modelo de permissão diferente do ADLS, 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 do Fabric para o utilizador chamador convertidas numa lista de controlo de acesso (ACL) POSIX, no formato 'rwx'

Integração de código aberto

Como o OneLake dá suporte às mesmas APIs do ADLS e do Armazenamento de Blob, muitas bibliotecas e pacotes de código aberto compatíveis com ADLS e Armazenamento de Blob funcionam perfeitamente com o OneLake (por exemplo, Azure Storage Explorer). Outras bibliotecas de software podem exigir pequenas atualizações para acomodar endpoints do 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 (ADLS)

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

Listar itens em um espaço de trabalho (Blob)

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

Criar uma pasta dentro de um lakehouse (ADLS)

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

Obter propriedades do Blob (Blob)

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