tdc2016poa | trilha bigdata - respostas em tempo real para perguntas complexas com elasticsearch

45
Elasticsearch Aggregations

Upload: tdc-globalcode

Post on 15-Apr-2017

109 views

Category:

Education


1 download

TRANSCRIPT

Page 1: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

Elasticsearch Aggregations

Page 2: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

E eu?2

Waldemar Neto @waldemarnt

http://walde.co/

Page 3: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

Quanto mais, melhor!3

Page 4: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

Vamos falar de que?4

Page 5: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

Vamos falar de que?5

AGGREGATIONS

Page 6: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

Elasticsearch

Page 7: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

” Banon. Shay

7

“Elasticsearch is a search server based on Lucene. It provides a distributed, multitenant-capable full-text search engine

with a RESTful web interface and schema-free JSON documents. Elasticsearch is developed in Java and is released

as open source under the terms of the Apache License.”

Page 8: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

8 Quem usa?

Fonte: https://www.elastic.co/use-cases

Page 9: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

O Apache Lucene9

Page 10: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

REST API10

Page 11: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

Termos comuns

● Cluster● Node● Index● Shard● Replica● Type● Document● Term

11

Page 12: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

Índice invertido, onde a magia acontece

Term Doc_1 Doc_2 Doc_3

Waldemar x x

Bicicleta x x x

Avião x

12

1. Score1.1. Bicicleta 31.2. Waldemar 21.3. Avião 1

Page 13: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

Overview do ecossistema13

CLUSTER

NODE

SHARD REPLICA

Page 14: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

Escalonamento14

CLUSTER

NODE 1 - MASTER

SHARD1 REPLICA3

NODE 2

SHARD2 REPLICA1

NODE 3

SHARD3 REPLICA2

Page 15: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

Indexando um documento15

CLUSTER

NODE 1 - MASTER

SHARD1 REPLICA3

NODE 2

SHARD2 REPLICA1

NODE 3

SHARD3 REPLICA2CLIENT

Page 16: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

Buscando documentos16

CLUSTER

NODE 1 - MASTER

SHARD1 REPLICA3

NODE 2

SHARD2 REPLICA1

NODE 3

SHARD3 REPLICA2CLIENT

Page 17: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

Interagindo com o servidor17

Page 18: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

Estrutura de dados

1. Index2. Type3. Document

18

1 2

3

RESTful Response

Page 19: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

Na linha do RESTful

index

type

document reference(id)

19

parameters

Page 20: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

Mapping

▹ NoSql style▹ Pode ser criado manualmente▹ Pode ser alterado dinamicamente

20

Page 21: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

O que o elasticsearch me oferece?

▹ Queries▹ Filtros▹ Geolocation▹ Aggregations▹ Full Text Search▹ Escalabilidade▹ Comunicação RESTful

21

Page 22: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

O que são aggregations?

Page 23: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

Com aggregations é possível ter um overview dos dados. Ao invés de olhar por documentos

individuais. É possível analisar e classificar completamente um grupo de dados.

23

Page 24: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

Aggregations na vida real!

24

Bora ver na prática?

Page 25: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

25 Buckets

Page 26: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

Itens a serem agrupados26

Page 27: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

Agrupando por marcas27

Page 28: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

Resultado28

Page 29: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

Agrupando por tamanhos29

Page 30: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

Resultado30

Page 31: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

31 Metrics

Page 32: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

32 Valor médio das cervejas

Page 33: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

Tipos de Buckets33

● Children Aggregation● Date Histogram Aggregation● Date Range Aggregation● Filter Aggregation● Filters Aggregation● Geo Distance Aggregation● GeoHash grid Aggregation● Global Aggregation● Histogram Aggregation● IPv4 Range Aggregation

● Missing Aggregation● Nested Aggregation● Range Aggregation● Reverse nested Aggregation● Sampler Aggregation● Significant Terms

Aggregation● Terms Aggregation

Page 34: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

Tipos de Metrics

● Avg Aggregation● Cardinality Aggregation● Extended Stats Aggregation● Geo Bounds Aggregation● Geo Centroid Aggregation● Max Aggregation● Min Aggregation● Percentiles Aggregation● Percentile Ranks Aggregation● Scripted Metric Aggregation

34

● Stats Aggregation● Sum Aggregation● Top hits Aggregation● Value Count Aggregation

Page 35: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

35

Page 36: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

36

Page 37: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

37

Page 38: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

38

Page 39: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

39

Page 40: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

40

Page 41: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

Onde aprende?

Page 42: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

42

Page 43: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

43

Page 44: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

44

E ERAS ISSO

Page 45: TDC2016POA | Trilha BigData - Respostas em tempo real para perguntas complexas com Elasticsearch

Thanks!Perguntas?

https://github.com/waldemarnt

https://twitter.com/waldemarnt

https://fb.com/waldemarnt

http://walde.co

45