Apresentação para introduzir alunos a Big Data, mostrando conceitos e um exemplo prático com Java e Apache Solr. Pode ser utilizado por alunos, professores e profissionais de TI que queiram entender de forma prática Big Data.
1. Big Data – Visão Geral e Apache Solr
Juliano Marcos Martins – juliano.jmm@gmail.com
http://jmmwrite.wordpress.com
2. 2
Disclaimer
Esta apresentação NÃO FOI cuidadosamente revisada e por
isso não esta livre de erros.
Toda critica será muito bem aceita ;)
As opiniões aqui apresentadas são de minha
responsabilidade e não tem relação com as
empresas/Instituições nas quais trabalhei/trabalho ou tive
qualquer tipo de relacionamento.
3. 3
A quem se destina
Esta apresentação é destinada a estudantes e profissionais
de TI que estão iniciando o contato com Big Data.
As explicações e exemplos podem ser superficiais para quem
já conhece um pouco sobre o TEMA, inclusive, utilizando
termos que visam a didática.
4. 4
Big Data
“Data is a new Class of economic asset, like
currency or gold.” Davos, Suiça, 2012 – World
Economic Summit
5. 5
Introdução
Tecnologia + Metodologia para → Capturar, Armazenar e Analisar
dados
5 Vs
Volume
Velocidade
Variedade
Veracidade
Valor
Finalidade: dar subsidios para tomadas de decisão
Muitos dados, Pouca informação
6. 6
Exemplo
Análise de sentimento com dados da Web e sociais
Departamentos de marketing usam feeds do Twitter para
realizar análise de sentimento e determinar o que os usuários
estão falando sobre a empresa e seus produtos ou serviços,
especialmente após o lançamento de um novo produto ou
release.
O sentimento do cliente deve ser integrado aos dados de
perfil do cliente para derivar resultados significativos. O
feedback do cliente pode variar de acordo com seus
aspectos demográficos.
Objetivo: direcionar a empresa em lançamentos de
promoções.
8. 8
ONDE,OQUÊ,QUANDO?
Dados Estruturados
Dados Não
Estruturados
Armaz.Distribuído
Machine Learning, Data Mining
Classificação: SVM,
Naive-Bayes, logistic regression,
K-nearest
Regressão: Linear (lasso,
ridge), polinomial, etc
Clustering: K-means,
Spectral clustering, etc
Redução Dimensional:
Isomap, kernel aprox, PCA,
singular value decomposition
Árvores de Decisão
Random Forests
Análise de
Associação: Apriori, FP-
growth
Modelo Escondido de
Markov
Não supervisionados Supervisionados
ContínuoCategórico
ETL¹/MR²
DADOS ANÁLISE
1. ETL: Extract, Transform and Load
2. MR: Map Reduce
Data WareHouse,
Sistemas Legados, Main
Frame
Dispositivos, SMS,
Redes Sociais, Áudio,
Vídeo, Geo, Logs
DATA VISUALIZATION - SEARCH
Copiado livremente da Apresentação de José Damico – FEMA – Set, 2015
9. 9
Respostas rápidas
Um pouquinho sobre performance
Como suportar uma aplicação e dar feedbacks em “tempo
real” para os tomadores de decisão, tendo em vista o
volume e a velocidades com os quais os dados mudam?
Um banco de dados suportaria a aplicação?
Conhecendo um pouco sobre bases OLTP e DW, exemplo
de sistema de billing.
10. 10
Tecnologias
Datasources: Facebook, Twitter, Blogs, Aplicações, bancos,
Devices (IoT), etc...
Banco de dados NoSQL (Not only Structured Query Language) –
MongoDB, Cassandra, Hbase
Processamento distribuido: Apache Hadoop/HDFS, Hive, Impala,
Pig
Análise: R, Pentaho, Python
Recursos na nuvem (sob demanda elástico)
Watson Explorer e Apache Solr
11. 11
O Profissional
O profissional big data (Data Scientist) deve ser multidisciplinar
(matemática, estatística, modelagem, reconhecimento de padrões,
IA, DW, ETL, High Performance Computation, etc).
13. 13
Introdução
http://lucene.apache.org/solr/
O que é o Apache Solr?
“Solr is highly reliable, scalable and fault tolerant, providing
distributed indexing, replication and load-balanced querying,
automated failover and recovery, centralized configuration and
more. Solr powers the search and navigation features of many
of the world's largest internet sites.”
Por que Apache Solr?
Livre
Leve
Boa documentação
16. 16
Field x Facet
We can simple define that the field represent the data itself, and
the facet its such a GROUP, combined usually by volume. As
described at Solr documentation “faceting is the arrangement of
search results into categories based on indexed terms”. Every
Facet have index to be searchable.
Its possible to configure FACETS with many options like sort,
searchable, etc. Each product have its possibilities.
Think that when you perform a query, you will use FACETs in
the “Where”, something like this:
Select FIELDS from COLLECTION where FACET
MY_FACET = ‘dummy’;
22. 22
Passo a Passo
Efetuando buscas (observe que o nome da Collection esta na URL)
http://localhost:8983/solr/gettingstarted/browse
23. 23
Projeto Java
Criaremos um projeto Maven simplesmente pela facilidade de
baixar as dependencias. Caso não conheça Maven, basta criar um
projeto Java comum, e baixar as dependencias abaixo, colocando
no build path do projeto (as versões podem mudar):
Utilizaremos a biblioteca SolrJ!
http://wiki.apache.org/solr/Solrj1.3
24. 24
Projeto Java
Criar projeto Maven, adicionar as dependencias no pom.xml
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>solr-solrj</artifactId>
<groupId>org.apache.solr</groupId>
<version>4.1.0</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.2</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
</dependencies>
25. 25
Projeto Java – Classe Exemplo (consulta)
package com.ibm.solr;
import java.net.MalformedURLException;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
public class SolrJExample {
public static void main(String[] args) throws MalformedURLException, SolrServerException {
// Busca por termo na collection
HttpSolrServer server = new HttpSolrServer("http://localhost:8983/solr/gettingstarted");
SolrQuery query = new SolrQuery();
//query.setQuery( ""Buscar Frase Completa"");
query.setQuery( "id:id1");
//query.setQuery( "*.*"); //buscar tudo
query.setFields("name","price"); // limitando campos na resposta
query.setStart(0);
QueryResponse queryResponse = server.query(query);
for(SolrDocument document: queryResponse.getResults()){
System.out.println(document);
}
}
}
26. 26
Projeto Java – Classe Push
package com.ibm.solr;
import java.io.IOException;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.common.SolrInputDocument;
public class SolrTest2 {
public static void main(String[] args) throws SolrServerException, IOException {
HttpSolrServer server = new HttpSolrServer("http://localhost:8983/solr/gettingstarted");
SolrInputDocument doc1 = new SolrInputDocument();
doc1.addField( "id", "id1" );
doc1.addField( "name", "Celular do Juliano");
doc1.addField( "manu", "Fabrica do Celular do Juliano");
doc1.addField( "price", 10 );
doc1.addField( "popularity", 10 );
server.add(doc1);
}
}
27. 27
Projeto Java
Rodando a classe de consulta, iremos buscar os documentos que
contenham os critérios definidos.
A classe de Post, “insere” os dados no Solr.
Recomendo efetuar posts com seus dados e após isso, brincar
com as buscas mudando critérios, etc.
Os proximos passos em seus estudos podem ser:
Criar um campo facet e efetuar buscas nele
Criar uma collection manualmente, e pesquisar como fazer push
a partir e dados de um banco de dados
Criar uma aplicação WEB que exibe os dados do solr e permite
efetuar buscas.
29. 29
All text and image content in this document is licensed under the Creative Commons Attribution-Share Alike 3.0 License
(unless otherwise specified). Adobe, Google, Apple, Apache, and other are registered trademarks. Their respective logos and
icons are subject to international copyright laws.
Thank you …
… for your dedication and patience!