Atualmente, as organizações produzem e lidam com enormes quantidades de dados não estruturados. Esses dados incluem tudo, desde imagens e vídeos até backups, arquivos de registro e grandes conjuntos de dados para análise. Para armazenar, gerenciar e acessar esses arquivos diversos e muitas vezes muito grandes de forma eficaz, são necessárias soluções de armazenamento especializadas. O armazenamento de objetos binários grandes (BLOBs) surgiu como uma tecnologia essencial para enfrentar esses desafios, oferecendo uma maneira escalonável e econômica de lidar com dados não estruturados.
Os sistemas de armazenamento de objetos binários grandes são projetados para escalonabilidade massiva, alta durabilidade e ajudam na relação custo-benefício, ajudando-os a armazenar grandes volumes de dados não estruturados.
Para entender totalmente o armazenamento de objetos binários grandes, é útil primeiro definir os principais componentes: o armazenamento de objetos e o próprio objeto binário grande (BLOB).
O armazenamento de objetos é uma arquitetura de armazenamento de dados que gerencia os dados como unidades distintas, chamadas objetos. Ao contrário dos sistemas de arquivos que organizam os dados em uma estrutura de diretórios hierárquica (pastas e arquivos) ou do armazenamento em blocos que gerencia os dados como blocos de tamanho fixo, os sistemas de armazenamento de objetos tratam cada parte dos dados como um objeto independente.
Cada objeto normalmente inclui:
Um BLOB, que significa objeto binário grande, se refere a uma coleção de dados binários armazenados como uma única entidade. O termo "binário" significa que os dados podem ser qualquer coisa, não se restringindo a texto ou formatos específicos. Pode ser um arquivo executável, uma imagem, conteúdo de áudio ou vídeo, um arquivo compactado, um backup de banco de dados ou qualquer outro tipo de informação digital. A parte "grande" do nome indica que os BLOBs são normalmente usados para arquivos que são muito grandes para serem armazenados de forma conveniente ou eficiente diretamente em um campo de banco de dados tradicional ao lado de dados estruturados.
Portanto, o armazenamento de objetos binários grandes é essencialmente a prática de armazenar esses BLOBs como objetos individuais em um sistema de armazenamento de objetos. Em vez de incorporar um arquivo de vídeo grande diretamente em um registro de banco de dados, por exemplo, você armazenaria o arquivo de vídeo em um sistema de armazenamento de objetos e, em seguida, armazenaria uma referência (o identificador exclusivo ou URL do objeto) a esse BLOB no banco de dados.
O processo de uso do armazenamento de objetos binários grandes geralmente envolve algumas etapas principais, facilitadas pelo sistema de armazenamento de objetos:
Quando um usuário ou aplicativo precisa armazenar um arquivo binário grande, ele envia os dados, juntamente com os metadados associados, para o sistema de armazenamento de objetos por meio de uma chamada de API (normalmente APIs RESTful por HTTP/S). O sistema de armazenamento recebe esses dados.
O sistema de armazenamento de objetos usa os dados binários enviados e os metadados para encapsulá-los em um "objeto". Em seguida, ele atribui um identificador exclusivo a esse novo objeto. Esse identificador é essencial porque é assim que o objeto será abordado e recuperado mais tarde.
O sistema armazena o objeto, geralmente distribuindo e replicando-o em vários dispositivos de armazenamento físico e, às vezes, até em diferentes data centers. Essa abordagem distribuída melhora a durabilidade dos dados (protegendo contra falhas de hardware) e a disponibilidade. A estratégia de replicação específica pode variar com base na classe de armazenamento escolhida ou nas políticas do provedor.
Os metadados associados ao BLOB são indexados. Isso possibilita pesquisar ou categorizar objetos com base nas tags de metadados, mesmo que você tenha bilhões de objetos.
Quando um usuário ou aplicativo precisa acessar o BLOB, ele envia uma solicitação ao sistema de armazenamento de objetos usando o identificador exclusivo do objeto. O sistema localiza o objeto e transmite os dados binários de volta ao solicitante.
Os sistemas de armazenamento de objetos oferecem mecanismos para controlar quem pode ler, gravar ou excluir BLOBs. Isso normalmente é gerenciado por políticas de gerenciamento de identidade e acesso (IAM), listas de controle de acesso (ACLs) ou URLs assinados que concedem acesso temporário.
O uso do armazenamento de objetos binários grandes oferece vantagens significativas para o gerenciamento de dados não estruturados:
Escalonabilidade
Os sistemas de armazenamento de objetos são projetados para escalonar até exabytes e além, acomodando grandes quantidades de dados e objetos. Isso pode torná-lo adequado para aplicativos que geram volumes enormes de dados.
Relação custo-benefício
Armazenar dados grandes e acessados com pouca frequência em sistemas de arquivos ou bancos de dados tradicionais de alto desempenho pode ser caro. O armazenamento de objetos geralmente oferece opções em camadas com custos variáveis com base na frequência de acesso e nos requisitos de durabilidade que podem permitir a otimização de custos.
Durabilidade e disponibilidade
Os principais serviços de armazenamento de objetos podem oferecer altos níveis de durabilidade dos dados, geralmente armazenando objetos de forma redundante em vários dispositivos ou locais geográficos. Isso pode minimizar o risco de perda de dados devido a falhas de hardware e pode oferecer suporte à alta disponibilidade.
Metadados avançados
A capacidade de associar metadados personalizados e extensos a cada BLOB permite uma melhor organização dos dados, facilita a pesquisa e oferece recursos mais sofisticados de gerenciamento e análise de dados.
Acesso a dados simplificado
O acesso a BLOBs por meio de APIs HTTP padrão pode simplificar a integração com aplicativos da Web, apps para dispositivos móveis e outros serviços de nuvem. Identificadores exclusivos para cada objeto permitem acesso direto sem navegar por caminhos de arquivo complexos.
Dissociação
Armazenar BLOBs externamente a bancos de dados ou servidores de aplicativos pode melhorar o desempenho e a escalonabilidade desses sistemas principais. Os bancos de dados são liberados do gerenciamento de tipos de dados grandes e complicados, e os aplicativos podem descarregar a entrega de conteúdo estático.
Os serviços de armazenamento de objetos que hospedam BLOBs geralmente oferecem diferentes classes ou níveis de armazenamento, categorizados por frequência de acesso, tempos de recuperação e custo. Esses níveis podem ajudar as organizações a otimizar os custos de armazenamento com base no uso dos dados. Alguns tipos comuns são:
Projetado para dados acessados com frequência que exigem baixa latência e alta capacidade de processamento. Esse nível pode ser adequado para conteúdo ativo de sites, dados de aplicativos móveis ou dados que estão sendo processados ativamente por cargas de trabalho de análise. Ele geralmente tem custos de armazenamento mais altos, mas pode ajudar a reduzir os custos de acesso.
Destinada a dados que são acessados com menos frequência (por exemplo, uma vez por mês), mas ainda precisam estar prontamente disponíveis quando solicitados. Ele pode oferecer custos de armazenamento mais baixos do que o armazenamento padrão, mas pode ter custos de acesso ou taxas por recuperação ligeiramente mais altos. É ideal para backups de longo prazo, arquivamento de dados em que é necessário acesso rápido ocasional ou arquivos de recuperação de desastres.
Criado para arquivamento, conformidade e preservação de dados de longo prazo, em que os dados são acessados raramente (por exemplo, uma vez por ano ou menos). Esse nível pode oferecer custos de armazenamento baixos. Os tempos de recuperação podem ser mais longos, variando de minutos a horas, e os custos de acesso podem ser mais altos. Isso pode ser adequado para arquivos regulatórios ou dados que precisam ser preservados para fins históricos, mas não são necessários para as operações diárias.
Alguns provedores oferecem camadas ainda mais frias para dados que são acessados com extrema raridade e podem tolerar tempos de recuperação mais longos (por exemplo, muitas horas). Esses níveis oferecem os custos de armazenamento mais baixos.
A versatilidade e a escalonabilidade do armazenamento de BLOBs o tornam adequado para uma ampla variedade de aplicativos em vários setores:
Casos de uso | Recurso |
Entrega de conteúdo multimídia | Armazenar e disponibilizar imagens, vídeos, arquivos de áudio e outras mídias avançadas para sites, serviços de streaming e aplicativos móveis. |
Data lakes e análise | Armazenar grandes quantidades de dados brutos em um data lakehouse (estruturados, semiestruturados e não estruturados) de várias fontes no formato nativo para processamento de big data, treinamento de modelos de machine learning e business intelligence. |
Arquivamento de arquivos de registro | Armazenar registros de servidores de aplicativos, registros de segurança e trilhas de auditoria para fins de solução de problemas, análise de segurança e conformidade. |
Sistemas de gerenciamento de documentos | Armazenar e gerenciar grandes volumes de documentos, PDFs, imagens digitalizadas e outros registros comerciais. |
Hospedagem de site estático | Hospedar os recursos estáticos (HTML, CSS, JavaScript, imagens) de um site diretamente do armazenamento de objetos, que pode ser altamente escalonável e econômico. |
Distribuição de software | Armazenar e distribuir grandes pacotes de software, atualizações e instaladores. |
Gerenciamento de dados de saúde | Armazenar imagens médicas (raios X, ressonâncias magnéticas), registros de pacientes e dados genômicos de maneira segura e em conformidade. |
Pesquisa científica | Armazenar grandes conjuntos de dados de experimentos, simulações e redes de sensores para análise e colaboração. |
Casos de uso
Recurso
Entrega de conteúdo multimídia
Armazenar e disponibilizar imagens, vídeos, arquivos de áudio e outras mídias avançadas para sites, serviços de streaming e aplicativos móveis.
Data lakes e análise
Armazenar grandes quantidades de dados brutos em um data lakehouse (estruturados, semiestruturados e não estruturados) de várias fontes no formato nativo para processamento de big data, treinamento de modelos de machine learning e business intelligence.
Arquivamento de arquivos de registro
Armazenar registros de servidores de aplicativos, registros de segurança e trilhas de auditoria para fins de solução de problemas, análise de segurança e conformidade.
Sistemas de gerenciamento de documentos
Armazenar e gerenciar grandes volumes de documentos, PDFs, imagens digitalizadas e outros registros comerciais.
Hospedagem de site estático
Hospedar os recursos estáticos (HTML, CSS, JavaScript, imagens) de um site diretamente do armazenamento de objetos, que pode ser altamente escalonável e econômico.
Distribuição de software
Armazenar e distribuir grandes pacotes de software, atualizações e instaladores.
Gerenciamento de dados de saúde
Armazenar imagens médicas (raios X, ressonâncias magnéticas), registros de pacientes e dados genômicos de maneira segura e em conformidade.
Pesquisa científica
Armazenar grandes conjuntos de dados de experimentos, simulações e redes de sensores para análise e colaboração.
É importante proteger objetos binários grandes, principalmente quando se lida com dados sensíveis ou essenciais. Estratégias de segurança eficazes geralmente envolvem várias camadas de segurança:
Criptografia
A criptografia em trânsito usa HTTPS (TLS/SSL) para todas as solicitações de API. A criptografia em repouso garante que os BLOBs sejam criptografados no armazenamento, com opções de criptografia no lado do servidor (chaves gerenciadas pelo provedor) ou chaves gerenciadas/fornecidas pelo cliente (CMEK/CSEK) para maior controle.
Identity and Access Management (IAM):
Implemente políticas de controle de acesso refinado para definir quem (usuários, grupos ou contas de serviço) pode realizar quais ações (ler, gravar, excluir, listar) em BLOBs específicos ou coleções de BLOBs (geralmente chamados de buckets ou contêineres). Siga o princípio de privilégio mínimo, concedendo apenas as permissões necessárias.
Listas de controle de acesso (ACLs)
As ACLs podem ajudar a fornecer outra camada de controle, permitindo que você conceda permissões específicas a usuários ou grupos individuais para objetos ou buckets individuais. Elas podem ser mais adequadas para necessidades de controle refinado em vez de gerenciamento em escala, oferecendo uma abordagem granular para configurações de permissões específicas e detalhadas.
URLs assinados/URLs pré-assinados
Para cenários em que você precisa conceder acesso temporário e limitado a um BLOB específico (por exemplo, permitir que um usuário baixe um arquivo que comprou), os URLs assinados são um mecanismo seguro. Esses URLs concedem permissões com limite de tempo para realizar uma ação específica sem exigir que o usuário tenha credenciais completas
Controle de versões
Ativar o controle de versões de objeto para manter várias versões de um BLOB. Isso pode proteger contra substituições ou exclusões acidentais, já que você pode restaurar versões anteriores, se necessário.
Registro de auditoria
Ative a geração de registros de auditoria para rastrear solicitações de acesso e ações realizadas nos seus BLOBs e buckets de armazenamento. Isso ajuda na análise de segurança, nos relatórios de compliance e na identificação de tentativas de acesso não autorizado.
Comece a criar no Google Cloud com US$ 300 em créditos e mais de 20 produtos do programa Sempre gratuito.