Namespace hierárquico do Armazenamento do Azure Data Lake
Um mecanismo chave que permite que o Armazenamento Azure Data Lake forneça o desempenho do sistema de arquivos em escala e preços de armazenamento de objetos é a adição de um namespace hierárquico. Isso permite que a coleção de objetos/arquivos dentro de uma conta seja organizada em uma hierarquia de diretórios e subdiretórios aninhados da mesma forma que o sistema de arquivos no seu computador está organizado. Com um namespace hierárquico habilitado, uma conta de armazenamento torna-se capaz de fornecer a escalabilidade e a relação custo-benefício do armazenamento de objetos, com semânticas de sistema de arquivos que são familiares aos mecanismos e estruturas de análise.
Os benefícios de um namespace hierárquico
Os seguintes benefícios estão associados a sistemas de arquivos que implementam um namespace hierárquico sobre dados de blob:
Manipulação de diretório atômico: os armazenamentos de objetos aproximam uma hierarquia de diretórios adotando uma convenção de incorporação de barras (/) no nome do objeto para denotar segmentos de caminho. Embora essa convenção funcione para organizar objetos, a convenção não fornece assistência para ações como mover, renomear ou excluir diretórios. Sem diretórios reais, os aplicativos devem processar potencialmente milhões de blobs individuais para realizar tarefas no nível de diretório. Por outro lado, um namespace hierárquico processa essas tarefas atualizando uma única entrada (o diretório pai).
Essa otimização dramática é especialmente significativa para muitas estruturas de análise de big data. Ferramentas como Hive, Spark, etc. geralmente gravam a saída em locais temporários e, em seguida, renomeiam o local na conclusão do trabalho. Sem um namespace hierárquico, essa renomeação geralmente pode levar mais tempo do que o próprio processo de análise. Menor latência de trabalho equivale a menor custo total de propriedade (TCO) para cargas de trabalho de análise.
Estilo de interface familiar: Os sistemas de arquivos são bem compreendidos por desenvolvedores e usuários. Não há necessidade de aprender um novo paradigma de armazenamento quando você muda para a nuvem, pois a interface do sistema de arquivos exposta pelo Data Lake Storage é o mesmo paradigma usado por computadores, grandes e pequenos.
Uma das razões pelas quais os repositórios de objetos não suportam historicamente um namespace hierárquico é que um namespace hierárquico limita a escala. No entanto, o namespace hierárquico do Armazenamento Data Lake é dimensionado linearmente e não degrada a capacidade ou o desempenho dos dados.
Decidindo se deseja habilitar um namespace hierárquico
Depois de habilitar um namespace hierárquico em sua conta, você não poderá revertê-lo para um namespace simples. Portanto, considere se faz sentido habilitar um namespace hierárquico com base na natureza das cargas de trabalho do repositório de objetos. Para avaliar o impacto da habilitação de um namespace hierárquico em cargas de trabalho, aplicativos, custos, integrações de serviços, ferramentas, recursos e documentação, consulte Atualizando o Armazenamento de Blobs do Azure com os recursos do Armazenamento Azure Data Lake.
Algumas cargas de trabalho podem não obter nenhum benefício habilitando um namespace hierárquico. Os exemplos incluem backups, armazenamento de imagens e outros aplicativos em que a organização de objetos é armazenada separadamente dos próprios objetos (por exemplo: em um banco de dados separado).
Além disso, embora o suporte para recursos de armazenamento de Blob e o ecossistema de serviços do Azure continue a crescer, ainda há alguns recursos e serviços do Azure que ainda não são suportados em contas que têm um namespace hierárquico. Consulte Problemas conhecidos.
Em geral, recomendamos que você ative um namespace hierárquico para cargas de trabalho de armazenamento projetadas para sistemas de arquivos que manipulam diretórios. Isso inclui todas as cargas de trabalho que são principalmente para processamento de análise. Os conjuntos de dados que exigem um alto grau de organização também se beneficiarão habilitando um namespace hierárquico.
Os motivos para habilitar um namespace hierárquico são determinados por uma análise de TCO. De um modo geral, as melhorias na latência da carga de trabalho devido à aceleração do armazenamento exigirão recursos de computação por menos tempo. A latência para muitas cargas de trabalho pode ser melhorada devido à manipulação de diretório atômico habilitada por um namespace hierárquico. Em muitas cargas de trabalho, o recurso de computação representa > 85% do custo total e, portanto, mesmo uma redução modesta na latência da carga de trabalho equivale a uma quantidade significativa de economia de TCO. Mesmo nos casos em que a habilitação de um namespace hierárquico aumenta os custos de armazenamento, o TCO ainda é reduzido devido aos custos de computação reduzidos.
Para analisar as diferenças nos preços de armazenamento de dados, preços de transação e preços de reserva de capacidade de armazenamento entre contas que têm um namespace hierárquico simples versus um namespace hierárquico, consulte Preços do Armazenamento do Azure Data Lake.
Próximos passos
- Habilite um namespace hierárquico ao criar uma nova conta de armazenamento. Consulte Criar uma conta de armazenamento para usar com o Armazenamento do Azure Data Lake.
- Habilite um namespace hierárquico em uma conta de armazenamento existente. Consulte Atualizar o Armazenamento de Blobs do Azure com os recursos do Armazenamento do Azure Data Lake.