Entendendo NoSQL – Map Reduce

Em um outro post expliquei o que são bancos de dados não relacionais (NoSQL) e que eles são usados para tratar grandes volumes de dados (Big Data). Agora vamos entender como eles funcionam se for necessário retornar dados, ou seja, fazer um famoso “select”.

Quando o assunto é Big Data, falar apenas sobre bancos de dados não basta. É necessário também contar com ferramentas que permitam o tratamento de grandes volumes. Neste ponto, o Hadoop [1] e o Hive [2] são as principais referências.

O Hadoop é uma plataforma open source, e foi a primeira desenvolvida especialmente para processamento e análise de grandes volumes de dados, sejam eles estruturados ou não estruturados.

Pode-se dizer que o projeto Hadoop teve início em meados de 2003, quando o Google criou um modelo de programação que distribui o processamento a ser realizado entre vários computadores para ajudar o seu mecanismo de busca a ficar mais rápido e livre da necessidades de servidores poderosos (e caros) [3]. Este modelo de programação recebeu o nome de MapReduce.

O que é Map Reduce?

Imagine que uma empresa possui diversas máquinas espalhadas pelo mundo armazenando todos os pedidos que são comprados. O pessoal de vendas decide ver uma listagem de produtos x receita total nos últimos sete dias.

A primeira etapa do MapReduce é o map (mapeamento), uma função que recebe cada objeto “nota fiscal” (veja no lado esquerdo da Figura 1) e disponibiliza vários pares de chave-valor correspondendo aos itens que foram extraídos de cada nota fiscal (conforme lado direito da Figura 1) [4]. Se o volume for muito grande, várias máquinas podem executar esta função paralelamente.

Map NoSQL
Figura 1 – Função Map

A função reduce (redução) recebe estes diversos pares de chave-valor e combina os valores, totalizando-os [4]. Veja na Figura 2.

Reduce NoSQL
Figura 2 – Função Reduce

Este é um exemplo bem básico do funcionamento do MapReduce.

Conclusão

Sabendo o que são bancos de dados NoSQL e como funciona o MapReduce você já está bem “antenado” com uma importante tecnologia do mercado atual.

Mas por isso esquecemos os bancos relacionais (Oracle, MySQL, SQLServer) ? NÃO! Isso fica como assunto para um próximo post.

Referências

[1] http://hadoop.apache.org/
[2] https://hive.apache.org/
[3] http://www.infowester.com/big-data.php
[4] FOWLER, Martin; SADALAGE, Pramod. NoSQL Essencial. Editora Novatec. 1a ed. São Paulo:2013.

Por RONALDO CHICARELI

Arquiteto de software e também apaixonado por novas culturas e idiomas, pois a vida é muito curta pra ser vivida em um só lugar.

Postado em: 01 de fevereiro de 2017

Confira outros artigos do nosso blog

Copa do Mundo: Integrando planilha Google com uma aplicação Firebase

19 de junho de 2018

Flavia Domingues

Como funciona a Blockchain?

11 de junho de 2018

Alan Cesar Elias

Tutorial: Carga de dados com o SQL Loader

17 de abril de 2018

Ricardo Silveira

Aprendendo Spring Framework

09 de abril de 2018

Hivison Moura

Deixe seu comentário