Mobile Development
Big Data Viso Geral e Apache Solr
Juliano Marcos Martins [email protected]
http://jmmwrite.wordpress.com
Disclaimer
Esta apresentao NO FOI cuidadosamente revisada e por isso no esta livre de erros.
Toda critica ser muito bem aceita ;)
As opinies aqui apresentadas so de minha responsabilidade e no tem relao com as empresas/Instituies nas quais trabalhei/trabalho ou tive qualquer tipo de relacionamento.
A quem se destina
Esta apresentao destinada a estudantes e profissionais de TI que esto iniciando o contato com Big Data.
As explicaes e exemplos podem ser superficiais para quem j conhece um pouco sobre o TEMA, inclusive, utilizando termos que visam a didtica.
Big Data
Data is a new Class of economic asset, like currency or gold. Davos, Suia, 2012 World Economic Summit
Introduo
Tecnologia + Metodologia para Capturar, Armazenar e Analisar dados
5 VsVolume
Velocidade
Variedade
Veracidade
Valor
Finalidade: dar subsidios para tomadas de deciso
Muitos dados, Pouca informao
Exemplo
Anlise de sentimento com dados da Web e sociaisDepartamentos de marketing usam feeds do Twitter para realizar anlise de sentimento e determinar o que os usurios esto falando sobre a empresa e seus produtos ou servios, especialmente aps o lanamento 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 demogrficos.
Objetivo: direcionar a empresa em lanamentos de promoes.
Exemplo
Fraudes em plano de sade, abertura de contas
O case Abertura de conta
ONDE, O QU, QUANDO?Dados EstruturadosDados No Estruturados
Armaz. DistribudoMachine Learning, Data MiningClassificao: SVM, Naive-Bayes, logistic regression, K-nearestRegresso: Linear (lasso, ridge), polinomial, etc Clustering: K-means, Spectral clustering, etcReduo Dimensional: Isomap, kernel aprox, PCA, singular value decompositionrvores de DecisoRandom ForestsAnlise de Associao: Apriori, FP-growthModelo Escondido de MarkovNo supervisionadosSupervisionadosContnuoCategrico
ETL / MRDADOSANLISE
ETL: Extract, Transform and Load
MR: Map Reduce
Data WareHouse, Sistemas Legados, Main FrameDispositivos, SMS, Redes Sociais, udio, Vdeo, Geo, Logs
DATA VISUALIZATION - SEARCHCopiado livremente da Apresentao de Jos Damico FEMA Set, 2015
Respostas rpidas
Um pouquinho sobre performanceComo suportar uma aplicao e dar feedbacks em tempo real para os tomadores de deciso, tendo em vista o volume e a velocidades com os quais os dados mudam?
Um banco de dados suportaria a aplicao?
Conhecendo um pouco sobre bases OLTP e DW, exemplo de sistema de billing.
Tecnologias
Datasources: Facebook, Twitter, Blogs, Aplicaes, bancos, Devices (IoT), etc...
Banco de dados NoSQL (Not only Structured Query Language) MongoDB, Cassandra, Hbase
Processamento distribuido: Apache Hadoop/HDFS, Hive, Impala, Pig
Anlise: R, Pentaho, Python
Recursos na nuvem (sob demanda elstico)
Watson Explorer e Apache Solr
O Profissional
O profissional big data (Data Scientist) deve ser multidisciplinar (matemtica, estatstica, modelagem, reconhecimento de padres, IA, DW, ETL, High Performance Computation, etc).
Introduo
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 documentao
Conceitos
Collection
Documents
Shards: A subset of data that is assigned to a server. Collections can have multiple Shards.
Node
Replica: Mirror!
Conceitos
Craw Push Post ScheduleFormas de se efetuar Push
Index
Transform
Search
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;
Facet Example
Price
Passo a Passo
Baixar o solr (http://lucene.apache.org/solr/ )
Descompactar ( tar -xvzf solr-6.0.0.tgz ) (at Linux)
Passo a Passo
Rodar: bin/solr start -e cloud -noprompt
(pode demorar alguns minutos para iniciar aguarde finalizar)
Passo a Passo
Abra no navegador o Admin Console: http://localhost:8983/solr
Passo a Passo
Postando dados:bin/post -c gettingstarted docs/ (docs - pdf, etc)
bin/post -c gettingstarted ../example/exampledocs/*.xml(produtos, etc)
Passo a Passo
Efetuando buscas (observe que o nome da Collection esta na URL)
http://localhost:8983/solr/gettingstarted/browse
Projeto Java
Criaremos um projeto Maven simplesmente pela facilidade de baixar as dependencias. Caso no conhea Maven, basta criar um projeto Java comum, e baixar as dependencias abaixo, colocando no build path do projeto (as verses podem mudar):
Utilizaremos a biblioteca SolrJ!http://wiki.apache.org/solr/Solrj1.3
Projeto Java
Criar projeto Maven, adicionar as dependencias no pom.xml
junitjunit3.8.1test
solr-solrjorg.apache.solr4.1.0jarcompile
org.slf4jslf4j-simple1.7.2
commons-loggingcommons-logging1.1.1
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); } }
}
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);}
}
Projeto Java
Rodando a classe de consulta, iremos buscar os documentos que contenham os critrios definidos.
A classe de Post, insere os dados no Solr.
Recomendo efetuar posts com seus dados e aps isso, brincar com as buscas mudando critrios, 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 aplicao WEB que exibe os dados do solr e permite efetuar buscas.
Limpando o Solr
bin/solr stop -all ; rm -Rf example/cloud/
Thank you
for your dedication and patience!
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.
11/05/16
11/05/16
Top Related