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. Configurações de grandes empresas podem ter objetos espalhados 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 colocar retenções de objetos, excluir objetos, atualizar metadados e contextos de objetos, reescrever objetos e corrigir controles de acesso.
Ao enviar um job de operação em lote, é possível monitorar o status dele para verificar quando o job aplica todas as transformações especificadas.
Vantagens
Confira os benefícios das operações em lote de armazenamento:
- Escalabilidade: faça 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 correspondem aos campos nos conjuntos de dados do Storage Insights. Essa seleção direta elimina a necessidade de montar manualmente um manifesto CSV ou executar consultas para exportar seu 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.
- Novas tentativas automáticas: repete 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 seguintes cenários comuns descrevem como eles ajudam a proteger, organizar e gerenciar seus recursos:
Ajude a proteger seus dados: gerencie sua postura de segurança em grande escala. Por exemplo, é possível girar chaves de criptografia em milhões de objetos, aplicar ou remover retenções de objetos para aplicar a imutabilidade e corrigir listas de controle de acesso (ACLs) em massa para remover o acesso público de leitura a dados particulares.
Manter a conformidade: ajuda a atender às regulamentações de retenção de dados. Use retenções de objetos segmentadas para aplicar regras de retenção, definir prazos de validade específicos e excluir objetos em um período específico para atender às políticas de exclusão.
Transformar dados em grande escala: faça 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: ajuda a otimizar seus gastos com o Cloud Storage. Por exemplo, é possível excluir em massa objetos ativos desnecessários, limpar registros desatualizados excluindo permanentemente versões de objetos não atuais e mover objetos do Standard Storage para classes de armazenamento mais frias, como o Archive Storage, em grande 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 dos 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 um deles 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 a Common Expression Language (CEL) para filtrar objetos com base nos campos de metadados do conjunto de dados do Storage Insights. É possível executar jobs em lote em objetos de 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 têm como destino objetos ativos e atuais no momento do snapshot do conjunto de dados selecionado. Consequentemente, o trabalho inclui apenas objetos que têm um valor
NULLparasoftDeleteTimeetimeDeletedno 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 ao Google Cloud que contém a lista de objetos a serem processados. Cada linha no manifesto precisa incluir o
buckete onamedo objeto. Você também pode especificar ogenerationdo objeto. Se você omitir o valorgeneration, 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,generationConfira um exemplo de 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 serviço: as operações em lote do Storage são compatíveis com os seguintes tipos de serviço, executando um único job por operação em lote.
Exclusão de objetos: exclua objetos em um bucket para 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-Timee 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 objeto: é possível ativar ou desativar as retenções de objeto. As retenções de objetos impedem que eles sejam excluídos ou modificados. Essas retenções são essenciais para a conformidade e a retenção de dados.
Atualizações de chaves de criptografia de objetos: é possível gerenciar as chaves de criptografia gerenciadas pelo cliente de um ou mais objetos. Isso inclui aplicar ou mudar chaves de criptografia usando o método rewrite object.
Atualizações de contexto do objeto: gerencie os contextos de objeto associados aos objetos. Você pode 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 mudar a classe de armazenamento de objetos em massa para otimizar os custos.
Atualizações da lista de controle de acesso (ACL) de objetos: é possível fazer patchs nas ACLs de objetos para adicionar, atualizar ou remover concessões de entidades como
allUserseallAuthenticatedUsers.
Teste (opcional): use o modo de teste para evitar erros de configuração 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 objeto.
Preços
Para estimar as cobranças do seu job ou simulação, consulte os preços do Cloud Storage.
É possível usar uma simulação para validar sua 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 de vida máximo 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 objeto em um único job.
Executar mais de 10 jobs simultâneos no mesmo bucket prejudica o desempenho de cada job.
É possível executar um único job em lote em até 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 do Storage selecionam automaticamente o horário da captura de tela do conjunto de dados do Storage Insights com base no manifesto global. Essa seleção corresponde a todos os intervalos segmentados ao mesmo horário de snapshot para descoberta de objetos. O horário global selecionado do snapshot é retornado na resposta da API. Se o horário do snapshot for mais antigo que dois dias, a criação do job vai falhar. Para saber como resolver essa falha, consulte Resolver problemas com operações em lote do Storage.
As operações em lote do Storage não são compatíveis com buckets que têm o recurso Pagamento do solicitante ativado.
Quando você usa conjuntos de dados do Storage Insights para seleção de objetos, as operações em lote de armazenamento têm como destino objetos ativos e atuais no momento da captura de tela do conjunto de dados selecionado.