MONGODB E BIG DATA: UMA ANÁLISE DE PERFORMANCE
Por: Carolina234 • 14/11/2018 • 1.428 Palavras (6 Páginas) • 435 Visualizações
...
armazenados
Grande parte desses dados armazenados são não estruturados, de formatos não padronizados e de difícil assimilação, conforme figura 2.
Figura 2. Evolução de dados armazenados
Com a necessidade de armazenamento de dados acima apresentados, existe a necessidade do uso de bancos de dados NoSQL em grande parte do armazenamento de dados de big data. Alguns dados ainda são importantes de serem armazenados de forma estruturada, visto que é possível ter uma melhor assimilação das informações.
A seguir, veremos qual a utilidade e desempenho do MongoDB, um dos exemplos de bancos de dados NoSQL e o mais utilizado atualmente, conforme ranking exibido abaixo:
Figura 3. Ranking de DB-Engines mais populares
Soluções em Big Data
Além de lidar com volumes extremamente grandes de dados dos mais variados tipos, soluções de Big Data também precisam trabalhar com distribuição de processamento e elasticidade, isto é, suportar aplicações com volumes de dados que crescem substancialmente em pouco tempo.
O problema é que os bancos de dados "tradicionais", especialmente aqueles que exploram o modelo relacional, como o MySQL, o PostgreSQL e o Oracle, não se mostram adequados a estes requisitos, já que são menos flexíveis.
Isso acontece porque bancos de dados relacionais normalmente se baseiam em quatro propriedades que tornam a sua adoção segura e eficiente, razão pela qual soluções do tipo são tão populares: Atomicidade, Consistência, Isolamento e Durabilidade. Esta combinação é conhecida como ACID, sigla para o uso destes termos em inglês: Atomicity, Consistency, Isolation e Durability. Vejamos uma breve descrição de cada uma:
Atomicidade
Atomicidade significa que toda transação deve ser atômica, isto é, só pode ser considerada efetivada se executada completamente.
Consistência
Consistência significa que todas as regras aplicadas ao banco de dados devem ser aplicadas e seguidas.
Isolamento
Isolamento significa que nenhuma transação pode interferir em outra que esteja em andamento ao mesmo tempo.
Durabilidade
Durabilidade significa que uma vez que a transação esteja concluída, os dados não podem ser perdidos.
O problema é que este conjunto de propriedades é por demais restritivo para uma solução de Big Data. A elasticidade, por exemplo, pode ser inviabilizada pela atomicidade e pela consistência. É neste ponto que entra em cena o conceito de NoSQL, denominação que muitos atribuem à expressão em inglês "Not only SQL", que em tradução livre significa "Não apenas SQL" (SQL -Structured Query Language - é, em poucas palavras, uma linguagem própria para se trabalhar com bancos de dados relacionais).
O NoSQL faz referência às soluções de bancos de dados que possibilitam armazenamento de diversas formas, não se limitando ao modelo relacional tradicional. Bancos do tipo são mais flexíveis, sendo inclusive compatíveis com um grupo de premissas que "compete" com as propriedades ACID: a BASE (Basically Available, Soft state, Eventually consistency - Basicamente disponível, Estado Leve, Eventualmente consistente).
MongoDB
MongoDB é um banco de dados não estruturado, de alta performance, orientado à documentos. MongoDB armazena os dados em documentos JSON, dando também a possibilidade de armazenar fotos, vídeos e quaisquer outros tipos de informações necessárias.
Começou a ser desenvolvido em 2007 pela 10gen, em linguagem C++, e atualmente está presente em várias empresas como Telefônica, Forbes, Governo do Reino Unido, Foursquare, Buzzfeed, Ebay, McAfee, Adobe, CitiGroup, GAP entre outras gigantes de vários ramos de todo tipo de indústria. Os principais motivos para utilizar MongoDB serão listados a seguir.
Construção ágil de aplicações
Por não ter a complexidade de escrita de queries e joins longas e comuns no SQL, a agilidade da escrita e da forma de se pensar ao desenvolver com MongoDB agiliza muito no processo de desenvolvimento.
Redução de erros
Por não ter a complexidade e a exposição à erros do mapeamento objeto-relacional, a facilidade e simplicidade que o MongoDB proporciona no desenvolvimento diminui a proporção de erros na hora de relacionar tabelas e objetos, visto que o MongoDB trabalha diretamente com documentos. Com isso, ganha-se também em performance, visto que o MongoDB não utiliza transações complexas, stored procedures, triggers, etc.
Modelagem de dados
A modelagem de dados no MongoDB acabam sendo flexível e proporcionam facilidade em alterar a modelagem de dados, deixando para a aplicação a organização do entendimento dos dados armazenados.
Computação distribuída
MongoDB é escalonável. Fica fácil redimensionar a utilização de hardwares que ficarão dispostos para o armazenamento das informações.
Principais diferenças entre MySQL e MongoDB
Abaixo, exemplificamos em forma de tabela as principais diferenças entre MongoDB e MySQL e, consequentemente, os motivos pelos quais MongoDB se adequa melhor à Big Data. Em verde estão as vantagens do MongoDB, em branco as igualdades e em vermelho as desvantagens do MongoDB.
Figura 3. Comparativo MySQL x MongoDB
Conclusão
MongoDB é um dos Bancos de Dados mais utilizados para Big Data, mas ele não é o único. Para determinados tipos de transação, ainda é importante o uso de Bancos de Dados SQL, mas, para tratar da maior massa de dados, é importante o uso de Bancos de Dados NoSQL pela simplicidade com a qual ele trata as informações.
Referências
...