Introdução a Big Data e Apache Solr

download Introdução a Big Data e Apache Solr

If you can't read please download the document

Transcript of Introdução a Big Data e Apache Solr

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