Entendendo melhor o conceito de Big Data - Parte I I

No artigo anterior desta série sobre a tecnologia Big Data comentei um pouco sobre como a evolução da tecnologia permitiu (e obrigou) as empresas a acumular grande quantidades de dados. Agora neste pretendo falar de algumas aplicações desse conceito.

Redução no tempo de busca das informações

Existem diversos tipos de informações que uma empresa precisa armazenar e algumas dessas informações precisam ser acessadas de maneira mais rápidas dos que outras. As informações de cobrança em aberto devem ser acessadas em tempo real pela área financeira (e por isso ficam em um banco de dados), já os backups antigos dos notebooks podem ser armazenados em fita magnética e - se forem necessário - vai levar algumas horas para acessa-los.

Dentro das empresas se cria uma hierarquia de dados, aonde os dados menos acessados são "empurrados" para armazenamentos mais baratos e lentos. Nesse conceito de hierarquia de dados, quando maior a quantidade de dados, menos importantes eles são e assim mais lento pode ser seu acesso.

Acontece que cada vez mais as empresas precisam fazer análise de grandes volumes de dados em tempo real e isso cria uma contradição dentro do conceito de "quanto maior mais lento".

Por exemplo, o diretor comercial de uma cadeia de lojas de roupas pode iniciar um estudo de lucratividade onde ele pretende simular mudanças nos preços de milhares de produtos e simular o efeito nas vendas. Para isso ele vai verificar qual seria o impacto de aumentos ou reduções de preços, sobre as vendas dos últimos meses. Cada análise precisa percorrer os milhões de transações (vendas, devoluções, trocas, etc.) e não pode tomar um tempo muito longo, pois é necessário repetir essa simulação para cada um dos produtos. Se cada simulação tomar mais que alguns segundos, o tempo total para analisar milhares de produtos se torna inviável.

Assim algumas tecnologias de Big Data são voltadas a acelerar o acesso à grandes bancos de dados. Um exemplo é o armazenamento em memória onde os dados são jogados na memória, exigindo servidores com centenas de gigabytes de memória (lembrando, o computador que você está usando agora deve ter entre 4 e 8 gigabytes de memória), mas isso já assunto para o próximo artigo.

Alta confiabilidade 

Outro problema que as empresas precisam revolver é a confiabilidade desses dados. Não basta mais armazenar em dois discos dentro do mesmo datacenter, hoje as empresas querem se previnir ainda mais: elas querem garantir que os dados estarão a salvo mesmo se houver perda total de um data center ou mesmo no caso da perda de vários data centers.

Além disso essa sincronização muitas vezes precisa ser feita em tempo real: quando ocorre uma transação essa informação precisa ser imediatamente replicada entre todos os data centers.

Assim tecnologias de armazenamento distribuido como o Hadoop permite com que grande blocos de dados sejam replicados e acessados de maneira eficiente.

Segurança dos dados

Um ponto importante também é a forma como esses dados são protegidos. Quanto mais informação existir e quanto mais essas informações estiverem distribuídas, mas díficil é garantir a sua segurança e confiabilidade. A razão é bastante óbvia: se as informações estiverem distribuídas em várias localidades precisamos garantir a segurança em cada um desses pontos.

Por isso criptografia dos dados também passa a ser um ponto importante, assim como controle de acesso, registro das operações realizadas (ai vão mais dados para o Big Data), etc.

Além disso mecanismos como criptografia atrasam o acesso às informações, assim aceleradores de criptografia se tornam necessários dentros dos sistemas de armazenamento.

I/O e escalonamento dos dados

Um dos principais fatores que afetam a performance no acesso aos dados é a capacidade do sistema de receber (I) e enviar (O) dados. O uso de sistemas de armazenamento mais rápidos (por exemplo, trocar discos SATA por SAS) ajudam, porém estão limitados pela tecnologia existente e por questões de custo.

O  uso de sistemas de armazenamento paralelos, aonde cada pedaço da informação é armazenada em uma sistema diferente, permite multiplicarmos a performance no recebimento e envio de informações.

O memos vale para a questão do escolonamento, ou seja, flexibilidade na expansão da capacidade de armazenamento. Com o uso de um armazenamento distribuido em vários equipamentos consigo facilmente aumentar a minha capacidade, bastando acrescentar mais equipamentos.

Gerenciamento dos dados

Um dos problemas em se distribuir o armazenamento é o seu gerenciamento. Se os dados estão distribuidos em vários equipamentos localizados em vários sites, como encontrar os dados requisitados? Como garantir que nenhum dado tenha ficado sem armazenamento apropriado? Um ser humano não consegue fazer isso manualmente.

Os sistemas de Big Data precisam possuir um mecanismo centralizado de gestão desses dados que seja inteligente.

Até o próximo artigo. Me acompanhe no Twitter: http://twitter.com/mlrodrig

Comentários