Você está na página 1de 71

Sumário

Módulo 1 – Business Intelligence e ETL ......................................................................................... 4

Introdução ........................................................................................................................................... 4

BUSINESS INTELLIGENCE ........................................................................................................................... 4

Análises preditivas .............................................................................................................................. 7

CONCEITOS FUNDAMENTAIS DE ETL......................................................................................................... 10

Módulo 2 – OLTP, OLAP e Data Warehouse................................................................................. 12

Introdução ......................................................................................................................................... 12

OLTP E OLAP ...................................................................................................................................... 12

DATA WAREHOUSE ................................................................................................................................ 15

Módulo 3 – Pentaho................................................................................................................... 19

O que é Pentaho?.............................................................................................................................. 19

o CDF: Community Dashboard Framework .................................................................................. 20

o CDA: Community Data Access Layer ......................................................................................... 20

o CDE: Community Dashboard Editor .......................................................................................... 20

o CCC: Community Charting Components.................................................................................... 20

o CGG: Community Graphics Generator ...................................................................................... 20

Pentaho Data Integration (PDI)......................................................................................................... 21

Schema Workbench (Mondrian) e Saiku Analytics ........................................................................... 23

Pentaho Report Designer .................................................................................................................. 24

Pentaho Data Mining e o WEKA ....................................................................................................... 25

Instalando o Pentaho em ambiente Windows .................................................................................. 27

JAVA_HOME................................................................................................................................... 34

C:\Program Files\Java\jdk1.8.0_241 ......................................................................................... 34


E o valor ....................................................................................................................................... 35
Módulo 4 – Big Data................................................................................................................... 40

Dados estruturados, semi-estruturados e não-estruturados ........................................................... 40

O que é Big Data?.............................................................................................................................. 42

Os “5V”s do Big Data .................................................................................................................. 42


Diferença entre Big Data e Business Intelligence ........................................................................ 46
Módulo 5 – Hadoop ................................................................................................................... 47

O que é o Hadoop? ........................................................................................................................... 47

C:\hadoop-2.10.0\ ............................................................................................................................. 52

MATERIAIS DE CONSULTA RECOMENDADOS ............................................................................................... 67

Livros ............................................................................................................................................ 67
Artigos acadêmicos ....................................................................................................................... 68
Sites ............................................................................................................................................... 69
REFERÊNCIAS ............................................................................................................................. 70
Alex Junior Nunes da Silva

Mestre em Informática pelo Programa de Pós-Graduação em Informática (PPGI) da Universidade


Tecnológica Federal do Paraná (UTFPR) na área de concentração de Computação Aplicada e na linha
de pesquisa de Inteligência Computacional, graduado em Tecnologia em Análise e Desenvolvimento
de Sistemas também pela UTFPR. Mais de 10 anos de experiência atuando como Cientista de Dados,
desenvolvendo no meio acadêmico e empresarial de Business Intelligence (BI) e com as soluções
Pentaho, com certificação SCRUM e pesquisador na área de Análise de Redes Complexas (grafos).
Afeiçoado por filmes, amante de séries e fascinado por guitarra.

Módulo 1 – Business Intelligence e ETL

Objetivos de aprendizagem

 Aprender os conceitos de Business Intelligence


 Aprender os conceitos de análises preditivas
 Aprender os conceitos fundamentais de ETL
 Entender o fluxo de dados em um processo de ETL

Introdução

Nesta unidade vamos estudar os conceitos fundamentais de Business Intelligence.

Vamos estudar também os conceitos de análises preditivas.

Adicionalmente, vamos aprender sobre os conceitos básicos dos processos de ETL.

Por fim iremos aprender o fluxo de dados que ocorre em um processo de ETL.

BUSINESS INTELLIGENCE

A tecnologia vem avançando a cada vez mais, e com isso tem sido cada dia mais comum o
uso de ferramentas e sistemas de informações em diversas áreas. Partindo dessa contextualização e
indo um pouco mais profundo no passado, em 1958 a empresa IBM Research Fellow por meio do
pesquisador Hans Peter Luhn publicou um artigo no Jornal Sistemas IBM com o título “Uma chamada
de Business Intelligence System”, definindo assim o termo inteligência como: a habilidade de
adquirir conhecimento sobre o inter-relacionamento dos fatos expressos com o objetivo de auxiliar
na tomada de decisão para a realização de um determinado propósito (LUHN, 1958).
Em 1970 surgiram os primeiros sistemas baseados em Business Intelligence mas embora
tenha sido publicado pela IBM em 1958, o termo como conhecemos hoje foi reintroduzido nos ano
de 1993 por Howard Dresner analista da empresa Gartner Group que é especialista em sistemas de
tomada de decisões. Business Intelligence também conhecido como BI, são um conjunto de
conceitos, métodos, técnicas, ferramentas e sistemas de informação voltados a análise de dados e
esse conjunto fornece a seus usuários uma visão sólida, confiável e facilitada dos fatos de uma
empresa, para tal, ele transforma dados brutos em informações úteis e melhor visualizáveis, sendo
que munidos dessas informações, os usuários podem tomar decisões de maneira mais assertiva,
portanto esses sistemas são conhecidos como sistema de suporte à tomada de decisões,
observando que essa tomada de decisões pode ser tanto operacional como estratégica (ANTONELLI,
2009).

Um ponto interessante é que o BI não pode ser classificado como um sistema, nem como um
produto e nem as suas ferramentas, mas pode ser rotulado como o uso de arquiteturas, aplicativos e
banco de dados (ZAMAN, 2005). De acordo com o pesquisador Carlos Barbieri (2001, p.34), BI pode
ser definido como “a utilização de variadas fontes de informação para se definir estratégias de
competitividade nos negócios da empresa”. Sistemas de BI utilizam várias fontes de informações,
pois como o acesso à tecnologia se tornou mais viável à população, mais informações de diferentes
fontes, como mídias sociais, telefone e e-mail, são geradas. Informações essas que em sua maioria
não podem ser analisadas, pois não foram “higienizadas”, ou estão em várias tabelas, onde se torna
inviável a relação com outras tabelas, para gerar o que de fato é importante.

Comumente quando usa-se uma abordagem de BI, tem-se o objetivo de transformar os


dados brutos de uma empresa em informações úteis que possam ser mais facilmente visualizada.
Entende-se como dados brutos todos aqueles dados oriundo de fontes como: bancos de dados de
sistemas ERP e CRM, sensores de máquinas, redes sociais, planilhas eletrônicas (excel), páginas de
internet, dentre outros. Sendo que esses dados brutos podem e geralmente contém muitas
informações úteis que podem revelar padrões de comportamento de usuários, clientes ou até
mesmo do mercado, porém esses dados brutos não são úteis aos usuários, sendo então necessária a
conversão desse conjunto de dados em informações, com esse processo os dados que outrora eram
apenas registros de números e textos tornam-se gráficos, tabelas multidimensionais (cubos) e
painéis de dados (dashboards) que são legíveis para humanos e que munidos com esses elementos
podem tomar decisões dirigidas pelas informações agora conhecidas.

É habitual que pessoas responsáveis pela gerência, gestão ou direção de empresas e setores
de diferentes tipos ou tamanhos, tomem decisões que impactam diretamente nos resultados,
produções ou faturamentos. Porém essas decisões muitas vezes são tomadas levando em
consideração a experiência de um responsável ou de um grupo de indivíduos responsáveis, com isso,
nessas decisões podem haver falhas e essas falhas muitas vezes podem ser prejudiciais as
companhias de maneira elevada. Dessa forma, como dito anteriormente os sistemas de Business
Intelligence são definidos como sistemas de suporte à tomada de decisões, portanto, os resultados
que esses sistemas oferecem são conhecidos por essas pessoas responsáveis que utilizam essas
informações para sustentar as decisões que serão tomadas. Dessa maneira os dados são os centros
das tomadas de decisões, sendo essa abordagem conhecida como “data-driven”.

A cultura data-driven ou cultura orientada por dados, vem sido abordada em muitas
empresas, sendo que nessas empresas os dados são os protagonistas e as decisões são tomadas
levando-os sempre em consideração, dessa forma para uma empresa implementar essa cultura ela
deve tornar sua estrutura adequada para que todas ações tenham um fundamento em dados. A
tomada de decisões utilizando data-driven tem grande eficiência porque observa experiências
passadas e com elas futuras experiências são otimizadas. Para implementar essa cultura em uma
empresa alguns fatores devem ser observados, tais como: investimento em tecnologia (hardwares e
softwares), definição dos objetivos e dos projetos, transformação da cultura empresarial, dentre
outros.

Comumente ao entrar no assunto de BI, são citados os sistemas de ERP e CRM, mas o que o
que se refere cada uma dessas siglas? Abaixo serão explicados de maneira sucinta cada um desses
termos.

ERP é a sigla para o termo inglês Enterprise Resource Planning ou em uma tradução direta
Sistema Integrado de Gestão Empresarial, esses sistemas são responsáveis por realizar a interligação
de todos os processos e os dados de uma empresa, portanto, para muitas das empresas esse é o seu
principal sistema de informação. Os sistemas ERP comumente são subdivididos em módulos e cada
módulo é responsável por um grupo de processos, esses módulos são frequentemente atrelados a
setores, como por exemplo um ERP pode ter um módulo de vendas onde as vendas são cadastradas
e gerenciadas, após esse processo os dados são encaminhados para o módulo financeiro que realiza
os trâmites de faturamento e cobrança dessa venda, os dados de faturamento são então
encaminhados ao módulo contábil onde o setor de contabilidade realiza os cálculos de tributos e
impostos sobre o faturamento.

Com o exemplo acima é possível verificar que todo o processo fora realizado dentro de um
único sistema ERP que é subdivido em vários módulos que atende os vários setores da empresa, o
que reforça a importância desse sistema e é possível observar que o mesmo possui dados de todas
as transações realizadas na empresa. Como exemplo dos principais sistemas ERP utilizados no meio
comercial temos: SAP, TOTVS, Linx, Senior Sistemas, Oracle, Conta Azul, SAGE X3, Nasajon, CIGAM,
Alterdata, AOKI Sistemas, ERPflex, Gatec, dentre outros.

CRM é a sigla para o termo inglês Customer Relationship Management que pode-se traduzir
como Gestão de Relacionamento com o Cliente, nessa classe de sistemas estão aqueles que
possuem o objetivo de informatizar as funções de contato com os clientes, esses sistemas fornecem
ferramentas que auxiliam as empresas a realizar uma mudança de atitude corporativa que resulta na
realização de campanhas que criam e mantém um bom relacionamento com os clientes efetivos e
clientes em potenciais. Os sistemas CRM armazenam o inter-relacionamento com os clientes e
guarda de maneira inteligente dados sobre suas interações com a empresa e suas atividades
realizadas. Como exemplos de sistemas CRM podemos citar: ZohoCRM, RD Station CRM, HubSpot
CRM, Agendor, Pipedrive, Nectar, Salesforce, Freshsales, Moskit, Sugar CRM, Bitrix24, Agile CRM,
Ploomes, dentre outros.

Um exemplo que podemos considerar é que em uma empresa do ramo alimentício se


produz diversos tipos de alimentos derivados de leite, como chocolates, manteigas, iogurtes e
queijos, porém, como a gama de produtos da empresa é muito grande, torna-se difícil saber qual
produto entrega lucratividade e qual produto gera prejuízo, visto que os dados são muitos e não há
um sistema unificado. Nessa situação, todas as fontes de dados poderiam ser integradas em um
sistema de BI e através de relatórios, cubos multidimensionais e (dashboards) serem visualizadas as
informações pertinentes aos produtos, sendo que para os produtos que geram prejuízos poderiam
ser criadas campanhas de marketing para melhorar a lucratividade deles, ou até mesmo esses
produtos serem descontinuados do catálogo da empresa.
Análises preditivas

Uma abordagem que tem sido utilizada em soluções de BI é a análise preditiva, para tal,
modelos de inteligência artificial podem ser aplicados sobre os dados históricos das empresas e
esses modelos entregam aos usuários projeções de comportamento. Alguns autores diferenciam as
soluções de Business Intelligence (BI) como soluções que analisam e apresentam apenas dados
históricos e presente, já as soluções de Business Analytics (BA) são aquelas que além de
apresentarem as análises históricas e presentes, ainda usam essas para gerar predição (previsão)
para futuros comportamentos.

Um exemplo de análise preditiva é em uma concessionária de vendas de veículos novos,


onde as vendas são realizadas e observadas em meses sendo que há uma maior quantidade de
vendas nos meses próximos ao fim de ano, pois é um período onde grande parte dos clientes trocam
seus carros para realizarem viagens de férias de fim de ano com suas famílias. Quando um sistema
de análise preditiva é aplicado sobre os dados dessa empresa, esse sistema irá observar o histórico
de vendas realizados e "aprenderá" que existe esse padrão, então o sistema fará uma projeção onde
nos meses próximos ao final do ano a quantidade de vendas será maior. Ainda que o sistema não
saiba essa informação das férias de fim de ano, os dados treinaram esse sistema que pode então
fazer uma correta previsão.

Existem diversos players de Business Intelligence no mercado, o que diferem entre eles são
as tecnologias que cada um utiliza como por exemplo, qual linguagem de programação eles aceitam,
quais sistemas de gerenciamento de banco de dados (SGBD) eles implementam. Dentre as várias
ferramentas de BI podemos citar como exemplo: o PowerBI da Microsoft, BI da IBM, o Qlickview, o
Tableau e o que vamos abordar mais detalhadamente adiante, o Pentaho da Hitachi.

Dentre os diversos players de BI, há muitos anos os que lideram o mercado são o PowerBI da
Microsoft, o Tableau e o QlickView, conforme relatório da Gartner expresso no quadrante mágico
abaixo que exibe os resultados de uma pesquisa da presença de mercado de players de BI, é uma
forma de compreender as variações dos produtos e também na possibilidade de escolher uma
determinada ferramenta, na imagem abaixo são exibidos os resultados da última avaliação realizada
pela Gartner, é possível observar também que as principais empresas de SGBD também possuem
suas soluções de BI como é o caso da Oracle e da IBM.
Sistemas de BI podem operar sobre diferentes quantidades de dados, trabalhando desde de
pequenas quantidades de registros como em uma planilha eletrônica por exemplo, a uma grande
quantidade de dados de diferentes fontes de origem, o que comumente denomina-se Big Data.
Embora seja possível a utilização de poucos registros, para realizar as devidas análises é mais
recomendado ter uma quantidade maior de dados, pois a confiabilidade é maior se mais dados
afirmam algo.

Além de interagir com muitas áreas diferentes da informática (vendas, contabilidade,


recursos humanos, produção, dentre outras), muitos conceitos de informática podem ser utilizados
em sistemas de BI, desde conceitos de linguagem de programações, linguagens de bancos de dados
até modelos de inteligência artificial, reconhecimento de padrões e aprendizagem de máquina,
dessa forma, existem muitas oportunidades de atuações de diferentes perfis de profissionais no
contexto de BI, o que enfatiza a importância de estudo desses sistemas.

Uma área de grande importância dentro do BI é a de visualização das informações, para isso,
diferentes mecanismos podem ser aplicados, abaixo serão apresentados os que são comumente
utilizados:

 Dashboards

Os dashboards ou painéis de instrumentos são interfaces gráficas que fornecem uma visão
de várias informações ao mesmo tempo e muitas vezes de maneira dinâmica, isto é, ao clicar
em um elemento do dashboard, filtros são aplicados sobre os dados fazendo com que outros
elementos sejam alterados. Esse nome “dashboard” faz uma referência a um painel de
instrumentos de um carro, onde diferentes mostradores, exibe diferentes informações
importantes (velocidade, quantidade de giros do motor, pressão do óleo, temperatura do
motor e etc.) ao mesmo tempo e de maneira simples para que um usuário a um simples
olhar consiga interpretar as informações. Na figura abaixo é exemplificado um dashboard,
onde é possível verificar que na mesma tela várias informações são dispostas em diferentes
componentes gráficos.

 Cubos OLAP

Os cubos OLAP multidimensionais exibem várias informações diferentes em um formato de


tabela composta por linhas e colunas. Uma importante característica dos cubos é que os
dados podem ser "cruzados" exibindo visões bidimensionais ou tridimensionais sendo que
com as ferramentas clássicas esse processo de cruzamento de informações é dificultado ou
não pode ser realizado. Na Figura abaixo é exemplificado um cubo onde são cruzadas as
informações de Linha de produto (Product Line), Região (Territory) e Quantidade (Quantity)
de forma que na mesa tabela é possível a visualização de todas essas informações.
 Relatórios

Uma forma de visualizar as informações em um sistema de BI é por meio de relatórios, esses


podem ser criados usando os dados presentes na solução de BI e são uma maneira simples
de visualizar as informações, porém os relatórios são uma forma estática de visualizar as
informações, não tendo o mesmo dinamismo dos cubos ou principalmente dos Dashboards,
eles são muito usados quando existem muitas informações numéricas. A grande maioria dos
sistemas que são fontes de dados das soluções de BI já possuem implementados em si
relatórios, porém a vantagem dos relatórios em BI é que pode-se criar relatórios
personalizados e os dados que vão compor os relatórios podem ser dados de diferentes
sistemas, o que reforça a importância deles em BI.

CONCEITOS FUNDAMENTAIS DE ETL

A sigla ETL provém do termo em inglês Extraction, Transformation and Load, que em sua
tradução é o processo de Extração, Transformação e Carga de dados. Dessa forma, as ferramentas
de ETL, são responsáveis por extrair os dados de diferentes tipos de fontes, como por exemplo:
sistemas de gestão empresariais (ERP), sistemas de relacionamento com clientes (CRM), planilhas
eletrônicas, sistemas legados, sites de internet, redes sociais, dados de sensores, arquivos de
formatos diversos (XML, TXT, etc), dentre outros.

Após a extração os dados ficarão em uma área de transição (staging area), sendo que após
esse processo de extração os dados são então transformados e limpos, isto é, são processados para
que os mesmos possam atender a regra de negócios onde eles serão utilizados, nessa etapa também
são tratados os dados faltantes por exemplo, bem como os tipos de dados são transformados e
preparados para a seguinte etapa.

A terceira etapa é a de carga, sendo que nela os dados das etapas anteriores são então
armazenados, geralmente de maneira estruturada em um Sistema de Gerenciamento de Banco de
Dados (SGBD). Nessa etapa de carga os dados são armazenados de maneira mais padronizada, por
exemplo: pode-se extrair dados de diferentes redes sociais com campos de data em formatos
diferentes como 13-02-2019 e 02/13/19, na etapa de transformação essas duas datas diferentes
serão padronizadas e na etapa de Carga somente um formato de data será armazenado.

O processo de ETL é de grande utilidade em diversas ferramentas que abordam a análise de


dados, uma vez que, grande parte dessas ferramentas utilizam diferentes repositórios (fontes de
dados), sendo necessário então esse processo para a unificação dessas fontes, bem como o
tratamento desses dados heterogêneos. O processo de ETL geralmente é utilizado em cenários onde
suas etapas resultam em um Data Mart ou o mais comum, um Data Warehouse, esses por sua vez
são bases de dados para sistemas de Business Intelligence, conforme ilustrado na figura abaixo, mas
fique tranquilo, esses conceitos de Data Warehouse e Data Mart serão explicados posteriormente.
Para realizar os processos de ETL ferramentas específicas são utilizadas, são exemplos dessas
ferramentas: IBM Information Server (Data Stage), Oracle Data Integrator (ODI), Informatica Power
Center, Microsoft Integration Services (SSIS). Existe também um conjunto de Ferramentas de ETL
Open Source como o PDI – Pentaho Data Integrator e Talend ETL.
Módulo 2 – OLTP, OLAP e Data Warehouse

Objetivos de aprendizagem

 Aprender o que é OLTP e OLAP


 Entender qual a diferença entre OLTP e OLAP
 Aprender o que é Data Warehouse e Data Mart
 Conhecer os modelos de concepção de Data Warehouse

Introdução

Nesta unidade vamos estudar os conceitos fundamentais de Business Intelligence.

Vamos estudar também os conceitos de análises preditivas.

Adicionalmente, vamos aprender sobre os conceitos básicos dos processos de ETL.

Por fim iremos aprender o fluxo de dados que ocorre em um processo de ETL.

OLTP E OLAP

OLTP

Quando se trabalha com BI, comumente separa-se os bancos de dados em 2 categorias, a


primeira é a OLTP que é uma sigla em inglês para o termo “Online Transaction Processing” que se
traduz como Processamento de Transação em Tempo Real. Nessa abordagem trabalha-se com
dados transacionais e nela estão os sistemas habitualmente utilizados, como por exemplo, os
sistemas de controle de estoque, sistemas de controle de vendas e faturamento, sistemas bancários,
redes sociais, aplicativos de smartphones. Nesse modelo de banco de dados espera-se que haja uma
grande manipulação de dados, em termos mais técnicos, são bancos de dados que possuem uma
grande quantidade de operações de Consultas, Inserções, Alterações e Remoções, sendo essas
operações conhecidas como CRUD que provém do termo inglês de (Create, Read, Update and
Delete).

Nos sistemas OLTP comumente são registradas todas as operações que são realizadas dentro
de uma empresa ou uma organização, com isso, os sistemas OLTP possuem grande importância e
relevância nesses cenários. Uma característica bastante comum é que essa classe de sistemas
operam com transações repetitivas e as transações trabalham de maneira concorrente, pois vários
usuários precisam acessar os bancos de dados ao mesmo tempo, então nesses casos um spool de
conexões isto é, um mecanismo de filas, trata as conexões para que todas as operações possam ser
realizadas.

Nos sistemas OLTP são registradas todas as operações realizadas em uma empresa ou
organização, isso reforça a importância e relevância deles, sendo que nessa classe de sistemas além
de haver uma grande manipulação de dados, as transações são realizadas de maneira repetitivas.

Os sistemas OLTP comumente obedecem as características ACID que é um acrônimo para


Atomicity, Consistency, Isolation and Durability que traduz-se como Atomicidade, Consistência,
Isolamento e Durabilidade, que são 4 propriedades de transação em SGBDs.

 Atomicidade é a característica que define que em uma transação envolvendo duas ou mais
partes de informações discretas, ou a transação será executada totalmente ou não será
executada, garantindo assim que as transações sejam atômicas;
 Consistência: A transação cria um novo estado válido dos dados ou em caso de falha retorna
todos os dados ao seu estado antes que a transação foi iniciada;
 Isolamento: Uma transação em andamento mas ainda não validada deve permanecer
isolada de qualquer outra operação, ou seja, garantimos que a transação não será
interferida por nenhuma outra transação concorrente.
 Durabilidade: Dados validados são registados pelo sistema de tal forma que mesmo no caso
de uma falha e/ou reinício do sistema, os dados estão disponíveis em seu estado correto.

Sistemas OLTP possuem um grande fluxo de entrada e saída de informações e é comum 2


requisições serem realizadas em um mesmo registro, como dito anteriormente o spool pode
controlar as conexões mas existe um fenômeno em banco de dados transacionais denominado lock
(travamento) que possui 2 tipos, otimista e pessimista.

Pode-se resumir sistemas OLTP como sistemas que trabalham com dados transacionais, e a
maior parte dos sistemas de informações que interagimos são OLTP. Um exemplo de sistemas OLTP
é um ERP de um supermercado, imagina que um funcionário verifica o estoque para saber quais os
produtos estão em baixa ou em falta; os compradores então compram e abastecem o estoque
atualizando as quantidades no sistema; um cliente realiza uma compra com alguns produtos, sendo
assim é emitido para ele um cupom fiscal e os dados são diminuídos do estoque; os dados sobre
esse faturamento são enviados ao setor contábil do mercado que irá realizar o pagamentos dos
impostos e encargos. Todo esse processo foi realizado utilizando-se dados transacionais conforme
tabela abaixo:

Passo Descrição Operação no banco de dados

1º Verifica-se os produtos em baixa Consulta

2º Compradores abastecem o estoque Consulta, Inserção, atualização

3º Cliente faz uma compra Consulta, Inserção, atualização

4º É emitido um cupom fiscal Inserção

5º Os dados são enviados à contabilidade Inserção, atualização

No processo acima é descrita uma única venda a um único cliente, agora imagina esse
cenário acontecendo simultaneamente em um supermercado com 30 caixas e com uma média de
2.000 clientes/dia, imagine ainda que os diretores passam o dia todo emitindo relatórios gerenciais
sobre o andamento desse mercado. Esses banco de dados provavelmente não conseguiriam
entregar essas informações em tempo real, visto que são muitas requisições para que ele consiga
processar.

OLAP

Os sistemas OLAP (Online Analytical Processing ou Processamento Analítico em Tempo Real)


possuem uma abordagem um pouco diferente, pois seu foco é em sistemas de análises de dados,
dessa forma, sua estrutura é otimizada para Consultas e não se espera uma grande quantidade de
interações de Inserções, Alterações e Remoções. Esse modelo de banco de dados é muito utilizado
em sistemas de análise de dados, como por exemplo os sistemas de BI, que emitem relatórios e
painéis (dashboards) com informações analíticas, é bastante comum, esses bancos de dados serem
modelados de maneira em que as informações possam ser visualizadas de maneira
multidimensional. Uma característica também relevante de sistemas OLAP é que eles trabalham com
dados já consolidados, portanto são dados com maior confiabilidade uma vez que as operações de
alterações sobre eles dificilmente são realizadas.

Em sistemas de BI, comumente utiliza-se de processos de ETL para transformar dados


transacionais (OLTP) em dados analíticos (OLAP), muito embora essa abordagem é a habitual, ainda
sim podem haver exceções como por exemplo processos de ETL que extraem dados de fontes OLAP
e armazenam em outros bancos de dados também OLAP.

OLTP versus OLAP

Os sistemas OLTP diferem dos sistemas OLAP em alguns pontos, a abordagem que eles
utilizam são diferentes, na tabela abaixo são demonstrado nas linhas alguns pontos de observação e
nas colunas, como cada tipo de sistema se comporta:

OLTP OLAP
Dados Transacionais Analíticos

Operações CRUD Consultas

Organização Orientado a aplicação Orientado a assuntos

Certeza dos dados Incertos Consolidados

Inserção e atualização Rápidos Processos Batch

Consulta Simples Mais complexas

Utilização Sistemas Comuns Sistemas de BI


DATA WAREHOUSE

Um dos componentes de maior importância em uma solução de BI é o banco de dados e a


maneira como os dados serão armazenados de maneira consolidada, partindo dessa premissa,
comumente em BI usa-se o Data warehouse (DW) que é um banco de dados estruturado que abriga
dados OLAP. O Data warehouse auxilia o armazenamento de dados históricos de uma organização e
sua visão difere de um banco de dados comum, pois ele usa uma abordagem de dimensões de
informações e fatos realizados, esses conceitos serão melhores explicados posteriormente, sendo
que essa abordagem específica garante uma otimização na visualização de grande quantidade de
dados, pois com essa estruturação, esses dados são sumarizados de maneira em que as consultas
possam ser realizadas facilmente cruzando diferentes informações.

De acordo com Singh, 2001: “O DW é a área de armazenamento de dados históricos e


integrados destinados a sistemas de suporte à decisão” e Barbieri, 2001 diz que “DW Pode ser
definido como um banco de dados, destinado a sistemas de apoio à tomada de decisão e cujos
dados foram armazenados em estruturas lógicas dimensionais, possibilitando o seu processamento
analítico por ferramentas especiais”.

É de grande importância que o Data warehouse não influencie nas demais base de dados
OLTP, pois embora os dados que irão popular esses Data warehouses serão originados dessas bases,
sejam elas de sistemas ERP, sistemas CRM ou outros sistemas empresariais, ainda sim o Data
warehouse será o banco de dados com o foco analítico, portanto suas rotinas de uso não devem
impactar nos demais banco de dados e sistemas. Para a população de um Data warehouse utiliza-se
um processo de ETL.

Um Data warehouse pode ter diferentes padrões implementados em si, mas um padrão
largamente utilizado é a modelagem dimensional, que fora criada pelo pesquisador PhD Ralph
Kimball, que é um dos precursores do Data warehouse e desenvolveu importantes pesquisas para
esse tema. Na modelagem dimensional 2 itens são definidos e o armazenamento de dados estará
sempre de acordo com esses itens, sendo eles:

As tabelas de Dimensões, são entidades que servem de perspectivas na análise de uma


informação, portanto, pode se dizer que as dimensões são as formas como uma informação será
visualizada. Alguns exemplos de dimensões são: a dimensão tempo, que armazena todas as
informações referentes a tempo (anos, meses, semestres, semanas, dias, horas, minutos, segundos e
etc.), a dimensão empresa, que armazena todos os dados referentes às empresas (Razão Social,
CNPJ, Endereços e etc.). Com essas duas dimensões exemplificadas pode-se por exemplo, analisar os
dados de uma empresa específica em um período específico.

A tabelas de Fatos, como sugere o nome, são os fatos realizados nas empresas como por
exemplo quando uma venda é realizada, popula-se então a tabela Fato de Vendas, sendo que os
produtos vendidos, em qual empresa foi vendido e em qual data, apenas terão chaves que
apontarão para as respectivas tabelas de dimensões. Sendo assim, quando for necessário visualizar
quais foram as vendas realizadas na empresa A entre os meses de janeiro a junho do ano de 2019,
com essa estrutura fica mais fácil.

Um conceito de grande importância, é a granularidade da informação sendo que ela pode


ser maior ou menor de acordo com o dado que está sendo visualizado, por exemplo, para uma
empresa a informação de uma única venda é uma informação de menor granularidade, já as
informações de todas as vendas dessa empresa em um período de alguns anos já é uma informação
de maior granularidade. Esse conceito é relativo, pois no exemplo acima vimos que todas as vendas
de uma empresa em um período é uma informação de maior granularidade, entretanto, se formos
analisar todas as vendas de todas as empresas em todos os períodos, a informação anterior tende a
ser de menor granularidade. Em Data Warehouses como são bases OLAP é mais comum análises de
maiores granularidades.

Um subconjunto de grande utilização em Data Warehouses são os Data Marts que são
bancos de dados com as mesmas características dos DWs porém sua estrutura abrange uma
determinada área de assunto como por exemplo em uma empresa existe um Data Mart específico
para Vendas, outro para o Estoque, outro para a Contabilidade e etc. Ao invés de serem agrupados
por assunto, os Data Marts também podem ser periódicos como por exemplo, um Data Mart com
informações das Vendas de 1 ano, outro Data Mart das Vendas de 5 anos, outro Data Mart das
vendas dos últimos 15 anos, dentre outros.

Existem 2 abordagens do fluxo de dados para um Data Mart sendo que na primeira, as
informações presentes nos Data Marts vêm dos Data Warehouses, sendo que nessa abordagem o
Data Warehouse compõe os Data Marts; na segunda abordagem o processo é inverso, sendo que
nela o processo de ETL é realizado para popular os Data Marts e os Data Marts irão compor os Data
Warehouses, essa visão pode ser de grande utilidade quando se cria um grande projeto porém esse
projeto será modularizado e o desenvolvimento de cada etapa poderá concluir a criação de um Data
Mart.

Uma característica relevante para um Data Warehouse é o modelo em que as tabelas serão
dispostas, conectadas e como elas irão interagir entre sim, bem como a forma como os dados serão
estruturados e organizados. Os modelos de DW variam das necessidades de cada caso, os dois mais
comuns atualmente são o Modelo Estrela (Star Schema) e o Modelo Floco de Neve (Snow Flake),
cada um com sua característica e limitação referente ao outro.

 Modelo Estrela

Proposto pelo pesquisador PhD Ralph Kimball, para ser um modelo altamente
redundante, onde todas as descrições seriam repetidas em cada dimensão. Sua
estrutura é composta por uma tabela central de Fatos e um conjunto de tabelas
ligadas a ela, que são chamadas de dimensões. As dimensões são compostas por
eventos ou características do mesmo, enquanto a tabela fato, como o próprio nome
diz, armazena os fatos ocorridos. Segundo Singh (2001) uma característica
importante desse modelo é fato de suas dimensões serem desnormalizadas, isto
gera várias duplicidades no banco, mas também garante confiabilidade nas
consultas. Barbieri, 2001, cita como desvantagem do modelo estrela o fato de ele
não ter uma perfeita coesão entre os Data Marts e um esforço redobrado na
extração de dados, já que várias informações são duplicadas. Na figura 2 pode se
verificar a estrutura do modelo estrela.
 Modelo floco de neve também possui uma tabela Fatos ligada as entidades de
dimensões, porém, ao contrário do que ocorre com o modelo estrela, há entidades
relacionando entre si, isto diminui drasticamente o tamanho do DW, porém as
consultas podem se tornar um pouco complicadas. Segundo Machado (2004), O
modelo floco de neve é o resultado da decomposição de uma ou mais dimensões
que possuem hierarquias entre seus membros. O que difere também do modelo
estrela é o fato das dimensões serem normalizadas, não ocorrendo as duplicidades
que ocorre no modelo estrela, SINGH (2001) completa dizendo que normalizando os
dados das tabelas dimensionais de um modelo estrela transforma o mesmo em um
modelo floco de neve. Na figura 3 observa-se a estrutura do modelo Floco de neve.
Processos de Mineração de Dados (Data Mining) são comumente realizados sobre os dados
do Data Warehouse, com esses processos é possível descobrir conhecimentos relevantes sobre os
dados, aplicando assim modelos que encontram padrões e correlações nos dados armazenados.
Módulo 3 – Pentaho
Objetivos de aprendizagem

 Aprender o que é o Pentaho


 Pentaho Data Integration (PDI)
 Schema Workbench (Mondrian) e Saiku Analitycs
 Pentaho Report Designer (PRD)
 Pentaho Data Mining e WEKA
 Aprender a instalar o Pentaho

Introdução

Nesta unidade vamos conhecer o que é o Pentaho e quais empresas o utiliza.

Conheceremos o PDI e entenderemos o funcionamento básico dele.

Vamos aprender também sobre o Pentaho Schema Workbench e sobre a ferramenta Saiku Analitycs.

Aprenderemos sobre o Pentaho Report Designer.

Iremos aprender o básico sobre o WEKA e sua integração com o Pentaho.

Por fim vamos aprender como instalar o Pentaho em um ambiente Windows.

O que é Pentaho?

O Pentaho Business Analitycs é um pacote de sistemas de informações (suíte) utilizado em


inteligência de negócios (Business Intelligence), que inclui programas para extrair os dados de
sistemas de origem em uma empresa, gravá-los em um data warehouse (ou base de dados), limpá-
los, prepará-los e entregá-los a outros sistemas de destino ou mesmo a outros componentes do
pacote para estudar ou dar acesso aos dados ao usuário final.

A suíte Pentaho conta com 2 versões: uma gratuita e open-source (versão Comunnity Edition
ou CE) e outra versão paga (versão Enterprise Edition ou EE), na versão EE são disponibilizadas
algumas ferramentas exclusivas de visualização de cubos e o principal diferencial é que nessa versão
existe o suporte técnico e treinamentos diretamente da Hitachi Group Company que é a empresa
proprietária do Pentaho; já na versão CE não existe o suporte direto de uma empresa, sendo assim,
caso seus desenvolvedores necessitem de um apoio terá que contar com a comunidade.

Desenvolvida desde 2004 e com a linguagem de programação Java, o Pentaho é uma das
ferramentas mais usadas e com maior reputação dentre as soluções de BI existentes (MARINHEIRO;
BERNARDINO, 2013). O Fundador Richard Daley gostaria de desenvolver um sistema de informação
em java, poderoso o suficiente para suprir toda a demanda de BI de uma organização, com isso
evitaria a instalação de diversos outros sistemas para atingir um objetivo final, acreditando que
deveria existir uma melhor maneira para a implementação de BI.
O Pentaho pode ser considerado uma ferramenta de grande confiabilidade pois no Brasil, ele
é usado em diferentes setores de industrias, comercios e órgãos governamentais como por exemplo,
a Caixa Econômica Federal, Banco do Brasil, Itaipu Binacional, Senado Federal, Correios, Serpro, Sesi
e Federação das Industrias, Exército Brasileiro, GVT, Renault, Globo.com, CAPES, UFPR, dentre
outras. No exterior o Pentaho é usado por grandes empresas como Caterpillar, Nasdaq, Randstad,
Veikkaus, Opower, Marketo, Edo, Bank of America, Telefonica, Lufthansa, Mozilla, OLX, Mobly,
SalesForce Marketing Cloud, United States Postal Service, Bosch Group, Fiat Chrysler Automobiles
NV, Foxconn, dentre outras.

A suíte é composta por diversos componentes que juntos formam um ecossistema que
permite realizar desde o processo de ETL, até a visualização das informações. Os principais
componentes do Pentaho são:

 Pentaho BI Server, aplicação principal que controla todos os processos de usuários,


agendamento de tarefas, visualizações de relatórios, cubos e dashboards;

 Pentaho Data Integration, é o módulo responsável por fazer todo o processo de ETL
sobre os dados;

 Pentaho Mondrian OLAP server, ferramenta criada para lidar com bancos de dados
OLAP e é utilizada para configurar o ambiente onde serão gerados os cubos;

 Pentaho Report Designer, derivado do JFreeReport é o módulo onde são criados os


relatórios estáticos do BI;

 CTools, conjunto de ferramentas criadas originalmente pela empresa Webdetails


para auxiliar na geração de dashboards, hoje a Hitachi comprou a Webdetails,
portanto essas ferramentas são parte do core do Pentaho. As CTools são compostas
por:

o CDF: Community Dashboard Framework

o CDA: Community Data Access Layer

o CDE: Community Dashboard Editor

o CCC: Community Charting Components

o CGG: Community Graphics Generator

 Saiku Analitycs, ferramenta para a criação de cubos OLAP por usuários comuns;

 Pentaho Data Mining, baseado no projeto WEKA, é o módulo que contém


ferramentas para aprendizado de máquina (machine learning) e mineração de dados
(data mining).
Pentaho Data Integration (PDI)

Também conhecido como Kettle, é o módulo de ETL (Extraction, Transformation and Load)
da suíte Pentaho, portanto ele é o responsável por toda a manipulação e estruturação dos dados
que as outras aplicações do Pentaho irão utilizar. Embora o PDI seja parte da suíte Pentaho, ele pode
trabalhar sem a necessidade das outras aplicações (stand-alone), dessa maneira, ele pode ser
utilizado para realizar os processos de ETL de maneira descomplicada (MARINHEIRO; BERNARDINO,
2013). Por possuir uma integração com soluções Hadoop, o resultado do PDI pode alimentar
diretamente soluções de análise de Big Data.

O PDI trabalha com dois tipos de atividades, as transformações (transformations), que são
uma série linear de operações aplicadas sobre os dados; e os trabalhos (Jobs), que são os
gerenciamentos das transformações. Os trabalhos controlam o fluxo de dados entre as
transformações e os possíveis erros que possam acontecer nessas transformações, conforme
demonstrado na Figura 4. Tanto nas transformações quanto nos trabalhos, através do spoon o PDI
utiliza componentes visuais (interface gráfica) para separar e identificar cada estágio de uma
atividade, dessa forma, cada componente tem sua característica e é responsável por uma etapa.

Em uma transformação cada passo (step) pode conter uma atividade essas por sua vez
podem ser:

 Leitura e/ou gravação de dados de uma tabela de um SGBD;

 Aplicação de expressões regulares para a limpeza em textos;

 Fusão de dados provenientes de tabelas, arquivos (XML, TXT ou CSV), dentre outras
fontes;

 Divisão de valores de um único campo;

 Concatenação de valores;

 Operações matemáticas diversas;

Pode-se destacar também que as transformações podem ser executadas simultaneamente,


sendo que esse paralelismo aplicado a problemas que possuem grande quantidade de dados a
serem processados é de grande utilidade, o que torna ainda mais a ferramenta robusta.

O PDI pode conectar-se com diversos sistemas gerenciadores de banco de dados, para tal,
ele utiliza o JDBC (Java Database Connectivity) que é uma espécie de tradutor onde, por meio de um
conjunto de classes Java as instruções em linguagem SQL são enviadas para os banco de dados,
dessa forma uma mesma instrução pode ser aplicada a um banco de dados MySQL, um banco de
dados Oracle ou ainda um banco de dados PostgreSQL, bastando alterar o driver JDBC de cada uma
dessas conexões.

Uma boa prática é usar sempre que possível o padrão ANSI SQL para criar as instruções SQL,
assim, caso haja a necessidade de migração de um sistema de gerenciamento de banco de dados
(SGBD), basta alterar os dados de conexão e o driver JDBC, não sendo necessário a reescrita das
instruções por possuírem especificidades de um determinado SGBD, todavia, mesmo sendo uma
prática recomendada, existem situações onde a melhor opção será realizar uma instrução específica
de um banco para resolver um problema, nesses casos, caso haja a migração de SGBD esse ponto
deverá ser reescrito.

Na Figura abaixo é demonstrada a tela principal do spoon onde é possível ver uma
transformação e cada um dos steps bem como o fluxo dos dados entre eles. No painel à esquerda
(área vermelha) são disponibilizados cada componente que poderá ser usado para compor os steps;
já os steps e o fluxo dos dados por sua vez são demonstrados no painel maior (área azul); na parte
inferior (área amarela) são disponibilizados alguns resumos com relação aos logs de execução das
transformações ou JOBs.

Os Jobs por sua vez são estruturas compostas por sequências de operações que lidam com
as transformações, comumente separa-se operações diferentes em transformações diferentes, por
exemplo, se em uma empresa é necessária a extração dos dados de um SGBD de um ERP, extração
de dados do SGBD de um CRM e extração de dados de algumas planilhas eletrônicas, nesse caso o
ideal é criar 3 transformações diferentes, cada uma com uma especificidade. Para executar as 3
transformações usa-se então um Job, que irá executar cada uma dessas transformações de maneira
linear ou até mesmo em paralelo automatizando assim o processo de ETL.

A extensão padrão dos arquivos de transformação é a “.ktr”, já nos Jobs a extensão é a


“.kjb”, ambos os arquivos são arquivos texto e podem ser editados por editores de texto comuns,
todavia, com o spoon o processo visual torna a manutenção desses arquivos facilitada.

Como dito anteriormente o spoon é a interface gráfica utilizada para criar e realizar
manutenções em transformações e Jobs, porém, para a execução das transformações o programa
usado é o Pan, que por sua vez executa as transformações sejam elas em arquivos texto (ktr) em um
sistema de arquivos comum ou ainda em um banco de dados. A execução dos Jobs também não é
realizada pelo spoon, sendo que para eles o Kitchen é o programa que será utilizado. Os três
programas spoon, pan e kitchen compõem o Pentaho Data Integration que fornece todas as
operações necessárias para os processos de ETL.
Schema Workbench (Mondrian) e Saiku Analytics

O Pentaho Schema Workbench (PSW) é a interface gráfica utilizada para criar e testar os
cubos OLAP, esses cubos são utilizados para realizar a análise dos dados por perspectivas diferentes,
os cubos segmentam uma informação por eixos de análise tornando a interpretação desses dados
intuitiva. O PSW é utilizado para realizar a tradução para o Mondrian que é uma linguagem própria
de programação que mistura Haskell e Java, o mecanismo do Mondrian processa as solicitações na
linguagem MDX com os esquemas ROLAP (Relational OLAP), os esquemas são modelos lógicos para
mapear o modelo de dados multidimensional físico. Os esquemas são arquivos XML com uma
estrutura na qual o Mondrian reconhece e consegue realizar os mapeamentos, em resumo um
esquema consistem em uma única tabela de fatos e em algumas dimensões, cada uma com uma
determinada hierarquia que consistem em vários níveis.

É importante observar que um desenvolvedor deve conhecer bem seu modelo de dados
físico (Data Warehouse) para gerar bons resultados no PSW uma vez que o papel do PSW é gerar
mapeamentos entre as tabelas do Data Warehouse, sendo necessário o conhecimento de como as
tabelas relacionam-se entre si. Observa-se também que o foco do PSW não é o de criar os cubos
para os usuários finais e sim de configurar quais dados os usuários terão acesso para posteriormente
cruzá-los e criar os cubos com outras ferramentas como o JPivot ou o Saiku Analitycs.

Os cubos são estruturas que agrupam as medidas (measures) pelos níveis e hierarquias de
cada uma das dimensões, sendo que eles agregam diversas dimensões como por exemplo: dimensão
de produto, dimensão tempo, dimensão de serviço, dimensão geográfica, dimensão de empresa;
com dados resumidos como por exemplo: os números de vendas ou números de clientes.

Em um cubo uma dimensão é um grupo de hierarquias de nível, organizadas de forma que


os usuários entendem e as usam como a base para a análise de dados, exemplo: em uma dimensão
geográfica os níveis inclusos podem ser País/Região, Distrito/Província e Cidade. As dimensões são
campos categóricos como: Departamento, Estado Civil, dentre outros.

A hierarquia é uma estrutura de dados em árvore lógica onde os componentes de uma


dimensão são organizados, sendo que cada membro terá um membro ascendente (pai) zero ou mais
membros descendentes (filhos).

O nível diz respeito ao nível de detalhe superiores e inferiores o que comumente chama-se
de granularidade, níveis do Ano, Trimestre, Mês e Dia numa hierarquia de Tempo.

As medidas são campos quantitativos que expressam valores por exemplo: Descontes,
Pagamentos, Despesas, Quantidades, etc.

Na figura abaixo é demonstrada a tela do Pentaho Schema Workbench, onde é possível ver
na margem esquerda uma árvore com o cubo StellWheelsSales (área azul), que possui a dimensão
Markets, Custommers, Product, Time e Order Status (área verde); possuí também as medidas
Quantity e Sales (área vermelha).
O Saiku Analytics é uma ferramenta gráfica desenvolvida pela empresa Meteorite.BI onde é
possível a criação de cubos OLAP por usuários comuns. O Pentaho utiliza a versão Community da
ferramenta, mas é possível também utilizar a mesma sozinha (stand-alone), porém paga. Essa
ferramenta é usada por grandes corporações como Accenture, Amazon, Linkedin, Netflix e o
governo dos Estados Unidos.

Uma das principais característica dos cubos é a facilidade de sua geração sendo ela possível
de ser feita por um usuário que não é um desenvolvedor ou um cientista de dados, o Saiku permite
que o usuário apenas arraste e solte (drag and drop) os campos com as informações que ele deseja
visualizar. O próprio Saiku faz a tradução para a linguagem MDX das informações criadas pelo
usuário, dessa forma, esse não precisa ter nenhum conhecimento sobre qualquer linguagem de
programação, tornando a ferramenta eficaz para o uso de gestores, gerentes, encarregados,
contadores, dentre outros. Após criado, um cubo pode ser salvo e acessado posteriormente por o
usuário que o criou ou por qualquer outro usuário que tenha a permissão de acesso, esse recurso é
útil para acompanhar por exemplo informações que mudam mensalmente.

Pentaho Report Designer

O Pentaho Report Designer (PRD) é a ferramenta utilizada para a criação de relatórios de


maneira personalizada resultando na exibição dos dados por meio de tabelas e gráficos, os relatórios
podem ser impressos ou visualizados em páginas WEB (HTML), ou ainda serem exportados para
diversos formatos como: PDF, XML, CSV, RTF e XLS. Assim como outras ferramentas da suíte Pentaho
o PRD pode ser usado de maneira autônoma (stand-alone), ou como parte do Pentaho Business
Analitycs onde os relatórios podem ser publicados e os usuários os acessarem posteriormente.

O PRD surgiu por volta de 2006 onde era chamado de JFreeReport, sendo que
gradativamente seu nome foi sendo alterado para Pentaho Report Designer, no PRD assim como nas
outras ferramentas do Pehtaho, os dados são acessados por meio de conexões JDBC os dados que
farão parte dos relatórios são provenientes de consultas ao banco de dados (Data Warehouse) e
para essas consultas podem ser utilizados: o Assistente de Design de Relatórios, SQL Query Designer,
MQL Query Builder ou de maneira manual.

Na figura abaixo é exibida a tela principal do PRD com um relatório aberto, é possível
observar que na parte onde mostra o que será exibido no relatório (área azul), o PRD possui algumas
réguas que mostram o tamanho de cada um dos elementos do relatório, existe também uma área
(vermelha) que exibe em qual seção do relatório é aquela linha, há uma parte (área verde), onde os
elementos podem ser selecionados arrastados e soltados para o relatório (área azul) e por último há
um inspetor de elementos (área amarela), que alterna e nele as propriedades de cada elemento
podem ser visualizadas e alteradas.

Pentaho Data Mining e o WEKA

O Pentaho Business Analitycs possui uma área de aprendizado de máquina e de mineração


de dados com algoritmos que auxiliam na melhor compreensão dos negócios e também na
exploração para melhorar o desempenho futuro por meio de análises preditivas. Essa área de
mineração de dados é de responsabilidade do WEKA.

O WEKA (acrônimo para Waikato Environment Knowledge Analysis) é uma ferramenta de


código aberto, criada na Universidade de Waikato na Nova Zelândia sobre a linguagem de
programação Java e com o intuito de reunir diferentes implementações de algoritmos de
aprendizado de máquina, sendo que o WEKA também fornece soluções para o pré-processamento,
além de soluções para a visualização de conjuntos de dados (THORNTON et al, 2012).

Ele foi criado porque os pesquisadores perceberam que existiam diferentes modelos de
aprendizado disponíveis sendo que cada um era executado em uma linguagem de programação
diferente, sobre plataformas diferentes e formato de dados de entrada e saída diferentes o que
tornava suas implementações trabalhosas e dificultava o processo de comparação entre os modelos
e algoritmos. Partindo dessa ideia eles desenvolveram uma “caixa de ferramentas” para o cientistas
de dados, sendo que essa ferramenta é utilizada tanto para pesquisadores quanto para profissionais,
pois nela foram implementados vários métodos para resolver todos os problemas padrões de
mineração de dados, como: classificação, regressão, agrupamento, regras de associação e seleção de
atributos, além dos algoritmos de pré-processamento e das ferramentas de visualizações conforme
mencionado anteriormente.

O WEKA unifica em um ambiente gráfico, todos os algoritmos acima citados e padroniza a


forma como eles são aplicados aos conjuntos de dados, bem como a maneira como seus parâmetros
são alterados. O WEKA facilita também a entrada de dados, sendo que essa, é realizada por meio de
uma matriz relacional no formato padrão da ferramenta (ARFF) e essa pode ser convertida à partir
de arquivos JSONs, CSVs ou ainda por consultas em banco de dados (WITTEN; FRANK; HALL, 2011).

Uma vantagem na utilização do WEKA é que podem ser realizado a limpeza e adequação de
dados, aplicados vários modelos e realizado vários treinamentos, aprendizados e avaliações sem que
o usuário digite uma linha de código sequer, pois com o ambiente gráfico esse processo é facilitado,
todavia, caso o usuário queira trabalhar com o ambiente de comandos, também é possível o que
torna a ferramenta mais robusta e diversificada. Usuários também podem implementar algoritmos
que não existem na ferramenta e disponibilizá-los por meio de um portal (Package Manager) para
que outros usuários possam utilizá-los.

O WEKA também conta com o Auto-WEKA que é uma ferramenta de AutoML, sendo que
quando utilizada o processo de seleção do algoritmo de seleção de atributos, modelo de
classificação, aprendizagem e seus hyper-parâmetros são configurados de maneira automatizada
(KOTTHOFF; LEYTON-BROWN, 2016; THORNTON et al., 2013).

Na figura abaixo é exibida a tela principal do WEKA na aba de classificação (classify) onde é
possível ver que além dessa aba existem outras com diferentes intuitos.
Instalando o Pentaho em ambiente Windows

Como a suíte Pentaho é desenvolvida sobre a linguagem Java, para a instalação dos
programas que compõem a suíte, primeiro é necessário instalar e configurar o Java. Quando se trata
de Java dois pacotes estão disponíveis para a instalação, o primeiro é o mais comum a ser instalado
sendo que ele contém os arquivos e bibliotecas e também a máquina virtual Java (JVM) necessárias
para executar os arquivos do Java (bytecodes), esse pacote é conhecido como JRE (Java Runtime
Environment), sua instalação é bem simples e não possui a necessidade de configurações adicionais,
grande parte dos computadores que utilizam ferramentas desenvolvidas em Java o tem instalado.

Outro pacote do Java que também pode ser instalado é um mais focado em bibliotecas para
desenvolvimento de aplicações, sendo que ele possui compiladores e debugadores necessários para
a criação dos applets e das aplicações. Esse pacote conhecido como JDK (Java Development Toolkit)
além de sua instalação possui a necessidade de configurações adicionais que serão explicadas nesse
capítulo.

Para a instalação do JDK primeiro é necessário acessar o portal do Java e fazer o download
do JDK para a versão específica do seu sistema operacional, na Figura abaixo seleciono o instalador
na versão 8 update 41 para sistemas Windows de 64 bits.
Após o download do instalador basta executá-lo, conforme imagem abaixo

Basta ler os dados nas telas e avançar, atenção para a tela onde será configurado o caminho
de instalação do JDK, você deve informar o caminho e guardar sua localização, pois posteriormente
será necessário, conforme imagem abaixo.
Aguarde então a finalização do processo de instalação

É solicitado então que informe qual local será instalado agora o JRE
Após informar o caminho ou manter o caminho padrão, basta aguardar a instalação do JRE

Após a conclusão da instalação do JRE e do JDK vamos realizar um teste, para isso abra o
prompt de comando indo até o menu iniciar e digitando “CMD”, ou ainda mais rápido, basta usar o
atalho de executar segurando no teclado as teclas “Windows + R” e na caixa que irá abrir digitar
“CMD” e confirmar, conforme abaixo

Abrirá a janela com o terminal de comandos do Windows,digite então o comando


“java -version” sem as aspas

Se for exibida a versão do Java (nesse exemplo “1.8.0_241”) então o JRE está instalado
corretamente, e as aplicações em Java já podem ser executadas nessa máquina.

Vamos então verificar o JDK se está correto, para isso basta digitar no mesmo terminal um
comando bem parecido com o anterior porém ao invés de usar a palavra java usaremos javac, pois
adicionaremos a letra “c” referente a compilador. O comando então ficará conforme o comando
abaixo

“javac -version” sem as aspas, conforme a imagem


Ao digitar o comando teremos uma mensagem de alerta que esse comando não fora
reconhecido, pois embora o JDK tenha sido instalado corretamente, o Windows não consegue o
reconhecer e para que isso seja feito precisamos configurar as Variáveis de Ambiente.

Para se executar um programa dentro de um sistema operacional, é necessário que seja


informado sua localização (caminho) e temos 2 tipos de caminhos, o caminho absoluto que é o
caminho que já estamos familiarizados como por exemplo “C:/Arquivos de Programas/Java/”, sendo
assim sempre que acessarmos esses diretórios vamos ter acesso aos arquivos e programas; porém,
esse não é a única forma de acessar um programa, tem-se também o caminho relativo onde
digitando apenas o nome do programa em qualquer lugar do sistema operacional o mesmo irá
entender qual programa e irá abri-lo. O sistema faz esse processo de abrir o programa pelo caminho
relativo por meio do que está configurado nas Variáveis de Ambiente, sendo que nelas qualquer
programa pode ser configurado de forma que dado um determinado nome, o próprio Sistema
Operacional irá acessar o caminho absoluto e executar o programa.

Vamos então configurar as Variáveis de Ambiente para executarmos o JDK, para isso
abra uma janela no Windows e localize o ícone “Este Computador”, clique então sobre ele com o
botão direito do mouse e vá em “Propriedades”, conforme imagem abaixo

Na tela que irá abrir vá em “Configurações avançadas do sistema”, no canto esquerdo da tela,
conforme imagem abaixo
Na tela que irá abrir vá então em “Variáveis de Ambiente...”

Nessa tela são exibidas todas as variáveis de ambiente configuradas em seu sistema
operacional a parte superior é composta pelas variáveis específicas para seu usuário de acesso, já na
parte inferior são as variáveis globais, portanto, são válidas para todos os logins de usuários. Vamos
adicionar uma nova variável global, portanto, clique no botão “Novo”.
Na tela que irá abrir vamos configurar a primeira variável de ambiente para isso no campo
Nome da variável iremos colocar

JAVA_HOME

No campo “Valor da variável” iremos colocar o caminho onde foi instalado seu JDK,
conforme foi orientado guardar essa informação no momento da instalação, instalei no caminho
padrão

C:\Program Files\Java\jdk1.8.0_241

Após informar esses dados conforme imagem abaixo clica em “Ok”


Após confirmar verifique se a variável estará listada junto as demais conforme
imagem abaixo

Vamos cadastrar a próxima nova variável com o nome

CLASSPATH

E o valor
;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;
%JAVA_HOME%\lib\htmlconverter.jar;%JAVA_HOME%\jre\lib;%JAVA_HOME%\jre\lib\
rt.jar;

Ficando o resultado conforme a imagem abaixo

Por fim precisamos configurar a variável PATH, porém na maioria dos casos essa variável já
encontra-se configurada para outros por programas, se esse for o caso, ao invés de criar uma nova
variável, você precisa apenas editar a variável existente e adicional o valor a ela separando sempre
os valores por ponto e vírgula, sendo que no final ficará a variável

PATH

Com o valor

;%JAVA_HOME%\bin

Conforme figura abaixo

Após configurar as três variáveis de ambiente, volte ao terminal de comandos e digite


novamente o comando javac -version se as variáveis foram configuradas corretamente será exibida a
versão do JDK instalada e configurada, conforme imagem abaixo.
Com o ambiente configurado agora basta instalar os aplicativos da Suíte Pentaho, embora
eles sejam aplicativos diferentes, sua instalação é muito parecida e será exemplificado abaixo a
instalação do Pentaho Data Integration (PDI).

Instalando o Pentaho Data Integration

Para instalar o PDI, é necessário acessar o portal e fazer o download da ferramenta e baixar a
última versão estável, mas atenção, pois o Pentaho conta com 2 versões, a que vamos utilizar é a
versão Comunnity, portanto, observe se a versão que está sendo baixada possui a sigla CE, como na
imagem de exemplo abaixo onde é possível observar o nome do arquivo como “pdi-ce-9.0...”,
portanto trata-se do PDI edição da comunidade (CE) e na versão 9.0,
Após o download, você terá um arquivo compactado, com as bibliotecas e os programas que
o PDI utiliza, basta extrair todos esses arquivos para um diretório a sua escolha e localizar o arquivo
com o nome “Spoon.bat”, abra-o com algum editor de texto, sugiro utilizar o Notepad++ que é bem
completo. Dentro do arquivo existem várias linhas com configurações, vamos configurar então a
quantidade de memória que o Java poderá alocar e utilizar para o PDI, encontre a linha

if “%PENTAHO_DI_JAVA_OPTIONS%”==”” set PENTAHO_DI_JAVA_OPTIONS=

Como estou usando uma máquina simples com 8 Giga de memória RAM, vamos alterar o
valor do parâmetro -Xmx para 6G, dessa forma a quantidade máxima de memória que o Java poderá
alocar para o PDI é 6 Giga, dessa forma podemos executar transformações e jobs no PDI sem que
tenhamos problemas de lentidões, o valor do parâmetro ficará

“Xmx6G”

Conforme imagem abaixo


Depois de alterar essa configuração basta salvar, executar o arquivo “Spoon.bat” e aguardar
o Kettle abrir. Depois de aberto estamos pronto para começar a criar nossos processos de ETL.
Módulo 4 – Big Data
Objetivos de aprendizagem

 Dados estruturados e não estruturados


 O que é Big Data
 O que são os 5Vs

Introdução

Nesta unidade vamos entender quais os tipos de dados,

Vamos estudar os conceitos que definem o termo Big Data.

Vamos aprender e entender o que são os 5Vs.

Dados estruturados, semi-estruturados e não-estruturados

Antes de iniciarmos as definições acerca de Big Data, é de grande importância conhecermos os tipos
de dados mais comuns que podem existir e que são regularmente utilizados, podemos classificar os
dados levando em consideração sua estruturação, e isso faremos logo abaixo.

O primeiro grupo de dados são os dados estruturados, esses, são dados que atendem um padrão,
possuem um esquema ou um formato definido, esses dados são fáceis de visualizar e entender a
olho nu, não sendo necessárias análises mais profundas e/ou complexas. Podemos utilizar como
exemplo o preenchimento de um formulário de cadastro de pessoas físicas composto por campos
como: nome da pessoa, endereço de e-mail, data de nascimento e sexo; esses campos já possuem
basicamente um formato padrão sendo que campos de nome, são campos string e comumente
possuem caracteres do tipo letras e não possui caracteres especiais (@,#,$,-,...) nem números
(0,1,2,3,...); o campo de endereço de e-mails comumente possuem um formato que aceita letras,
números e alguns caracteres especiais e obrigatoriamente deve ter uma cadeia de caracteres um @
e outra cadeia de caracteres sendo que nessa última ao menos um ponto (.) deve aparecer, por
exemplo “endereco_1@siteprovedor.com”; o campo data de nascimento pode ser configurado para
receber apenas caracteres numéricos de mode que seja DD/MM/AAAA; e por fim o campo sexo
pode ser preparado para receber apenas os valores “M” ou “F”.

Dados o exemplo de um formulário de cadastro imagina para um desenvolvedor fazer uma


visualização de uma tabela de dados, mesmo que ele não conheça os dados de estruturação
conforme descritos acima e ele visualize o seguinte resultado:

- Campo1 Campo2 Campo3 Campo4

linha1 Maria de Souza maria_souza2@gmail.com 15/03/1980 F

linha2 Fernando da Silva Gomes fer_479@hotmail.com 13/02/1992 M


linha3 Luiz Ricardo Garcia luiz-ric@empresa-x.net 03/12/1997 M

... ... ... ... ...

Mesmo sem conhecer a estrutura é possível “a olho nu” entender que o campo1 é um campo
textual, o campo2 é um campo de endereços de e-mails, o campo 3 um campo de datas e o campo4
um campo de sexo, isso tudo é possível porque esses dados são estruturados e sua estrutura é
comumente utilizada, portanto, é bastante conhecida. Os dados estruturados geralmente são
arquivados em bancos de dados (SGBD).

Os dados semi-estruturados são aqueles que possuem uma hierarquia, mas pode ser difícil
compreendê-los ou entender o seu padrão, geralmente esses dados são os intermediários entre os
dados estruturados e os não estruturados, como por exemplo dados XML, geralmente existe uma
hierarquia de tags neles, mas não é uma estrutura tão simples como os dados de uma tabela de
banco de dados por exemplo; os dados de páginas HTML também podem ser considerados como
dados semi-estruturados, pois embora as páginas possuam tags específicas, não são dados tão
simples de analisar a olho-nu como os de um cadastro.

Por fim os dados não-estruturados são os dados que não atendem a uma organização clara, não são
dados fáceis de compreender a olho-nu e muitas vezes não possuem um padrão de rápida
compreensão, o que pode os tornar mais difíceis de analisar, porém não são menos importantes. A
maioria dos dados gerados no mundo são dados não estruturados e como exemplo desses dados
podemos considerar os dados de: documentos texto (TXT, DOC), os vídeos, as imagens, os áudios, as
mensagens de textos (SMS), as conversas em chats de atendimentos, as gravações telefônicas, os
dados de sensores de IOT, dentre vários outros.

Para melhor exemplificar o grupo de dados não-estruturados vamos pensar em um documento de


texto do Microsoft Word (DOC ou DOCX), dentro desse documento pode ser escrito qualquer texto,
mas pode também ser inseridos símbolos, fórmulas matemáticas, tabelas, imagens e vários outros
elementos não textuais, isso torna o documento sem uma clara organização e muitas vezes é
impossível encontrar um padrão nesses documentos.

A imagem abaixo ilustra os 3 tipos de dados e torna possível compreender que os dados possuem
estruturas que os diferem entre si:
O que é Big Data?

Nos últimos anos muito tem se falado sobre o termo Big Data (BAO; CHEN, 2014) (TEKINER;
KEANE, 2013) (SRIVASTAVA; DONG, 2013) (BRYNJOLFSSON; MCAFEE, 2012) (GOLDMAN et al., 2012)
(DELSOTO, 2013) (TURKINGTON, 2013). A definição dos autores em (MANYIKA et al., 2011) diz que
Big Data são conjuntos de dados que as tecnologias convencionais não conseguiriam gerenciar, dada
a complexidade e tamanho desse conglomerado de dados. Outro fator importante a se considerar
em Big Data é a velocidade na obtenção de informações sobre uma massiva quantidade de dados.
Em algumas situações uma informação tem que estar disponível em alguns segundos, ou até mesmo
em tempo real, e isso reforça ainda mais a necessidade de uma solução não convencional para essa
categoria de problemas (GOLDMAN et al., 2012) (NANDIMATH et al., 2013).

Ainda não há uma clara definição quando o assunto é Big Data, pois cada autor cita uma
característica diferente e o define de acordo com sua perspectiva (HU et al., 2014). Embora não
existam regras e padrões definidos, uma característica comumente citada pelos autores é que para
ser Big Data o conjunto de dados deve atender três atributos, denominados como “3Vs”: Volume,
Variedade e Velocidade (BRYNJOLFSSON; MCAFEE, 2012). Essa definição é a mais tradicional, e
também a mais aceita encontrada na literatura, e é ela que a IBM, a Gartner e alguns pesquisadores
da Microsoft utilizam (HU et al., 2014). Todavia, existem outras classificações, que levam em
consideração além desses, outros atributos, como por exemplo: a dos “4Vs” que acrescenta o
atributo Valor (HU et al., 2014); ou ainda, a classificação dos “5Vs”, que adiciona também a
Veracidade a essa lista de atributos (SRIVASTAVA; DONG, 2013). Mais adiante iremos dar exemplos
em cada um desses “Vs”.

Grande parte dos dados gerados pelos usuários e por sistemas de informações ou
autonômicos são semiestruturados ou não estruturados, como por exemplo, FAX, e-mail, fotos,
vídeos, logs de sistemas (NANDIMATH et al., 2013). Por esses dados não obedecerem uma estrutura
estática, definida e previsível, torna-se difícil o armazenamento, o processamento, o cruzamento, a
interpretação e a geração de conhecimento sobre eles. Embora os dados tenham uma grande
promessa de valor agregado, é necessário usar estratégias adequadas para extração, mineração e
visualização das informações que porventura ali existam.

Estima-se que 80% de todo dado gerado no mundo são dados não estruturados e isso vem
mudando o cenário, onde antes apenas os dados transacionais estruturados eram analisados e
utilizados pelas empresas, começou-se a perceber que uma série de outros tipos de dados poderiam
entregar informações relevantes que serviriam como estratégias para a tomada de decisões.

Os “5V”s do Big Data

Como definido anteriormente existem 5 características comuns em sistemas de Big Data,


conhecidas como os “5Vs” e vamos demonstrar o domínio de cada um desses “V”s abaixo,
mostrando os exemplos reais em serviços que utilizamos diariamente:

 1º V -> Volume
Facebook Instagram YouTube
1,23 bi usuários ativos/dia 80 milhões de fotos/dia 4 bilhões de visualizações/dia

Whatsapp Wikipedia
1 bilhão de usuários 40 milhões de artigos

 2º V -> Variedade

 3º V -> Velocidade
O infográfico abaixo exibe a quantidade de informações trafegadas a cada minuto na
internet no ano de 2019, é possível observar que serviços que são utilizados diariamente:

 4º V -> Valor

O gráfico abaixo demonstra que quanto maior o tempo menor é o valor dos dados, isso
reforça que além do “V” de tempo existe um “V” de valor desses dados, visto que esses dados
podem oferecer aumento nos lucros de empresas
 5º V -> Veracidade

É possível observar abaixo que do total de dados gerados não são todos os dados que
possuem veracidade, isto é, não são todos os dados que possuem valores financeiros para os
negócios

Dados válidos

Dados muito antigos para analisar


Dados com anomalias
Dados incompletos

Dada essas características em Big Data, é possível observar que ferramentas especiais
precisam ser utilizadas e fortes candidatas a solucionar essas demandas são as ferramentas como:
Apache Hadoop, Apache Spark, Apache Giraph, Apache Hama, Apache Storm, GraphLab, entre
outros. Essas soluções são consideradas tecnologias de análise de Big Data, pois desde o início foram
projetadas para o processamento de um grande volume de dados estruturados, semi-estruturados e
não estruturados.
Diferença entre Big Data e Business Intelligence

Muitas vezes os conceitos de Big Data são confundidos com os de Business Intelligence, mas
os conceitos são diferentes e embora ambos possam usar os mesmos dados possuem objetivos
diferentes que entenderemos então.

Soluções de Big Data possuem o foco na geração, captura e processamento de um grande


volume de dados que atendam os 5Vs, explicados anteriormente; já as soluções de Business
Intelligence são sistemas e softwares que auxiliam a gerar informações a partir de dados que servem
como base para a tomada de decisões. O BI analisa os dados para a tomada de decisões, portanto
ele possui claramente um objetivo específico, já Big Data atua de maneira mais sistema e contínua,
pode-se afirmar que BI responde perguntas e em Big Data muitas vezes as perguntas ainda não são
conhecidas, sendo necessário explorar os dados para tentar encontrar os padrões (perguntas e
respostas) neles.

Uma analogia que pode ser feita é com a produção de um bolo, imagina o Big Data como os
ingredientes: farinha, fermento, ovos, leite, achocolatados, forma e o forno; agora imagina o BI
como um bolo de chocolate finalizado e assado. Muitas vezes ao adquirir os ingredientes no
mercado não tem o objetivo completamente definido e claro, pois os ovos que poderão fazer o bolo
também poderão fazer uma série de outras receitas, entende como muitas vezes o objetivo final do
Big Data é diferente do BI?!

Tem-se estudos que afirmam que a implementação de Big Data em empresas que já
possuem soluções de BI tem seu sucesso aumentado, uma vez que essas empresas já possuem a
“cultura de dados” instituída. Um conceito que tem crescido ultimamente é o de “BI on Big Data”,
sendo que nele são usadas tecnologias de extração de dados de Big Data e esses dados são
transformados em informações que alimentam sistemas de BI que apresentam os dados por meio de
Relatórios, Cubos OLAP multidimensionais e Dashboards. Com isso é possível observar que os
conceitos são diferentes mas podem funcionar em uma espécie de simbiose.
Módulo 5 – Hadoop
Objetivos de aprendizagem

 Aprender o que é o Hadoop


 Quem usa?
 HDFS
 Map Reduce
 YARN

Introdução

Conheceremos o que é o Hadoop.

Vamos conhecer as empresas que usam o Hadoop.

Iremos aprender o que é o HDFS.

Vamos aprender o que é o Map Reduce.

Por fim aprenderemos o que é o YARN.

O que é o Hadoop?

Dentre as várias ferramentas existentes para processamento de Big Data, destaca-se o


Apache Hadoop, que por algum tempo foi considerado o melhor sistema genérico para essa
finalidade. O Apache Hadoop é uma ferramenta (arcabouço) que permite o armazenamento e
processamento de grandes conjuntos de dados, gerenciado pela empresa Apache Software
Foundation, o Hadoop é desenvolvido sobre a linguagem de programação Java e foi inspirado nos
projetos: GFS (Google File System) e MapReduce, ambos do Google (WHITE, 2012) (GOLDMAN et al.,
2012). Ele utiliza um modelo de computação distribuída e de alto desempenho, onde vários nós
(clusters ou grids) podem processar diferentes informações paralelamente, aumentando e
potencializando o poder de processamento com um custo financeiro não tão elevado se comparado
com outras soluções para o mesmo fim. Hadoop é uma única ferramenta, composta por diversos
sub-projetos, que durante sua evolução, foram desenvolvidos para permitir de forma eficiente e
simplificada, resolver os problemas da segurança e integridade dos dados, bem como da tolerância a
falhas e da escalabilidade de cada parte (nós) do seu conjunto (GOLDMAN et al., 2012).

Uma grande vantagem na utilização do Hadoop é que além dele remover a complexidade da
computação distribuída ele trás grandes vantagens do ponto de vista financeiro uma vez que ele
pode utilizar computadores comuns não sendo assim necessários hardwares específicos e de grande
portes; assim como os computadores as redes podem ser redes comuns, evitando assim a
necessidade de equipamentos específicos; como o Hadoop gerencia o cluster, a tolerância a falhas
acaba sendo automática, sendo que isso demanda poucos profissionais administradores do cluster;
por ser uma ferramenta de fácil utilização não é necessário uma número muito grande de
profissionais de programação para desenvolver pequenos e médios projetos; por ser uma
ferramenta que lida com a complexidade da clusterização, os usuários podem focar na regra de
negócios, o que aumenta a produtividade.

A ferramenta é mantida com o código aberto (open-source), portanto, conta com uma
equipe mundial de desenvolvedores que de forma mútua colaboram para a otimização dessa
plataforma, melhorando as ferramentas existentes ou desenvolvendo vários novos componentes
específicos (plug-ins), há também o apoio de grandes corporações que utilizam o Hadoop.

O Apache Hadoop é composto por vários sub-projetos, porém, atualmente, em seu núcleo
principal estão quatro: o Hadoop Common, o Hadoop Distributed File System (HDFS), o Hadoop
MapReduce e o Hadoop YARN. A figura abaixo demonstra a estrutura básica de uma arquitetura
Hadoop onde, na parte inferior está o HDFS que é o responsável pelo armazenamento dos dados de
maneira distribuída entre os nós do cluster; na parte do meio está o YARN que gerenciará os
recursos do cluster; na parte superior está o MapReduce, que irá processar os dados em lotes
(batch) e ao lado dele estão as outras formas de processamento, gerenciamento e acesso a dados,
como por exemplo: o Spark, Storm, Hive, Pig, HBase, entre outros.

Estrutura básica de uma arquitetura Hadoop


Fonte: Adaptado de “YARN - The Architectural Center of Enterprise Hadoop” (2015)

O Hadoop, como já mencionado, dispõe de vários pontos positivos: código aberto,


programação simplificada (MapReduce), tolerância a falhas, transparência em relação as
configurações de clusters ou grids. Esses pontos o fazem ser amplamente utilizado, todavia, para
problemas que não podem ser paralelizáveis, ou seja, problemas que não podem ser divididos em
partes menores e executados simultaneamente, não é a ferramenta mais indicada, assim como para
os problemas com grande dependência entre seus dados. Outros problemas que costumam ser
inviáveis para o processamento em Hadoop são aqueles que possuem uma quantidade de dados
relativamente pequena pois, os custos para dividir, processar e juntar os dados prejudica o processo,
deixando-o moroso (GOLDMAN et al., 2012). Outro ponto a se destacar é que analisando a
arquitetura do Hadoop tanto em White (WHITE, 2012) quanto em Goldman (GOLDMAN et al., 2012),
constata-se que há uma grande dependência da localidade dos dados, ou seja, por mais que o HDFS
tenha uma visão de todo o dado, o MapReduce processa somente os dados que estão armazenados
localmente em cada nó.

Quem usa?

O Hadoop é amplamente utilizado ao redor do mundo, sendo uma tecnologia adotada por
companhias como:1 Google, Airbnb, Uber, Netflix, Microsoft, Amazon, IBM, Spotify, Pinterest,
Alibaba, Twitter, e-Bay, Yahoo, Facebook, LinkedIn, AOL, The New York Times, Last.fm Adobe, dentre
várias outras que utilizam suas soluções.

O projeto do The New York Times começou no ano de 2007, quando foram convertidos para
PDF todos os artigos publicados entre os anos de 1851 e 1980, sendo que cada artigo era composto
por imagens que foram anteriormente digitalizadas e havia a necessidade de redimensioná-las e
posicioná-las de maneira correta no PDF, para isso foi utilizado o Hadoop convertendo 4 Terabytes
de imagens no formato TIFF para 11 milhões de arquivos no formato PDF. Para esse processo foram
utilizadas 100 instâncias de máquinas na nuvem (EC2 da Amazon) durante 24 horas que gerou 1,5 TB
de arquivos PDF e o custo do projeto foi de cerca de U$$ 240,00.

Hadoop Common

O Hadoop Common é um módulo do Hadoop que serve como base para todos os outros
subprojetos, ele possui os utilitários e bibliotecas básicas e necessárias para que todo o ecossistema
Hadoop funcione corretamente.

Hadoop Distributed File System (HDFS)

Grande parte dos sistemas de informações utilizam banco de dados relacionais (RDBMS -
relational database management system) para operações com dados transacionais. Porém, em
algumas situações, estruturas comuns não conseguem processar um grande volume de informações
em um tempo esperado. Nesse caso, uma solução seria utilizar a computação distribuída, mais
especificamente, clusters ou grids, para dividir o processamento e o armazenamento entre as
máquinas (nós). Embora a utilização da computação distribuída seja uma opção, esses sistemas de
gerenciamento de banco de dados (SGBD) podem não se comportar de maneira esperada em um
ambiente de computação distribuída, sendo que sua implementação na maioria das vezes não é
transparente, e é necessário realizar todo o gerenciamento de falhas e a escalabilidade desses
SGBDs, o que pode ser muito complexo e trabalhoso. Para esses casos, pode-se utilizar SGBDs ou os
sistemas de arquivos distribuídos, como HDFS, que foram criados para esses ambientes.

O HDFS é um sistema de arquivos distribuído. Ele abstrai algumas complexidades de uma


“clusterização” e é capaz de deixar invisível ao programador o armazenamento de dados entre
múltiplos componentes (nós), portanto com o HDFS não é necessário se preocupar com os sistemas
de arquivos comuns como NTFS, FAT32, EXTFAT e etc. O HDFS se encarrega de fazer a divisão dos

1 A lista completa pode ser visualizada em: https://cwiki.apache.org/confluence/display/HADOOP2/PoweredBy


dados em partes menores (por padrão, tamanhos fixos de 64 MB), chamadas de blocos, pedaços de
entrada, ou somente pedaços (WHITE, 2012). O próprio HDFS realiza a distribuição dos arquivos e o
gerenciamento entre os nós de armazenamento (GOLDMAN et al., 2012), esses nós podem ser
criados utilizando hardware/computadores comuns (GOLDMAN et al., 2012).

Hadoop MapReduce

O Hadoop MapReduce pode ser considerado como o centro do Hadoop, é a parte onde os
dados são processados. Ele simplifica o desenvolvimento de aplicações paralelas e distribuídas,
fazendo com que não sejam necessários conhecimentos avançados nesse tema, uma vez que o
próprio Hadoop se encarrega de resolver as suas complexas configurações. Dessa forma, o usuário
do Hadoop pode focar seus esforços nas regras de negócios, deixando que o MapReduce se
encarregue do processamento (GOLDMAN et al., 2012). De acordo com uma função definida pelo
usuário, os fragmentos de dados (pedaços de entrada) presentes no HDFS são mapeados (Map) em
cada um dos nós e é atribuída uma chave, ou seja, um valor único que identifica e diferencia esse
fragmento do dado principal. Esses pedaços são então ordenados, armazenados no disco local do nó
e depois da execução do mapeamento, uma cópia do resultado de cada um deles é enviada para o
HDFS do nó que irá fazer a redução (Reduce). Ao receber os pedaços de dados mapeados e
ordenados, eles são fundidos e a função de redução é aplicada sobre eles (WHITE, 2012).

No paradigma de programação paralela MapReduce os problemas são tratados de forma


que:

1. É lida uma ampla quantidade de dados;

2. A função MAP é então aplicada em pedaços de dados e por meio dela são extraídas
algumas informações de valor;

3. É então realizado a mistura e a ordenação (Shuffle & Sort) de cada pedaço


anteriormente mapeado;

4. A função REDUCE é então aplicada onde a mesma junta, compila, filtra, modifica e
etc;

5. Os resultados são persistidos (salvos).

A figura abaixo representa o fluxo de processamento do MapReduce com múltiplas tarefas


de redução. As caixas maiores, com as linhas tracejadas, simulam a existência de mais de um nó. As
setas com as linhas tracejadas, exibem o fluxo de dados dentro de cada nó e as setas com as linhas
contínuas exibem o fluxo de dados entre os nós.
Fluxo de processamento do MapReduce com múltiplas tarefas
Fonte: Traduzido de WHITE (2012, p. 123).

Hadoop YARN

Na primeira geração do Hadoop, o MapReduce era utilizado como uma aplicação e como um
motor (engine) de execução, com o JobTracker sendo o mestre (master) e o TaskTracker sendo o
escravo (slave) (GOLDMAN et al., 2012). O problema é que com esse motor de execução, o Hadoop
permitia somente a execução de aplicações MapReduce, ou seja, somente aplicações em lote. Isso
foi resolvido com o YARN (Yet Another Resource Negotiator), também chamado de MapReduce 2.0
ou ainda MRv2, que é um módulo presente a partir da segunda geração do Hadoop. O YARN é uma
solução para o gerenciamento de clusters Hadoop, separando a parte do
gerenciamento/monitoramento das tarefas do cluster – que antes era feito pelo JobTracker; da
parte do processamento - que antes era feito apenas pelo MapReduce (VAVILAPALLI et al., 2013). O
YARN é uma camada intermediaria entre o MapReduce e o HDFS, e oferece suporte a múltiplas
aplicações e serviços, portanto, com ele, é possíve l estender o Hadoop não apenas para a utilização
com dados em lotes, processados em MapReduce, mas também com dados em tempo real (on-line),
dados em memória, dados de grafos, e de transmissões (streaming). Após o YARN o MapReduce
passou a ser apenas uma das aplicações executadas no Hadoop.
Instalando o Hadoop em ambiente Windows

Assim como o Pentaho, o Hadoop é desenvolvido sobre a linguagem Java, portanto, para sua
instalação é necessário primeiramente instalar o JRE, o JDK e configurar as variáveis de ambiente.
Após a configurações do ambiente é necessário realizar o download do Hadoop, a versão que vamos
usar é a versão 2 do Hadoop, embora já exista a versão 3 com algumas melhorias, para esse tutorial
focaremos na versão 2, mais especificamente na versão 2.10.0 que possui recursos mais que o
suficiente para resolver os problemas mais simples. O sistema operacional que estamos utilizando
nesse tutorial é o Windows 10 - 64 bits.

Para realizar o download basta acessar o portal da Apache através do endereço


https://hadoop.apache.org/releases.html lá as versões são listadas, baixe então utilizando o link
disposto em “Binary download”, após o download basta extrair os arquivos para uma pasta,
recomenda-se utilizar o programa de extração (Winrar por exemplo) como administrador. Nesse
exemplo vamos extrair os arquivos para o diretório raiz do Windows ficando então o caminho do
Hadoop “C:\hadoop-2.10.0\”.

É necessário definir algumas variáveis de ambiente para que o Hadoop seja executado na
máquina, a primeira dela tem o nome de

HADOOP_HOME

O valor dessa variável é onde encontra-se a pasta “bin”, subdiretório de hadoop, conforme
exemplo abaixo

C:\hadoop-2.10.0\

A próxima variável a ser configurada é a PATH, porém a mesma já é utilizada para o Java,
portanto, é necessário editá-la, separar com ponto e vírgula e adicionar o novo valor “;C:\hadoop-
2.10.0\”, sem alterar os valores previamente cadastrados, dessa forma a variável com o nome

PATH
Será acrescida do valor

“;C:\hadoop-2.10.0\”
Ficando com o resultado conforme imagem abaixo

Agora será necessário configurar alguns arquivos XMLs para podermos iniciar o Hadoop,
para editar os arquivos é necessário abrí-los com um programa básico de edição de arquivos textos,
estamos utilizando o Notepad++ que possui uma grande quantidade de recursos de grande utilidade
para esse fim.

O primeiro arquivo que será editado tem o nome “core-site.xml” e encontra-se no caminho
“C:/hadoop-2.10.0/etc/core-site.xml” o arquivo terá que ficar da seguinte maneira

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://localhost:9000</value>

</property>

</configuration>

Feita a configuração basta salvar o arquivo e editar o próximo que será o “C:/hadoop-
2.10.0/etc/hadoop/mapred-site.xml”

<configuration>

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>
</property>

</configuration>

Salvo esse arquivo agora será necessário criarmos alguns diretórios na pasta raiz do Hadoop,
esses diretório serão usados pelo HDFS para armazenar os dados, crie então a pasta “data” dentro
de “C:/hadoop-2.10.0/”, conforme imagem abaixo

Após a criação dessa pasta crie então dentro dela as pastas “datanode” e “namenode”, o
resultado ficará conforme imagem abaixo
Agora edite o arquivo “C:/hadoop-2.10.0/etc/hadoop/hdfs-site.xml” e coloque nele as
informações dos diretórios recém criados, conforme abaixo

<configuration>

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

<property>

<name>dfs.namenode.name.dir</name>

<value>C:/hadoop-2.10.0/data/namenode</value>

</property>

<property>

<name>dfs.datanode.data.dir</name>

<value>C:/hadoop-2.10.0/data/datanode</value>

</property>

</configuration>

Edite então o arquivo “C:/hadoop-2.10.0/etc/hadoop/yarn-site.xml” e adicione a seguinte


informação

<configuration>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<property>

<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>

<value>org.apache.hadoop.mapred.ShuffleHandler</value>

</property>
</configuration>

Agora edite com o um programa de bloco de notas o arquivo “C:/Hadoop-


2.10.0/etc/hadoop/hadoop-env.cmd” e na linha com o comando “JAVA_HOME=%JAVA_HOME%”,
altere para o diretório onde está instalado seu JDK como por exemplo “JAVA_HOME=C:\Program
Files\Java\jdk1.8.0_241”, assim o Hadoop irá utilizar o JDK corretamente, recomenda-se não apagar
a linha anterior, apenas duplicar e comentá-la, lembrando que para comentar arquivos BAT basta
colocar “@rem” no início da linha, dessa forma o resultado ficará conforme imagem abaixo

O próximo passo é baixar 2 arquivos o “winutils.exe” e o “hadoop.dll” e colocá-los dentro da


pasta “C:/hadoop-2.10.0/bin”, esses dois arquivos podem ser baixados através do projeto no github
acessado pelo link https://github.com/steveloughran/winutils lá você seleciona a sua versão de
Hadoop e baixa esses dois arquivos.

Depois de salvo esses 2 arquivos, abra um terminal (prompt) de comando indo até o menu
iniciar e digitando “cmd” execute-o como administrador e digite o comando

hdfs namenode -format


Conforme imagem abaixo

Esse comando irá preparar (formatar) o diretório “data” criado anteriormente para que o
HDFS consiga escrever, ao executar o comando você verá uma mensagem parecida com a abaixo

O próximo passo é então iniciar o Hadoop, para isso, abra um prompt de comando como
administrador, vá até o diretório 2 “C:\Hadoop-2.10.0\sbin” e execute primeiramente o start-
dfs.cmd, esse script irá subir o HDFS e todos os programas e arquivos necessários

2 Para mudar o diretório dentro do prompt de comandos do DOS basta usar o comando “cd DIRETORIO_DE_DESTINO”
Esse script irá então iniciar o HDFS, duas novas janelas serão abertas, uma com o mecanismo
hadoop datanode e outra com o hadoop namenode, conforme tela abaixo. Essa tela não pode ser
fechada, pois caso isso ocorra os programas serão encerrados, nessas telas irão ser descritos os logs
básicos de funcionamento de cada programa.

Posteriormente execute o start-yarn.cmd, esse script irá iniciar o Yarn e os programas


necessários para o cluster funcionar.
Após executar esse script serão abertas duas telas, uma com o YARN resourcemaner e outra
com o YARN nodemanager.

Após executar ambos os scripts o Hadoop estará em execução, para testar abra seu
navegador de internet e digite o endereço http://localhost:8088 irá aparecer a tela de status do
YARN (abaixo), onde é possível obter algumas informações básicas de funcionamento do mesmo

No momento não vamos atentar as informações apenas se está tela estiver aparecendo é
porque o Hadoop YARN fora iniciado, vamos agora verificar se o HDFS iniciou corretamente, para
isso digitaremos no navegador o endereço http://localhost:50070 sendo que nessa tela (abaixo) é
possível ver informações básicas do HDFS.
Caso essas telas estejam funcionando corretamente, o seu ambiente Hadoop já estará
pronto para receber seus programas e arquivos.

Usando o HDFS

Vamos então começar a manipular arquivos no HDFS, para isso, vamos primeiramente criar
um diretório (pasta) diretamente no HDFS utilizando o comando correto, para quem possui
familiaridade com os comandos de sistemas operacionais Linux, não encontrará dificuldades no
HDFS, pois na maioria das vezes os comandos são os mesmos ou então são bem próximos. Para criar
um diretório no HFDS utiliza-se o comando “mkdir” acompanhado do nome do diretório, dessa
forma o comando completo será:

hadoop fs -mkdir teste1

Se formos esmiuçar o comando completo seria

Programa hadoop
Utilitário para manipular arquivos

hadoop fs -mkdir teste1


Nome do diretório
Comando para criar diretórios
Dessa forma ao executar o comando no terminal do Windows será então criado o diretório

No terminal de comando nenhuma mensagem de confirmação é apresentada após criar um


novo diretório, para testarmos vamos no utilitário WEB do HDFS (http://localhost:50070) acessando
na parte superior direita da tela a opção “Utilities -> Browse the file system”, conforme imagem
abaixo

Ao abrir essa página é possível verificar os diretórios e os arquivos presentes no HDFS, é


possível ainda carregar arquivos e baixar (upload e download) arquivos diretamente pela interface
WEB.
Nessa tela pode-se verificar os diretórios e arquivos com algumas colunas de informações
relevantes, na primeira “Permission” é exibida a permissão do diretório usando o padrão do Linux
indo respectivamente da direita para a esquerda onde à direita é o dono do arquivo, ao centro é o
grupo e a direita os outros usuários, sendo que as letras “r” é a permissão para leitura, o “w”
permissão para gravação dos arquivos e “x” permissão para a execução dos arquivos a letra mais a
esquerda se for um “d” é referente a um diretório, se for um “l” é referente a um link e se for um “-”
é um arquivo comum.

A próxima coluna é a “Owner” que indica quem é o dono, do arquivo, seguida por “Group”
que indica qual o grupo de usuários esse arquivo pertence, temos também a coluna “Size” que
indica o tamanho do arquivo ou diretório, em “Last Modified” a data e hora da última alteração, em
“Replication” é exibida em quantas máquinas esse arquivo está replicado, por último a coluna
“Name” com o nome do arquivo ou diretório.

Como já criamos um diretório vamos agora criar outro com o nome teste2, usando o mesmo
comando
Depois de criado o diretório vamos verificar o portal WEB, caso ele já esteja aberto basta
atualizar a página

É possível ver que ambos os diretórios estão criados no HDFS, vamos então apagar esse
diretório que criamos através do terminal de comandos, para isso, usaremos o comando “rm”, que é
um comando padrão para excluir arquivos, vamos passar a ele o parâmetro “-r” pois com ele o
comando realiza uma recursão e apaga além dos arquivos, também o diretório.

Ao executar o comando ele exibe uma mensagem de confirmação no terminal de comandos,


para termos a certeza, vamos voltar à página WEB e verificar que o diretório “teste2” não existe
mais, dessa forma já conseguimos criar um diretório e apagá-lo no HDFS.
Vamos então alterar as permissões de um diretório, pois esse é um passo de grande
importância dentro do HDFS, para isso vamos usar o comando que é o mesmo padrão do Linux, o
“chmod” onde passaremos um número (modal octal) que define a permissão para cada usuário, no
exemplo que vamos aplicar, vamos dar permissões totais para o diretório “teste1” para isso
usaremos o número 7 onde por ele pode-se ler, gravar e executar o diretório, então usaremos o
comando

hadoop fs -chmod 777 /teste1

Onde traduz-se como estou dando uma permissão total (leitura, escrita e execução) para o
dono do diretório, o grupo do diretório e todos os demais usuários para o diretório “teste1”

Após executar o comando podemos ir até a página WEB e verificar que as permissões foram
então alteradas, conforme imagem abaixo
Já sabemos então como criar um diretório, como apagá-lo e como dar permissões no HDFS,
vamos então aprender a publicar arquivos no HDFS, para isso iremos copiar um arquivo que está em
um diretório do computador para um diretório do HDFS, vamos usar o próprio diretório “teste1” que
criamos anteriormente.

O comando utilizado para copiar os arquivos é o “copyFromLocal” sendo que devem ser
passados como parâmetros a ele, a origem do arquivo (caminho local no computador) e o destino
(caminho no HDFS). Criamos um arquivo texto com um texto qualquer e salvamos na pasta raiz do
sistema para podermos copiá-lo

Depois de executar o comando vamos até o portal WEB e podemos ver que o arquivo está lá
No próprio portal WEB é possível apagar, enviar ou baixar esse arquivo para o computador,
vamos fazer o processo de baixá-lo mas através do terminal de comandos, usando o comando
“copyToLocal”, atenção para não confundir com o comando anterior, onde esse é “To” o anterior
era “From”, os comandos são bem parecidos porém agora é invertido os parâmetros, primeiro se
deve informar a localização do arquivo no HDFS e depois onde esse arquivo será salvo no
computador local, sendo que criamos uma pasta local com o nome “baixado_de_hdfs” para não
misturar os arquivos

Após a execução do comando, podemos ir até a pasta local criada e ver que nela encontra-se
o arquivo que baixamos diretamente do HDFS
Essas são as operações básicas sobre arquivos no HDFS.

MATERIAIS DE CONSULTA RECOMENDADOS

Segue abaixo uma lista de materiais de leitura recomendada com os assuntos pertinentes às
aulas dos tópicos anteriores.

Livros

 Título: Big Data: Técnicas e tecnologias para extração de valor dos dados

 Autora: Rosangela Marquesone

 Link: https://www.casadocodigo.com.br/products/livro-big-data

 Título: Big Data: A Revolution that Will Transform how We Live, Work, and Think

 Autores: Viktor Mayer-Schönberger, Kenneth Cukier

 Link: https://books.google.com.br/books?id=uy4lh-
WEhhIC&printsec=frontcover&dq=big+data&hl=pt-BR&sa=X&ved=0ahUKEwj89--
Hh7TpAhUFK7kGHeWJBTQQ6AEIKDAA#v=onepage&q=big%20data&f=false

 Título: Analítica de dados com Hadoop: Uma introdução para cientistas de dados

 Autores: Benjamin Bengfort e Jenny Kim

 Link: https://novatec.com.br/livros/analitica-de-dados-com-hadoop/

 Título: Hadoop: The Definitive Guide

 Autor: Tom White

 Link: http://shop.oreilly.com/product/0636920021773.do

 Título: Business Intelligence For Dummies

 Autor: Swain Scheps

 Link: https://www.wiley.com/en-br/Business+Intelligence+For+Dummies-p-9781118051412
 Título: Decisões com BI (Business Intelligence)

 Autor: Fábio Vinícius Primak

 Link: https://www.lcm.com.br/site/#/livros/detalhesLivro/decisoes-com-b-i---business-
intelligence.html

 Título: Pentaho na Prática

 Autores: Fábio de Salles, Caio Moreno de Souza e Cesar Domingos

 Link: https://www.amazon.com.br/Pentaho-na-Pr%C3%A1tica-ebook/dp/B00CEQFDU0

 Título: Pentaho Kettle Solutions: Building Open Source ETL Solutions with Pentaho Data Integration

 Autores: Matt Casters, Roland Bouman e Jos van Dongen

 Link: https://www.wiley.com/en-
br/Pentaho+Kettle+Solutions%3A+Building+Open+Source+ETL+Solutions+with+Pentaho+Data+Int
egration-p-9780470947524

Artigos acadêmicos

 Título: Big Data: os novos desafios para o profissional da informação

 Autor: Claudio José Silva Ribeiro

 Link: https://periodicos.ufpb.br/ojs/index.php/itec/article/view/19380/11156

 Título: BI na Era do Big Data para Cientistas de Dados

 Autor: Stanley Loh

 Link: http://encurtador.com.br/atRZ6

 Título: Uso Da Ferramenta Pentaho Bi‐Server: Analisando A Violência Contra Mulher, No Estado Do
Rio Grande Do Sul

 Autores: AC Silva, ALC Silva, T de Melo Novaes Viana e MJ Melo

 Link: http://oro.open.ac.uk/45861/1/paper.pdf
 Título: Apache Hadoop: conceitos teóricos e práticos,evolução e novas possibilidades

 Autores: Alfredo Goldman, Fabio Kon, Francisco Pereira Junior, Ivanilton Polato e Rosangela de
Fátima Pereira

 Link:
http://www.inf.ufsc.br/~bosco.sobral/ensino/ine5645/JAI_2012_Cap%203_Apache%20Hadoop.p
df

Sites

 https://www.devmedia.com.br/hadoop-fundamentos-e-instalacao/29466

 https://www.sas.com/pt_br/insights/big-data/hadoop.html

 https://www.knowsolution.com.br/saiba-o-que-e-pentaho-e-por-que-escolhemos-trabalhar-com-
ele/

 https://www.devmedia.com.br/pentaho-bi-conhecendo-a-plataforma-arquitetura-e-
infraestrutura/31502

 https://www.binapratica.com.br/visao-pentaho

 https://inteligencia.rockcontent.com/business-intelligence/

 https://www.siteware.com.br/gestao-estrategica/o-que-e-bi-business-intelligence/

 https://inteligencia.rockcontent.com/big-data/

 https://canaltech.com.br/big-data/o-que-e-big-data/
REFERÊNCIAS

ANTONELLI, R. A. Conhecendo o Business Intelligence ( BI ). Revista Eletrônica da TECAP – Tecnologia


e Contabilidade em Pesquisa, v. 3, p. 79–85, 2009.

BARBIERI, C. BI-Business Intelligence: modelagem e tecnologia. [S.l.: s.n.], 2001. 424 p.ISBN
9788573231489.

BAO, F.; CHEN, J. Visual framework for big data in d3.js. Proceedings -2014 IEEE Workshop on
Electronics, Computer and Applications, IWECA 2014, p. 47–50, 2014.

BRYNJOLFSSON, E.; MCAFEE, A. Big data: the management revolution. Harvard Business Review, v.
90, n. 10, p. 60–68, 128, 2012.

DELSOTO, D. A Influência Do Big Data No Business Intelligence. v. d, 2013.

GOLDMAN, A. et al. Apache Hadoop -Conceitos Teóricos e Práticos, Evolução e Novas


Possibilidades. Csbc, 2012.

HU, H. et al. Toward Scalable Systems for Big DataAnalytics: A Technology Tutorial. IEEE Access, v.
2, p. 652–687, 2014.

LUHN, H. P. A Business Intelligence System.IBM Journal of Research andDevelopment, v. 2, n. 4, p.


314–319, oct 1958. ISSN 0018-8646. Disponível
em:<http://ieeexplore.ieee.org/document/5392644/>.

MARINHEIRO, A.; BERNARDINO, J. Analysis of Open Source Business IntelligenceSuites Análise de


Suites Open Source Business Intelligence. 2013.

SRIVASTAVA, D.; DONG, X. Big data integration. ... 2013 IEEE International Conference on Data ..., p.
1245–1248, 2013.

TEKINER, F.; KEANE, J. A. Big data framework. Proceedings -2013 IEEE International Conference on
Systems, Man, and Cybernetics, SMC 2013, p. 1494–1499, 2013.

THORNTON, C. et al. Auto-WEKA: Combined Selection and HyperparameterOptimization of


Classification Algorithms.Computing Research Repository - CoRR, aug2012. Disponível
em:<http://arxiv.org/abs/1208.3719>.

TURKINGTON, G. Hadoop Beginner’s Guide. 1aEdition ed. BIRMINGHAM -MUMBAI: Packt


Publishing Ltd., 2013.

MANYIKA, J. et al. Big data: The next frontier for innovation, competition, and productivity.
McKinsey Global Institute, n. June, p. 156, 2011.

NANDIMATH, J. et al. Big data analysis using Apache Hadoop. 2013 IEEE 14th International
Conference on Information Reuse & Integration (IRI), p. 700–703, 2013.
VAVILAPALLI, V. K. et al. Apache Hadoop YARN : Yet Another Resource Negotiator. ACM Symposium
on Cloud Computing, p. 16, 2013.

WHITE, T. Hadoop: The Definitive Guide, 3rd edition. Third Edit ed. Sebastopol: O’Reilly Media,
2012. v. 54.

Você também pode gostar