Problemas conhecidos com o Azure Data Lake Storage

Este artigo descreve problemas conhecidos e limitações de Azure Data Lake Storage para contas que têm o recurso de namespace hierárquico habilitado. Use essas informações para gerenciar seus fluxos de trabalho de dados e evitar possíveis armadilhas ao usar várias APIs e integrações.

Observação

Alguns dos recursos descritos neste artigo podem não ser compatíveis com contas que tenham o suporte a NFS (Network File System) 3.0 habilitado. Para exibir uma tabela que mostre o impacto do suporte a recursos quando várias funcionalidades estiverem habilitadas, consulte Suporte ao recurso de Armazenamento de Blobs em contas de Armazenamento do Azure.

Suporte a recursos, serviços e plataformas

Há suporte para a maioria dos recursos de armazenamento de blobs, integrações de serviço Azure e plataformas de software livre em contas que têm um namespace hierárquico. Para obter listas completas, consulte:

APIs de armazenamento de blobs

APIs do Data Lake Storage, NFS 3.0 e APIs de Blob podem operar nos mesmos dados.

Esta seção descreve problemas e limitações no uso de APIs de blobs, NFS 3.0 e APIs do Data Lake Storage para operar sobre os mesmos dados.

  • Você não pode usar as APIs de Blob, NFS 3.0 e as APIs do Data Lake Storage para gravar na mesma instância de um arquivo. Se você gravar em um arquivo usando APIs Data Lake Storage ou NFS 3.0, os blocos desse arquivo não ficarão visíveis para chamadas à API de blob Get Block List. A única exceção é durante a substituição. Você pode sobrescrever um arquivo ou blob usando a API ou o NFS 3.0 com a opção de truncamento para zero (uma operação no estilo do POSIX que trunca o arquivo para zero bytes antes da gravação).

    Você não pode sobrescrever blobs que foram criados usando uma operação do Data Lake Storage, como a operação Path - Create, usando as operações PutBlock ou PutBlockList. No entanto, você pode substituir esses blobs usando uma operação PutBlob , sujeita ao tamanho máximo de blob permitido imposto pela versão de api correspondente que o PutBlob usa.

  • Quando você usar a operação Listar Blobs sem especificar um delimitador, os resultados incluirão diretórios e blobs. Se você optar por usar um delimitador, use apenas uma barra (/). Esse é o único delimitador compatível.

  • Se você usar a API Excluir Blob para excluir um diretório, o diretório será excluído somente se estiver vazio. Essa condição significa que você não pode usar a API de Blob para excluir diretórios recursivamente.

Estas APIs REST de Blob não são compatíveis:

Discos de VM não gerenciados não são compatíveis com contas que têm um namespace hierárquico. Se você desejar habilitar um namespace hierárquico em uma conta de armazenamento, coloque os discos de VM não gerenciados em uma conta de armazenamento que não tenha o recurso de namespace hierárquico habilitado.

Suporte para a configuração de ACLs (listas de controle de acesso) recursivamente no Azure Data Lake Storage

A capacidade de aplicar alterações de ACL recursivamente do diretório pai aos itens filho está disponível para o público geral. Na versão atual desse recurso, você pode aplicar alterações de ACL usando Gerenciador de Armazenamento do Azure, PowerShell, CLI do Azure e os SDKs .NET, Java, Python e Node.js. O suporte ainda não está disponível para o portal do Azure.

As ACLs (listas de controle de acesso) e acesso de leitura anônimo

Se o acesso de leitura anônimo for concedido a um contêiner, as ACLs não terão efeito sobre esse contêiner ou os arquivos nesse contêiner. Essa restrição afeta apenas as solicitações de leitura. As solicitações de gravação ainda respeitam as ACLs. Exigir autorização para todas as solicitações de acesso aos dados de blob.

Pontos de extremidade privados para o Azure Data Lake Storage

Se você estiver usando pontos de extremidade privados para acessar o Azure Data Lake Storage (uma conta de armazenamento com namespace hierárquico habilitado), será necessário criar um para cada um dos sub-recursos blob e dfs. As operações direcionadas ao ponto de extremidade do Data Lake Storage (dfs) podem ser redirecionadas para o ponto de extremidade do Blob, e algumas operações (como gerenciamento de ACLs, criação de diretórios e exclusão de diretórios) exigem um ponto de extremidade privado de DFS. Criar pontos de extremidade privados para os dois sub-recursos garante que todas as operações sejam concluídas com êxito. Para mais informações, confira Usar pontos de extremidade privados para o Armazenamento do Microsoft Azure.

AzCopy com Azure Data Lake Storage

Quando você usa AzCopy com contas que têm um namespace hierárquico habilitado, somente AzCopy v10 dá suporte às APIs de Data Lake Storage necessárias. Use apenas a versão mais recente do AzCopy (AzCopy v10). Não há suporte para versões anteriores, como AzCopy v8.1.

Gerenciador de Armazenamento do Azure com Azure Data Lake Storage

Quando você usa Gerenciador de Armazenamento do Azure com contas de armazenamento que têm um namespace hierárquico habilitado, use apenas versões 1.6.0 ou superiores. As versões anteriores não dão suporte às APIs de namespace hierárquicas necessárias para gerenciar arquivos e diretórios.

Navegador de armazenamento no portal do Azure

No navegador de armazenamento que aparece no portal do Azure, você não pode acessar um arquivo ou pasta especificando um caminho. Em vez disso, você deve navegar por pastas para acessar um arquivo. Portanto, se uma ACL conceder a um usuário acesso de leitura a um arquivo, mas não o acesso de leitura a todas as pastas que antecedem o arquivo, esse usuário não poderá exibir o arquivo no navegador de armazenamento.

Aplicativo de terceiros

Aplicativos de terceiros que usam APIs REST para trabalhar continuam funcionando se você usá-los com Data Lake Storage. Aplicações que chamam APIs de Blob provavelmente funcionarão.

Driver do WASB (Armazenamento do Azure Blob do Windows)

Atualmente, o driver WASB, que foi projetado para funcionar apenas com a API de Blob, encontra problemas em alguns cenários comuns. Especificamente, quando atua como cliente de uma conta de armazenamento com namespace hierárquico habilitado. O acesso a vários protocolos em Data Lake Storage não atenua esses problemas.

Não há suporte para o uso do driver WASB como cliente em uma conta de armazenamento habilitada para namespace hierárquico. Em vez disso, use o driver do Azure Blob File System (ABFS) em seu ambiente Hadoop. Se você estiver tentando migrar de um ambiente Hadoop local com uma versão anterior à ramificação 3 do Hadoop, abra um tíquete de Suporte do Azure para obter ajuda para determinar o caminho certo para sua organização.

Exclusão reversível para blobs no Azure Data Lake Storage

Em contas de armazenamento com namespace hierárquico, se você renomear os diretórios pai de arquivos ou diretórios excluídos temporariamente, talvez o portal do Azure não exiba corretamente os itens excluídos. Nesses casos, use o PowerShell ou CLI do Azure para listar e restaurar os itens excluídos.

Assinaturas de eventos no Azure Data Lake Storage

Em contas de armazenamento com namespace hierárquico, se a conta tiver uma assinatura de eventos, as operações de leitura no ponto de extremidade secundário (a réplica somente leitura em contas de armazenamento com redundância geográfica) resultam em erro. Para resolver esse problema, remova as assinaturas de evento. O uso do ponto de extremidade do Data Lake Storage (abfss://URI) para contas sem namespace hierárquico habilitado não gera eventos, mas o ponto de extremidade de blob (wasb://URI) gera eventos.

Dica

O acesso de leitura para o ponto de extremidade secundário está disponível apenas quando você habilita o armazenamento com redundância geográfica com acesso de leitura (RA-GRS) ou o armazenamento com redundância de zona com acesso de leitura (RA-GZRS).