O uso de NoSQL, termo que define bancos de dados não relacionais, ainda representa uma fatia pequena do mercado total de bancos de dados, mas tem crescido graças à difusão da tecnologia Big Data. Diversas empresas, tradicionalmente relacionais, como Oracle, têm lançado suas versões de bancos NoSQL. Com essa nova perspectiva, a localização, identificação, armazenamento, processamento e interpretação de dados não estruturados começam a demandar novas tecnologias.
“O uso de NoSQL se adéqua muito bem à tecnologia Big Data, especialmente porque a maioria das soluções NoSQL, inspiradas no projeto Big Table do Google, já nasceu sob o paradigma de trabalhar com dados distribuídos usando hardware commodity”, explica Camila Dias, gerente de tecnologia e bancos de dados da Globo.com, que participa, no dia 16 de setembro, da palestra “Bancos de dados NoSQL: características e domínios de aplicações em ambientes de Big Data”, durante o Rio Info 2014.
Segundo Camila, os NoSQL são comumente usados nos projetos em que o foco é o alto volume de operações, uso de dados não estruturados, modelo flexível e dados distribuídos, em detrimento a um forte controle de transações ou uso de joins. “Os bancos NoSQL possuem esquemas flexíveis e trabalham com dados não estruturados, situação comum em projetos de Big Data. “A combinação das duas tecnologias permite armazenar grande quantidade de dados a custos baixos, especialmente se comparados a bancos relacionais que endereçariam o problema através de investimentos pesados em hardware especializado e licenças caras”.
No entanto, explica Camila, não existe uma regra para uso de bancos relacionais ou NoSQL, e sugere a aplicação da melhor tecnologia para cada tipo de projeto. “É comum o uso de soluções híbridas, que usam tanto bancos relacionais como NoSQL. Um exemplo disso é quando em um produto há demanda por um controle transacional e, ao mesmo tempo, picos de acessos que exigem baixo tempo de resposta. Em soluções desse tipo é comum usarmos um banco relacional, como Mysql, e um banco chave-valor que trabalha em memória, como Redis”, afirma.
A Globo.com já adota soluções de NoSQL desde 2010. A gerente explica que é usado principalmente o MongoDB, banco orientado a documentos, além de Redis, banco chave-valor, e Virtuoso, banco semântico. “Acho que a variedade de soluções é um ponto positivo, pois abre opções para a adoção da solução mais adequada ao seu problema. O principal é entender as características de cada tipo de banco NoSQL (documento, chave-valor, colunas etc.) para ver o que melhor se adequará aos requisitos do seu produto. Já existem várias soluções consolidadas no mercado e que possuem comunidades ativas, facilitando a troca de informações, tais como MongoDb, Hbase, MemCached, Redis. Na dúvida, fazer um benchmark entre possíveis soluções é sempre útil”.
Para o futuro, Camila prevê que novos tipos de bancos NoSQL continuarão sendo desenvolvidos para atender as exigências do mercado. “Já vemos o surgimento de uma nova categoria chamada NewSQL, que faz uma interseção entre o relacional e não relacional, pois são bancos que implementam ACID, suportam SQL mas que são distribuídos e não necessariamente se baseiam em modelo relacional. Além disso, o conceito de cloud é cada vez mais presente no universo de bancos de dados. Já vemos várias iniciativas no mercado de databases as a service, como Amazon DynamoDB, Google Cloud Datastore, dentre outros”, completa.