Namespace hierárquico

O namespace hierárquico é um recurso oferecido pelo Cloud Storage que permite organizar objetos em pastas e armazenar os dados em uma estrutura lógica de sistema de arquivos, facilitando as tarefas de gerenciamento de dados. O namespace hierárquico fornece a semântica de diretório de alta performance e as operações atômicas de pastas necessárias para acelerar cargas de trabalho de análise e IA/ML com uso intensivo de dados.

Esta página oferece uma visão geral do namespace hierárquico e dos casos de uso dele, incluindo recursos, benefícios e limitações.

Como funciona

Para usar pastas em um bucket, é necessário ativar o namespace hierárquico ao criar o bucket. A configuração do namespace hierárquico do bucket não pode ser alterada depois que o bucket for criado. Para informações sobre como ativar o namespace hierárquico do seu bucket, consulte Criar e gerenciar buckets com namespace hierárquico ativado.

O diagrama a seguir mostra um exemplo de um bucket com namespace hierárquico ativado, em que os objetos são organizados uma estrutura hierárquica de pastas. Uma pasta em um bucket com namespace hierárquico ativado pode conter objetos e subpastas.

Figura 1. Hierarquia de buckets com pastas e objetos.
Figura 1. Hierarquia de buckets com pastas e objetos.

Recursos e benefícios

O namespace hierárquico oferece os seguintes recursos e benefícios:

  • Consultas iniciais por segundo (QPS) mais altas: buckets com o namespace hierárquico ativado oferecem limites de QPS inicial até 8 vezes maiores para leitura e gravação de objetos em comparação com buckets sem namespace hierárquico ativado. Quanto maior o QPS inicial, mais fácil é fazer o escalonamento com uso intensivo de dados cargas de trabalho com uma capacidade de processamento aprimorada. Para informações sobre métodos de otimização de performance ao usar pastas em buckets com namespace hierárquico ativado, consulte Gerenciamento de pastas.

  • Capacidade de usar pastas: as pastas servem como um contêiner para objetos e subpastas, permitindo uma estrutura de diretório real em buckets do Cloud Storage. Armazenar os dados em uma estrutura de pastas melhora a performance, garante a consistência e simplifica o gerenciamento de cargas de trabalho com uso intensivo de dados e orientadas por arquivos.

    As operações de pastas oferecem confiabilidade e recursos de gerenciamento, incluindo criar, listar, excluir e renomear atômicos.

    • Renomear pastas: a operação de renomear pastas ajuda você a renomear o caminho de uma pasta e as pastas subjacentes sem excluir nenhum objeto. Essa técnica é eficiente e poupa tempo, especialmente para pastas com vários objetos.

    • Listar pastas: a operação "Listar pastas" lista todas as pastas no bucket ou abaixo de uma pasta específica, ajudando você a gerenciar e entender a estrutura dos dados armazenados.

Quando você deve usar o namespace hierárquico?

Considere ativar o namespace hierárquico ao trabalhar com aplicativos que esperam uma hierarquia e semântica de sistema de arquivos. O namespace hierárquico é benéfico para tarefas com uso intensivo de dados, como cargas de trabalho de análise e IA/ML. Estes são alguns cenários comuns em que você deve considerar o uso do namespace hierárquico:

  • Processamento baseado em Hadoop: as cargas de trabalho Hadoop e Spark tradicionalmente esperam uma estrutura de armazenamento de sistema de arquivos e uma nomenclatura baseada em tempo para arquivos e pastas. O namespace hierárquico é integrado ao conector do Cloud Storage para oferecer capacidade de processamento aprimorada e renomeações atômicas de pastas, aprimorando a integridade e a consistência dos dados em muitos pipelines de processamento de dados.

  • Processamento de cargas de trabalho orientadas a arquivos: cargas de trabalho como processamento de análise em lote, serviços financeiros ou computação de alto desempenho são estruturadas em partições com base em uma hierarquia de pastas e arquivos. O namespace hierárquico ajuda a gerenciar esses ambientes com uma API dedicada para o gerenciamento de pastas. Além disso, o namespace hierárquico simplifica o gerenciamento de pastas que contêm outras pastas e objetos. Com uma só API, você pode renomear uma pasta rapidamente com todo o conteúdo, salvando recursos e tempo valiosos.

  • Processamento de IA/ML: ferramentas de IA/ML, como TensorFlow, Pandas e PyTorch esperam obter controle de acesso e semântica de sistema de arquivos. O namespace hierárquico, especialmente quando combinado com o Cloud Storage FUSE, oferece maior capacidade de processamento e acesso eficiente aos dados. Como resultado, o namespace hierárquico aumenta o desempenho e a confiabilidade do modelo de iteração de ML.

Antes de ativar o namespace hierárquico do bucket, considere as limitações do namespace hierárquico. Para informações sobre as limitações de namespace hierárquico, consulte Limitações.

Benefícios do namespace hierárquico

Ao ativar o namespace hierárquico para os buckets, é possível:

  • Otimizar a organização: é possível organizar os dados em uma estrutura de pastas hierárquica que ajuda a gerenciar e localizar arquivos ou conjuntos de dados.

  • Estabelecer um ecossistema de sistema de arquivos: o namespace hierárquico introduz recursos de sistema de arquivos, como pastas, renomeação de pastas e listagem de pastas, que são benéficos para aplicativos orientados a arquivos, incluindo o ecossistema Hadoop e as cargas de trabalho de IA/ML.

  • Melhoria de performance: escalonando cargas de trabalho com uso intensivo de dados para lidar com maior capacidade de processamento, é possível aprimorar a performance geral do aplicativo.

Suporte a plataformas

Buckets com namespace hierárquico dão suporte aos seguintes recursos da plataforma Cloud Storage:

  • Todas as APIs de objetos do Cloud Storage e amplamente usadas dos recursos di Cloud Storage. Para detalhes sobre recursos sem suporte, consulte Limitações.

  • Transferência de dados de um bucket padrão para um bucket com o namespace hierárquico usando o Serviço de transferência do Cloud Storage.

  • Integração com os seguintes produtos:

Compatibilidade com operações e recursos do Cloud Storage

Buckets com namespace hierárquico ativado interagem com as operações do Cloud Storage de maneira diferente dos buckets sem namespace hierárquico.

Interações com operações de objetos

Buckets com namespace hierárquico ativado processam operações de objetos das seguintes maneiras:

  • Operações como Upload, Rewrite e Compose criam automaticamente todas as pastas mãe ausentes, desde que você tenha as permissões necessárias. Como resultado, não é necessário criar pastas antes de fazer o upload de objetos.
  • Embora as pastas possam ser criadas automaticamente durante as operações de objetos, você precisa excluí-las explicitamente usando a operação DeleteFolder.
  • Ao usar a operação ListObjects com o parâmetro delimiter, os buckets retornam cada subpasta como um prefix. No entanto, as pastas vazias são excluídas por padrão. Para incluir pastas vazias, semelhantes a uma listagem de sistema de arquivos típica, é necessário definir o parâmetro includeFoldersAsPrefixes. Para informações sobre métodos de otimização de performance ao listar objetos em buckets com namespace hierárquico ativado, consulte Listar objetos.

Interações com operações de bucket

As seções a seguir descrevem como as operações de bucket são processadas quando o namespace hierárquico está ativado.

  • É possível listar todos os buckets com namespace hierárquico ativado, independente do layout de armazenamento. O layout de armazenamento de um bucket descreve como os objetos são organizados em um bucket, seja em um namespace simples ou hierárquico. Para conferir instruções sobre como visualizar o layout de armazenamento de um bucket, consulte Receber o layout de armazenamento de um bucket. Para listar todos os buckets, siga as instruções detalhadas em Listar buckets.

  • É possível excluir buckets com namespace hierárquico ativado, desde que o bucket esteja vazio. Buckets vazios não contêm objetos ou pastas gerenciadas. Buckets vazios podem conter pastas vazias (sem objetos dentro).

Interações com operações de gerenciamento do ciclo de vida de objetos

O gerenciamento do ciclo de vida de objetos permite automatizar ações em objetos com base em condições, como idade ou prefixo. No entanto, as regras de gerenciamento do ciclo de vida de objetos podem se comportar de maneira diferente em buckets com namespace hierárquico e em buckets com um namespace simples devido à operação RenameFolder:

Controle de acesso para pastas com pastas gerenciadas associadas

No Cloud Storage, uma pasta é o diretório real que contém seus dados, enquanto uma pasta gerenciada é um recurso separado e especializado usado para aplicar permissões do IAM ao diretório. Para controlar o acesso a uma pasta e aos recursos nela, crie uma pasta gerenciada associada e defina políticas do IAM na pasta gerenciada associada. Uma pasta gerenciada associada é uma pasta gerenciada que tem o mesmo nome e caminho da pasta real.

A pasta gerenciada associada atua como uma camada administrativa sobre o diretório criado pela pasta, o que significa que uma pasta e a pasta gerenciada associada estão inextricavelmente vinculadas. Por exemplo, se você excluir uma pasta que tenha uma pasta gerenciada associada, a pasta gerenciada associada também será excluída com as políticas do IAM. Para detalhes sobre como as operações de pastas afetam as pastas gerenciadas associadas, consulte Interações entre pastas e pastas gerenciadas associadas.

Nomenclatura para pastas com pastas gerenciadas associadas

As regras de nomenclatura de pastas e as regras de nomenclatura de pastas gerenciadas são aplicadas ao criar pastas com pastas gerenciadas associadas. Os nomes de pastas podem ser aninhados em até 50 níveis de profundidade, mas os nomes de pastas gerenciadas só podem ser aninhados em até 15 níveis de profundidade. O tamanho máximo de um nome de pasta gerenciada é de 512 bytes quando codificado em UTF-8. Isso significa que, se você planeja criar uma pasta e uma pasta gerenciada associada a ela, a pasta só poderá ter 15 subpastas empilhadas, e o tamanho máximo do nome será de 512 bytes quando codificado em UTF-8.

Preços

Para informações sobre preços, consulte Preços do Cloud Storage.

Limitações

Confira a seguir as limitações do namespace hierárquico:

  • É necessário escolher se você vai usar ou não o namespace hierárquico ao criar o bucket. A configuração do namespace hierárquico do bucket não pode ser alterada depois que o bucket for criado.

  • Para ativar o namespace hierárquico, um bucket também precisa ativar o acesso uniforme no nível do bucket.

  • Em buckets com namespace hierárquico ativado, o tamanho máximo do nome de um objeto é de 1.024 bytes quando codificado em UTF-8, em que o segmento de nome da pasta e o segmento de nome base têm um limite de 512 bytes quando codificados em UTF-8. Em buckets de namespace simples, os nomes de objetos não contêm segmentos de nome de pasta e têm um limite de 1.024 bytes quando codificados em UTF-8. Para mais informações sobre limites de nomes de objetos, consulte Sobre objetos.

  • Os nomes de pastas podem ser aninhados em até 50 níveis de profundidade (ou 15 níveis de profundidade se a pasta tiver uma pasta gerenciada associada).

  • Os seguintes recursos do Cloud Storage não têm suporte para buckets que usam o namespace hierárquico:

    • Bloqueio do bucket
    • Realocação de buckets
    • Replicação entre buckets
    • Retenções de objetos
    • Listas de controle de acesso (ACLs) no nível do objeto
    • Bloqueio de retenção de objetos
    • Controle de versões dos objetos

A seguir

Faça um teste

Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho do Cloud Storage em situações reais. Clientes novos recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.

Faça uma avaliação sem custo financeiro do Cloud Storage