Operações em lote de armazenamento

Este documento descreve como usar operações em lote de armazenamento para realizar ações em bilhões de objetos em reduzir escalonamento horizontal um ambiente sem servidor. Grandes configurações empresariais podem ter objetos distribuídos por milhares de buckets. As operações em lote de armazenamento automatizam operações em grande escala em objetos. Essa automação reduz o tempo de desenvolvimento necessário para escrever e manter scripts para cada solicitação.

Para saber como criar jobs de operações em lote de armazenamento, consulte Criar e gerenciar jobs de operações em lote de armazenamento.

Visão geral

Use operações em lote de armazenamento para gerenciar um grande número de arquivos no seu projeto. Para começar, crie uma configuração de job. A configuração define quais transformações aplicar a objetos específicos. Essas transformações incluem a colocação de retenções de objetos, a exclusão de objetos, a atualização de metadados e contextos de objetos, a regravação de objetos e o patch de controles de acesso.

Ao enviar um job de operação em lote, você pode monitorar o status dele para verificar quando o job aplica todas as transformações especificadas.

Benefícios

Confira a seguir os benefícios das operações em lote de armazenamento:

  • Escalabilidade: realize transformações em milhões de objetos com um único job de operações em lote de armazenamento.
  • Execução sem servidor: execute jobs em lote em um ambiente sem servidor, o que elimina a necessidade de gerenciar a infraestrutura.
  • Automação: automatize tarefas complexas e repetitivas para melhorar a eficiência operacional.
  • Tempo de desenvolvimento reduzido: evite escrever e manter scripts personalizados complexos.
  • Integração do conjunto de dados do Storage Insights: selecione objetos diretamente especificando condições que correspondam a campos nos seus conjuntos de dados do Storage Insights. Essa seleção direta elimina a necessidade de montar manualmente um manifesto CSV manifest ou executar consultas para exportar o conjunto de dados do BigQuery.
  • Performance: conclua operações sensíveis ao tempo executando vários jobs em lote simultâneos. Por exemplo, é possível processar até um bilhão de objetos em três horas.
  • Repetições automáticas: repita operações com falha automaticamente.
  • Monitoramento de jobs: acompanhe o progresso em detalhes para monitorar o status e a conclusão de todos os jobs.

Casos de uso

As operações em lote de armazenamento automatizam e simplificam o gerenciamento de armazenamento em toda a organização. Os cenários comuns a seguir descrevem como eles ajudam a proteger, organizar e gerenciar seus recursos:

  • Ajude a proteger seus dados: gerencie sua postura de segurança em escala. Por exemplo, é possível girar chaves de criptografia em milhões de objetos, aplicar ou remover retenções de objetos para impor a imutabilidade e aplicar patch em listas de controle de acesso (ACLs) em massa para remover o acesso público de leitura a dados particulares.

  • Mantenha a conformidade: ajude a atender às regulamentações de retenção de dados. Use retenções de objetos direcionadas para aplicar regras de retenção, definir cronogramas de expiração específicos e excluir objetos em um período específico para atender às políticas de exclusão.

  • Transforme dados em escala: realize atualizações em massa nas propriedades do objeto. Por exemplo, é possível atualizar metadados de objetos personalizados ou fixos e marcar arquivos para sistemas downstream atualizando ou limpando contextos personalizados de objetos.

  • Gerenciar custos de armazenamento: ajude a otimizar seus gastos com o Cloud Storage. Por exemplo, é possível excluir em massa objetos ativos desnecessários, limpar registros obsoletos excluindo permanentemente versões de objetos não atuais e mover objetos de armazenamento padrão para classes de armazenamento mais frias, como o armazenamento de arquivos, em escala.

Configurações de job

Para criar um job de operações em lote de armazenamento, defina as seguintes configurações de job. As configurações de job são parâmetros que controlam como o job processa objetos.

  • Nome do job: um nome exclusivo para identificar o job de operações em lote de armazenamento. Use esse nome para rastrear, monitorar e referenciar o job. Os nomes de jobs são alfanuméricos, por exemplo, job-01.

  • Descrição do job (opcional): uma breve descrição da finalidade do job. Essa descrição ajuda você a entender e documentar o que o job faz. Por exemplo, Deletes all objects in a bucket.

  • Lista de buckets: uma lista separada por vírgulas de um ou mais nomes de buckets que contêm os objetos que você quer processar. É possível especificar até 1.000 buckets de qualquer projeto, desde que cada bucket esteja inscrito em um plano de inteligência de armazenamento.

  • Seleção de objetos: os critérios de seleção que definem quais objetos processar. É possível especificar os critérios usando qualquer uma das seguintes opções:

    • Filtros de conjunto de dados: use o Common Expression Language (CEL) para filtrar objetos com base em campos de metadados no conjunto de dados do Storage Insights. É possível executar jobs em lote em objetos em vários buckets em um projeto. Quando você usa filtros de conjunto de dados para seleção de objetos, as operações em lote de armazenamento segmentam objetos ativos e atuais no momento do snapshot do conjunto de dados selecionado. Consequentemente, o job inclui apenas objetos que têm um valor NULL para softDeleteTime e timeDeleted no momento do snapshot. Para mais detalhes, consulte Criar um job usando filtros avançados.

    • Manifesto: crie um manifesto e especifique o local dele ao criar o job de operações em lote de armazenamento. O manifesto é um arquivo CSV enviado para Google Cloud que contém a lista de objetos a serem processados. Cada linha no manifesto precisa incluir o bucket e o name do objeto. Opcionalmente, é possível especificar a generation do objeto. Se você omitir o valor generation, o job vai processar a versão ativa do objeto.

      O arquivo de manifesto precisa incluir uma linha de cabeçalho com o seguinte formato:

      bucket,name,generation

      Confira a seguir um exemplo do manifesto:

      bucket,name,generation
      bucket_1,object_1,generation_1
      bucket_1,object_2,generation_2
      bucket_2,object_3,generation_3
      

      Também é possível criar um manifesto usando conjuntos de dados do Storage Insights. Para mais detalhes, consulte Criar um manifesto usando conjuntos de dados do Storage Insights.

    • Prefixos de objeto: especifique uma lista de prefixos para filtrar objetos no bucket. O job só processa objetos que correspondem a esses prefixos. Se você deixar a lista de prefixos vazia, o job vai processar todos os objetos no bucket.

  • Tipo de job: as operações em lote de armazenamento oferecem suporte aos seguintes tipos de job, executando um único job por operação em lote.

    • Exclusão de objetos: exclua objetos em um bucket para ajudar a otimizar custos, gerenciar o ciclo de vida dos dados e obedecer às políticas de exclusão de dados.

    • Atualizações de metadados: é possível modificar os seguintes metadados de objetos:

      • Metadados personalizados: é possível atualizar qualquer par de chave-valor definido pelo usuário associado ao objeto.

      • Metadados fixos: é possível atualizar Cache-Control, Content-Disposition, Content-Encoding, Content-Language, Content-Type, Custom-Time, e a configuração de retenção. Para modificar retenções de objetos, use o tipo de serviço de atualizações de retenção de objetos.

    • Atualizações de retenção de objetos: é possível ativar ou desativar retenções de objetos. As retenções de objetos impedem que os objetos sejam excluídos ou modificados. Essas retenções são essenciais para conformidade e retenção de dados.

    • Atualizações de chaves de criptografia de objetos: é possível gerenciar as chaves de criptografia gerenciadas pelo cliente para um ou mais objetos. Essa capacidade inclui aplicar ou alterar chaves de criptografia usando o método de objeto de regravação.

    • Atualizações de contexto de objetos: gerencie os contextos de objetos associados aos objetos. É possível limpar todos os contextos de objetos atuais ou fazer atualizações específicas, como remover chaves ou inserir e atualizar pares de chave-valor.

    • Atualizações de classe de armazenamento de objetos: é possível alterar a classe de armazenamento de objetos em massa para ajudar a otimizar custos.

    • Atualizações de listas de controle de acesso (ACLs) de objetos: é possível aplicar patch em ACLs de objetos para adicionar, atualizar ou remover concessões para entidades como allUsers e allAuthenticatedUsers.

  • Simulação (opcional): use o modo de simulação para evitar configurações incorretas acidentais em grande escala. Uma simulação simula a operação sem realizar transformações. Essa simulação ajuda a validar a configuração do job antes de executar o job real. Os resultados da simulação fornecem uma prévia dos seguintes detalhes antes da execução do job:

    • O número de objetos afetados pelo job.

    • Possíveis erros.

    • O tamanho total dos objetos afetados, se você filtrar por prefixos de objetos.

Preços

Para estimar as cobranças do job ou da simulação, consulte Cloud Storage pricing.

É possível usar uma simulação para validar a configuração sem incorrer em custos de operação, embora a simulação possa gerar custos de listagem de objetos.

Limitações

As operações em lote de armazenamento têm as seguintes limitações:

  • Os jobs de operações em lote de armazenamento têm um tempo máximo de vida útil de 14 dias. Qualquer job em andamento que não for concluído em até 14 dias após a criação será cancelado automaticamente.

  • É possível incluir no máximo 1.000 prefixos de objetos em um único job.

  • A execução de mais de 10 jobs simultâneos no mesmo bucket degrada a performance de cada job.

  • É possível executar um único job em lote em no máximo 1.000 buckets em um projeto.

  • Os filtros de bucket e de objeto são limitados a um máximo de 150 caracteres.

  • As operações em lote de armazenamento selecionam automaticamente o horário do snapshot do conjunto de dados do Storage Insights com base no manifesto global. Essa seleção corresponde a todos os buckets segmentados ao mesmo horário de snapshot para descoberta de objetos. O horário do snapshot global selecionado é retornado na resposta da API. Se o horário do snapshot for mais antigo que dois dias, a criação do job falhará. Para informações sobre como resolver essa falha, consulte Resolver problemas de operações em lote de armazenamento.

  • As operações em lote de armazenamento não são compatíveis com buckets que têm o recurso Pagamentos do solicitante ativado.

  • Quando você usa conjuntos de dados do Storage Insights para seleção de objetos, as operações em lote de armazenamento segmentam objetos ativos e atuais no momento do snapshot do conjunto de dados selecionado.

A seguir