28 de mai de 2018

O que é MongoDB? Conheça este banco de dados

Udacity Brasil

Com o crescimento dos ambientes digitais, preparar novas soluções para lidar com massas expressivas de dados fez-se necessário. Entre as ferramentas mais relevantes deste segmento está o MongoDB, um banco de dados que permite modelar informações de forma natural, aninhando os dados em hierarquias indexáveis e de fácil consulta. Em resumo? Ele guarda dados em vez de tabelas.

O desenvolvimento do MongoDB começou em 2007 e foram dois anos até que a empresa 10gen lançasse a aplicação no mercado. A intenção da desenvolvedora era simplificar e tornar viável a construção de aplicações capazes de lidar com uma infinidade de dados de todos os tamanhos, formas e origens.

Outra ruptura necessária era com o padrão relacional, já que o crescimento vertiginoso dos dados gerados ao longo dos processos de negócio exigia uma alternativa que não esbarrasse em limitações.

Foi então que surgiu a filosofia NoSQL (SQL é uma linguagem de consulta estruturada muito utilizada para análise de dados), que “desapega” de tabelas altamente estruturadas e amarradas e passa a olhar para os dados como documentos em uma estrutura de orientação a objetos.

Para profissionais interessados em desenvolver tecnologias de data science para coleta, análise e visualização de informações estratégicas, o MongoDB é uma alternativa interessante num setor cada vez mais expressivo.

E por tratar-se de uma plataforma open source, é uma adição que não pesa no bolso – a ainda resulta em comunidades ativas de desenvolvedores, o que traz inovações e contribuições constantes do mundo inteiro.

Outra boa notícia? A Udacity oferece um curso gratuito de dois meses, Tratamento de Dados com MongoDB, feito em parceria com a própria empresa.

As vantagens do MongoDB

Desde que o MongoDB saiu, tem ganhado espaço em mercados com foco em data science. Construído com base na experiência de sistemas robustos e de alta disponibilidade, ele veio para suprir algumas necessidades e combater problemas que inviabilizavam o tratamento de volumes de dados da ordem de zetabytes.

A intenção foi agregar recursos como:

  • Facilidade de gerenciamento
  • Escalabilidade horizontal mais fácil, sem o uso de transações em “joins”, sendo possível conjugar com a vertical, se necessário
  • Preparação para trabalhar na nuvem
  • Suporte a replicações, para cópias contínuas de dados de servidores primários para secundários, garantindo disponibilidade e continuidade dos serviços
  • Interface única para configurar máquinas, espelhamentos e atualizações
  • Persistência de dados otimizada
  • Integração com ferramentas de big data e outras tecnologias de coleta e análise de dados em massa

Com esse perfil, o MongoDB é ideal para empresas e profissionais que buscam desenvolver aplicações diversas, de catálogos de produtos para e-commerce a análise de dados em tempo real, gestão de redes sociais e manutenção de dados geolocalizados.

As principais características de Mongo DB

Em função de suas características voltadas para necessidades de big data, inteligência artificial e business intelligence, o MongoDB assumiu uma posição de destaque no mercado facilmente.

Há ainda a questão do código em si. Por ter sido escrito nas linguagens de programação C, C ++ e JavaScript, ele é portável para diferentes sistemas operacionais, o que democratiza seu uso. Além disso, suporta as linguagens mais populares, como C#, PHP, Python, Java, JavaScript, Node.js.

Outro fator decisivo é sua orientação a documentos, que permite armazenar registros sem preocupação com a estrutura de dados, o número ou os tipos de campos que serão usados para guardar valores.

De onde vem a alta performance

Em modelos relacionais anteriores ao MongoDB, o armazenamento de vídeos, imagens e strings longas perde em tempo de resposta quando é necessário recuperar a informação. Se um usuário faz upload de uma foto em uma aplicação, por exemplo, o caminho para o arquivo é armazenado no banco de dados, o arquivo em si é salvo no filesystem e ainda pode haver replicação em algum sistema de backup.

Para solucionar essa questão e aumentar a performance, uma das funcionalidades centrais do MongoDB é a GridFS, que guarda arquivos de grandes dimensões diretamente no banco de dados, dividindo grandes objetos binários em unidades menores.

Além disso, toda a comunicação é feita sobre IP, sendo possível a execução de processos na própria máquina ou com transferência de dados entre máquinas diferentes a partir do uso da função sharding, que distribui dados em múltiplas máquinas, para balanceamento de carga.

Instrutor da Udacity explica como funciona o método sharding de MongoDB

Disponibilidade e escalabilidade

Em tempos que exigem agilidade da resposta – há uma tolerância cada vez menor no mercado a falhas, atrasos e limitações tecnológicas –, escalabilidade e disponibilidade são essenciais.

A já citada sharding atua nas duas frentes e é útil para o escalonamento horizontal. Um alto volume de dados esgota discos de memória e, para evitar que os servidores estourem sua capacidade, a função faz a divisão dos dados entre várias máquinas e aumenta o rendimento dos equipamentos.

Além disso, quando uma falta de espaço no disco é identificada, a capacidade aumenta automaticamente por meio da virtualização. Assim, se o negócio precisa expandir, basta acrescentar mais shards.

Consulta e acesso simples aos dados

Um dos princípios do MongoDB é a não utilização de “joins”, que combinam dados de várias tabelas. Além de ganhar em performance, um resultado adicional é a simplicidade na consulta e na alteração, o que agiliza o trabalho de quem está usando a ferramenta.

Outro fator relacionado é a vantagem da consulta única, que retorna tudo sobre o documento e é mais flexível que os bancos de dados com padrão SQL.

Saiba quando utilizar MongoDB

Pode-se dizer que esse modelo de banco de dados é bom para tudo e veio para substituir os clássicos? Não. Alguns sistemas transacionais continuam pedindo padrões essencialmente relacionais.

Assim, quando uma aplicação exige relacionamentos entre diversas entidades e muitos “joins”, no estilo tradicional, o ideal é continuar com os bancos da linha SQL.

Mas é fato que, mesmo com menos de uma década de existência, o MongoDB já concorre com o MySQL e a Oracle, que têm muito mais tempo de mercado.

O que está por trás desse sucesso é a realidade dos dados no século 21, que incluem também vídeos em alta definição, mensagens em tempo real, fatores de geolocalização, imagens de satélite e realidade aumentada, entre outras novidades que certamente estão por vir.

Tudo isso exige um novo paradigma, alinhado com as características da era digital – e profissionais cada vez mais polivalentes e capazes de lidar com elas. Conheça o curso Tratamento de Dados com MongoDB da Udacity!

Udacity Brasil