Elasticsearch - do Search ao Analytics

Elasticsearch - do Search ao Analytics

231001dd9343d90f0ad62b1ea35aeb69?s=128

Big Data Week Rio de Janeiro

October 29, 2016
Tweet

Transcript

  1. 2.

    2 Elasticsearch: Do Search ao Analytics Um pouco sobre mim

    • Desenvolvedor há mais de 10 anos • Utilizo o Elasticsearch desde 2010 (em produção desde v0.90.0) • Recentemente iniciei como Support Engineer na Elastic
  2. 3.

    3 Elastic Overview 70,000+ Community Members estatísticas desde 2012, quando

    a empresa foi criada 70M+ Products Downloads 2,400+ Subscription Customers We aim to help you make your data usable in real time to power mission critical applications that solve today’s real problems
  3. 5.

    5 Elasticsearch is an Open Source (Apache 2), Distributed, RESTful,

    Search Engine built on top of Lucene. http://www.elasticsearch.org - 2011
  4. 6.

    6 Apache LuceneTM is a high-performance, full-featured text search engine

    library written entirely in Java. https://lucene.apache.org/core
  5. 7.

    7 • Full-featured text search engine • Library written entirely

    in Java. ‒ Uma biblioteca Java off-line, acessada localmente. Elasticsearch: Do Search ao Analytics Apache Lucene: Full Text Search Id Texto Ids Termo 1 Amanhã vai chover no Rio de Janeiro 1 amanha 2 Rio de Janeiro tem muita praia! 1 chov 2 praia 1,2 rio ... Inverted Index
  6. 8.

    8 • Full-featured text search engine • Library written entirely

    in Java. ‒ Uma biblioteca Java off-line, acessada localmente. Elasticsearch: Do Search ao Analytics Apache Lucene: Full Text Search Id Texto Ids Termo 1 Amanhã vai chover no Rio de Janeiro 1 amanha 2 Rio de Janeiro tem muita praia! 1 chov 2 praia 1,2 rio ... Inverted Index "Amanhã" => "amanha" "chover" => "chov"
  7. 9.

    9 Elasticsearch: Do Search ao Analytics Apache Lucene: Aggregations Orientado

    a Tuplas Orientado a Colunas id Nome Idade Peso id Nome Idade Peso 1 João 34 81 1 João 34 81 X 2 Maria 51 65 2 Maria 51 65 3 José 53 76 3 José 53 76 Agregações mais rápidas AVG(Idade) = 46 SUM(Peso) = 222
  8. 10.

    10 Elasticsearch: Do Search ao Analytics Elasticsearch $ curl -XPOST

    'localhost:9200/twitter/tweet/' -d '{ "user" : "kimchy", "post_date" : "2009-11-15T14:12:12", "message" : "trying out Elasticsearch" }' HTTP + JSON Um index no Elasticsearch é composto por 1 ou mais shards e cada shard com 0 ou mais réplicas
  9. 11.

    11 Elasticsearch: Do Search ao Analytics Elasticsearch: v0.90.0 (2013) •

    Alta Disponibilidade • Escalabilidade Horizontal • API RESTful • Busca Full Text • Busca Multifaceted: ‒ Term ‒ Histogram ‒ Range ‒ etc...
  10. 12.

    12 "That's the end goal of Elasticsearch: we want to

    make data exploration, the ability to ahead and ask questions on your data and get results in milliseconds, available to end users." Shay Banon dotScale 2013
  11. 13.

    13 Elasticsearch: Do Search ao Analytics Elasticsearch Aggregations • Buckets

    Aggregations: Agrupa documentos em buckets, segundo algum critério. Exemplos: ‒ Histogram/Date Histogram ‒ Terms/Significant Terms ‒ Range ‒ GeoHash Grid ‒ etc... • Metrics Aggregations: Calcula métricas de documentos agrupados em buckets. Exemplos: ‒ Mínimo, Máximo, Média, etc… ‒ Percentis ‒ Geo Bounds/Geo Centroids ‒ Scripted ‒ etc... • Pipeline Aggregations: Agrega os valores de saída de outras agregações. Exemplos: ‒ Média Móvel ‒ Mínimo, Máximo, Média, etc... ‒ Percentis ‒ Soma Acumulativa ‒ etc...
  12. 14.

    14 Elasticsearch: Do Search ao Analytics Buckets e Metrics Aggregations

    Log Acesso Website COUNT(*) = 3526 AVG(size) = 432.47 TERMS(browser) FIREFOX CHROME SAFARI COUNT(*) = 1492 MAX(version) = 1881 COUNT(*) = 1232 MAX(version) = 310 COUNT(*) = 802 MAX(version) = 9 DATE_HISTOGRAM(hour, timestamp) ... ACCESS_LOG timestamp: datetime size: integer browser: string version: integer DATE_HISTOGRAM(hour, timestamp) ... DATE_HISTOGRAM(hour, timestamp) ...
  13. 15.

    15 Elasticsearch: Do Search ao Analytics Pipeline Aggregations Log Acesso

    Website FIREFOX CHROME SAFARI COUNT(*) = 1492 MAX(version) = 1881 COUNT(*) = 1232 MAX(version) = 310 COUNT(*) = 802 MAX(version) = 9 MAX(COUNT(*)) = 1492 ACCESS_LOG timestamp: datetime size: integer browser: string version: integer COUNT(*) = 3526 AVG(size) = 432.47 TERMS(browser) DATE_HISTOGRAM(hour, timestamp) ... DATE_HISTOGRAM(hour, timestamp) ... DATE_HISTOGRAM(hour, timestamp) ...
  14. 18.

    18 Elasticsearch: Do Search ao Analytics Elastic Stack 5.0 •

    Nova identidade visual • Release unificado • X-Pack: Pacote de Plugins
  15. 19.

    19 Muito Obrigado! DÚVIDAS? Thiago Souza thiago@elastic.co https://elastic.co/v5 https://elastic.co/docs https://elastic.co/blog

    https://discuss.elastic.co https://meetup.com/Rio-de-Janeiro-Elastic-Fantastics (próximo meetup 8 de novembro na Stone Pagamentos)