SlideShare uma empresa Scribd logo
1 de 47
Person someone = new Person();
someone.Name = "Thiago Barradas";
Job job = new Job();
job.Company = "MundiPagg";
job.Title = "Software Developer";
job.CurrentSkills =
[".NET","Elasticsearch","APIs"];
Study study1 = new Study();
study1.Level = "Graduação";
study1.Course = "Ciência da Computação";
study1.College = "UEZO";
Study study2 = new Study();
study2.Level = "Pós Graduação";
study2.Course = "MIT Mobile Development";
study2.College = "INFNET");
Tópicos da Apresentação

Sobre o Elasticsearch

Conceitos

Instalação

Mapping & Analyzers

Aplicação

Documentação

SDKs

Backup

Plugins

Treinamentos
Sobre o Elasticsearch
Sobre o Elasticsearch

É um servidor de buscas distribuído;

Alta disponibilidade;

Facilmente escalável;

Desenvolvido em Java;

Baseado no Apache Lucene;

Open Source;

Comunicação API Rest (Json/HTTP);

Armazenamento de Documentos;

SDK para diversas linguagens;
Sobre o Elasticsearch

Recuperação rápida de documentos;

Análise de Logs;

Buscas full-text / geolocation;

Aggregations & Analytics;

Alerta e Classificação;

Score Functions;

Autocomplete e highlight;

Documentação bem completa;

Curva de aprendizado fácil;
Quem usa?
Conceitos
Documentos

É armazenado sob um Id único;

Documentos são objetos Json;

Tipos de Dados:

String (text / keyword);

Number;

Geopoint;

Geoshape;

Bool;

Date;

Ipv4;

Array;

Object;
Indíce e Tipos
Banco Relacional Elasticsearch
Banco Índice
Tabela Tipo
Índice Token, Indíce
 Um índice é um container de dados. Cada nó pode hospedar diversos índices;
 Um tipo representa uma classe de documentos semelhantes, mesma estrutura;
 Um tipo possui seus campos definidos e seus campos possuem tokens
(índices) que fazem referência ao documento;
Analogia com banco relacional para facilitar o entendimento:
Cluster, Nós e Shards

Cluster é um conjunto de nós trabalhando juntos;

Todos os nós se comunicam entre si;

Shard é um “pedaço” único de um índice, que pode estar em quaquer nó;

Um shard também pode (e deve) possuir réplicas espalhadas em outros nós;
Instalação
Linux (Ubuntu)
> sudo add-apt-repository ppa:webupd8team/java
> sudo apt-get update
> sudo apt-get install oracle-java7-installer
Instalando o Java
> wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.3.2.deb
> sudo dpkg -i elasticsearch-5.3.2.deb
Instalando o ElasticSearch
> sudo service elasticsearch start
Iniciando o serviço
Windows
Instalando o Java
Download:
https://java.com/pt_BR/download/
Após a instalação, definir variável de ambiente do windows
JAVA_HOME com o caminho da instalação do JRE.
Instalando o ElasticSearch

Download ZIP https://www.elastic.co/downloads/elasticsearch

Descomprimir arquivo, acessar o diretório /bin
> .elasticsearch-service.bat install
> .elasticsearch-service.bat start
Verificando a Instalação
Acesse: http://localhost:9200
Mapping & Analyzers
Mapping

É o processo de definição de como um documento e
seus campos são armazenados e indexados;

Define os tipos de dados dos campos (text, keyword,
date, integer, etc);

É possível definir o tipo da string entre text
(analisável) e keyword (não-analisável);

Permite a criação de sub campos;

Permite a definição de templates para campos
adicionados dinamicamente;
Analyzer

São responsáveis por tratar os dados e
gerar os índices associados a eles;

O dado é quebrado em diversos tokens a
partir dos Tokenizers e Token Filters;

Os tokens são normalizados;

Esse processo é aplicado tanto na
indexação dos documentos quanto na
busca;

Existem diversos tipos de analisadores,
para idiomas específicos, etc, e com
possibilidade de customização;
Índice Invertido

Projetado para permitir uma busca full-text
extremamente rápida;

Consiste em uma lista única com todas as palavras que
aparecem nos documentos e para cada palavra uma
lista de documentos que ela aparece;
Exemplo:

The quick brown fox jumped over the lazy dog

Quick brown foxes leap over lazy dogs in summer
Índice Invertido
Exemplo:

The quick brown fox jumped over the lazy dog

Quick brown foxes leap over lazy dogs in summer
Uma busca por “quick brown”
Índice Invertido
Normalização
Aplicação
Querys
Full-Text
Querys
Highlight
Querys
Autocomplete
Querys
Geolocation
Querys
Aggregations
Documentação
www.elastic.co
SDKs
SDKs
Backup
Backup
PUT /_snapshot/meu_repo
{
"type":"fs",
"settings": {
"location":"C:es-bkp"
}
}
CRIAR REPOSITÓRIO
PUT /_snapshot/meu_repo/meu_snap
CRIAR SNAPSHOT
GET /_snapshot/meu_repo/_all
LISTAR SNAPSHOTS
POST /_snapshot/meu_repo/meu_snap/_restore
RESTAURAR SNAPSHOT
Plugins
Logstash
“Collect, Enrich & Data Transport”

Processa quaisquer dado, de diversas fontes;

Centralizar o processamento de dados de todos os tipos;

Normalizar variando esquema e formatos;

Customização rápida para formatos de log;

Permite facilmente adicionar plugins para fontes de dados personalizados;
Kibana
“Explore & Visualize Your Data”

Dashboard para visualização de dados;

Flexibilidade de análise e plataforma para visualização;

Resumo em real-time e gráficos de streaming de dados;

Interface intuitiva para uma variedade de usuários;

Compartilhamento instantâneo e incorporação de dashboards;
Kibana
Watcher
“Alerting for Elasticsearch”

Alerta e notificação;

Analisar histórico de eventos e dados;

Definição de condições, cronograma, ações;

Integração com diversas ferramentas como JIRA, HipChat e Slack;
Shield
“Security for ElasticSearch”

Provedor de segurança avançada ao seu cluster;

Acesso autenticado para diversos usuários;

Recursos avançados de criptografia;

Acesso com base em funções/permissões, IP;

Pode ser integrado ao AD /LDAP;

Logs de auditoria com acessos e sessões (HIPAA, PCI DSS, FISMA, ISO);
Treinamentos
Treinamentos
Workshop de Elasticsearch
Instalação, configurações e aplicação (demo com C# / .NET)
EM BREVE!
Envie um email para tbarradas@mundipagg.com
OBRIGADO! :)
THIAGO BARRADAS
EMAIL: TBARRADAS@MUNDIPAGG.COM
TELEFONE: (21) 99329-9143
LINKEDIN: THIAGOBARRADAS

Mais conteúdo relacionado

Mais procurados

Oficina postgresql avançado_consegi2010
Oficina postgresql avançado_consegi2010Oficina postgresql avançado_consegi2010
Oficina postgresql avançado_consegi2010
Fabrízio Mello
 

Mais procurados (20)

Tutorial Replicação Slony
Tutorial Replicação SlonyTutorial Replicação Slony
Tutorial Replicação Slony
 
Gerenciamento de endereços ip com php ipam
Gerenciamento de endereços ip com php ipamGerenciamento de endereços ip com php ipam
Gerenciamento de endereços ip com php ipam
 
Aula PIT 3 - Ambientes
Aula PIT 3 - AmbientesAula PIT 3 - Ambientes
Aula PIT 3 - Ambientes
 
Sistemas operacional 9
Sistemas operacional 9Sistemas operacional 9
Sistemas operacional 9
 
Arquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQLArquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQL
 
TDC2018SP | Trilha Ruby - Sequel+ para ActiveRecord Heavy Users
TDC2018SP | Trilha Ruby - Sequel+ para ActiveRecord Heavy UsersTDC2018SP | Trilha Ruby - Sequel+ para ActiveRecord Heavy Users
TDC2018SP | Trilha Ruby - Sequel+ para ActiveRecord Heavy Users
 
07 - Atividade III
07 - Atividade III07 - Atividade III
07 - Atividade III
 
05 servidor dhcp
05   servidor dhcp05   servidor dhcp
05 servidor dhcp
 
Node JS - Parte 2
Node JS - Parte 2Node JS - Parte 2
Node JS - Parte 2
 
TDC2016SP - Trilha .NET
TDC2016SP - Trilha .NETTDC2016SP - Trilha .NET
TDC2016SP - Trilha .NET
 
PDO: TRABALHANDO COM BANCO DO JEITO CERTO
PDO: TRABALHANDO COM BANCO DO JEITO CERTOPDO: TRABALHANDO COM BANCO DO JEITO CERTO
PDO: TRABALHANDO COM BANCO DO JEITO CERTO
 
Performance em Java
Performance em JavaPerformance em Java
Performance em Java
 
Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7
 
MongoDB + PHP
MongoDB + PHPMongoDB + PHP
MongoDB + PHP
 
De A a Zabbix - I Congresso de Ciências Exatas e Tecnológicas
De A a Zabbix - I Congresso de Ciências Exatas e TecnológicasDe A a Zabbix - I Congresso de Ciências Exatas e Tecnológicas
De A a Zabbix - I Congresso de Ciências Exatas e Tecnológicas
 
Entregando conteúdo em ambientes extremos na JVM
Entregando conteúdo em ambientes extremos na JVMEntregando conteúdo em ambientes extremos na JVM
Entregando conteúdo em ambientes extremos na JVM
 
Oficina postgresql avançado_consegi2010
Oficina postgresql avançado_consegi2010Oficina postgresql avançado_consegi2010
Oficina postgresql avançado_consegi2010
 
Alta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQLAlta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQL
 
TDC2016POA | Trilha Python - Construindo um searchengine com python e elastic...
TDC2016POA | Trilha Python - Construindo um searchengine com python e elastic...TDC2016POA | Trilha Python - Construindo um searchengine com python e elastic...
TDC2016POA | Trilha Python - Construindo um searchengine com python e elastic...
 
Instalando o MySQL em menos de 10 minutos
Instalando o MySQL em menos de 10 minutosInstalando o MySQL em menos de 10 minutos
Instalando o MySQL em menos de 10 minutos
 

Semelhante a Palestra Elasticsearch - The Developers Conference - Floripa - 2017

Gerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache AntGerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache Ant
Denis L Presciliano
 
Ferramentas para Automação de Datacenter
Ferramentas para Automação de DatacenterFerramentas para Automação de Datacenter
Ferramentas para Automação de Datacenter
Wilson Lopes
 

Semelhante a Palestra Elasticsearch - The Developers Conference - Floripa - 2017 (20)

TDC2017 | São Paulo - Trilha NOSQL How we figured out we had a SRE team at - ...
TDC2017 | São Paulo - Trilha NOSQL How we figured out we had a SRE team at - ...TDC2017 | São Paulo - Trilha NOSQL How we figured out we had a SRE team at - ...
TDC2017 | São Paulo - Trilha NOSQL How we figured out we had a SRE team at - ...
 
Palestra Elasticsearch - The Developers Conference - São Paulo - 2017
Palestra Elasticsearch - The Developers Conference - São Paulo - 2017Palestra Elasticsearch - The Developers Conference - São Paulo - 2017
Palestra Elasticsearch - The Developers Conference - São Paulo - 2017
 
Android DevConference - Elastic Search como ferramenta de busca em aplicações...
Android DevConference - Elastic Search como ferramenta de busca em aplicações...Android DevConference - Elastic Search como ferramenta de busca em aplicações...
Android DevConference - Elastic Search como ferramenta de busca em aplicações...
 
Workshop Elasticsearch - Android Dev Conference 2016
Workshop Elasticsearch - Android Dev Conference 2016Workshop Elasticsearch - Android Dev Conference 2016
Workshop Elasticsearch - Android Dev Conference 2016
 
Oficina PostgreSQL Básico Latinoware 2012
Oficina PostgreSQL Básico Latinoware 2012Oficina PostgreSQL Básico Latinoware 2012
Oficina PostgreSQL Básico Latinoware 2012
 
TDC 2015 - Rails & Javascript: faça isso direito
TDC 2015 - Rails & Javascript: faça isso direitoTDC 2015 - Rails & Javascript: faça isso direito
TDC 2015 - Rails & Javascript: faça isso direito
 
TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?
 
Apache NiFi com postgresql
Apache NiFi com postgresqlApache NiFi com postgresql
Apache NiFi com postgresql
 
Apache NiFi com PostgreSQL - PGConf.Brasil 2018
Apache NiFi com PostgreSQL - PGConf.Brasil 2018Apache NiFi com PostgreSQL - PGConf.Brasil 2018
Apache NiFi com PostgreSQL - PGConf.Brasil 2018
 
Caché
CachéCaché
Caché
 
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
 
Automação de Data Center
Automação de Data CenterAutomação de Data Center
Automação de Data Center
 
DevOps: desenvolvedores e sysadmins cooperando na prática
DevOps: desenvolvedores e sysadmins cooperando na práticaDevOps: desenvolvedores e sysadmins cooperando na prática
DevOps: desenvolvedores e sysadmins cooperando na prática
 
Modern PHP
Modern PHPModern PHP
Modern PHP
 
Palestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl WorkshopPalestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl Workshop
 
Programação Multiplataforma em Ambiente Web
Programação Multiplataforma em Ambiente WebProgramação Multiplataforma em Ambiente Web
Programação Multiplataforma em Ambiente Web
 
Gerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache AntGerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache Ant
 
Gerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache AntGerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache Ant
 
Ferramentas para Automação de Datacenter
Ferramentas para Automação de DatacenterFerramentas para Automação de Datacenter
Ferramentas para Automação de Datacenter
 
Fluentd/LogStash + elastic search + kibana
Fluentd/LogStash + elastic search + kibanaFluentd/LogStash + elastic search + kibana
Fluentd/LogStash + elastic search + kibana
 

Mais de Thiago Barradas

Mais de Thiago Barradas (6)

Capacity planning - Projetando o seu cluster de Elasticsearch
Capacity planning - Projetando o seu cluster de ElasticsearchCapacity planning - Projetando o seu cluster de Elasticsearch
Capacity planning - Projetando o seu cluster de Elasticsearch
 
Elasticsearch - O motor de busca que está mudando o mercado! @ PHPeste 2019
Elasticsearch - O motor de busca que está mudando o mercado! @ PHPeste 2019Elasticsearch - O motor de busca que está mudando o mercado! @ PHPeste 2019
Elasticsearch - O motor de busca que está mudando o mercado! @ PHPeste 2019
 
Criando componentes e disponibilizando o como opensource em 5 minutos em .NET
Criando componentes e disponibilizando o como opensource em 5 minutos em .NETCriando componentes e disponibilizando o como opensource em 5 minutos em .NET
Criando componentes e disponibilizando o como opensource em 5 minutos em .NET
 
Codacy, CodeClimate, Sonarqube @ 5º DevOps Inside RJ
Codacy, CodeClimate, Sonarqube @ 5º DevOps Inside RJCodacy, CodeClimate, Sonarqube @ 5º DevOps Inside RJ
Codacy, CodeClimate, Sonarqube @ 5º DevOps Inside RJ
 
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
 
Clean Code: Por um mundo com códigos melhores - SETI 2017
Clean Code: Por um mundo com códigos melhores - SETI 2017Clean Code: Por um mundo com códigos melhores - SETI 2017
Clean Code: Por um mundo com códigos melhores - SETI 2017
 

Palestra Elasticsearch - The Developers Conference - Floripa - 2017

  • 1.
  • 2.
  • 3. Person someone = new Person(); someone.Name = "Thiago Barradas"; Job job = new Job(); job.Company = "MundiPagg"; job.Title = "Software Developer"; job.CurrentSkills = [".NET","Elasticsearch","APIs"]; Study study1 = new Study(); study1.Level = "Graduação"; study1.Course = "Ciência da Computação"; study1.College = "UEZO"; Study study2 = new Study(); study2.Level = "Pós Graduação"; study2.Course = "MIT Mobile Development"; study2.College = "INFNET");
  • 4.
  • 5. Tópicos da Apresentação  Sobre o Elasticsearch  Conceitos  Instalação  Mapping & Analyzers  Aplicação  Documentação  SDKs  Backup  Plugins  Treinamentos
  • 7. Sobre o Elasticsearch  É um servidor de buscas distribuído;  Alta disponibilidade;  Facilmente escalável;  Desenvolvido em Java;  Baseado no Apache Lucene;  Open Source;  Comunicação API Rest (Json/HTTP);  Armazenamento de Documentos;  SDK para diversas linguagens;
  • 8. Sobre o Elasticsearch  Recuperação rápida de documentos;  Análise de Logs;  Buscas full-text / geolocation;  Aggregations & Analytics;  Alerta e Classificação;  Score Functions;  Autocomplete e highlight;  Documentação bem completa;  Curva de aprendizado fácil;
  • 11. Documentos  É armazenado sob um Id único;  Documentos são objetos Json;  Tipos de Dados:  String (text / keyword);  Number;  Geopoint;  Geoshape;  Bool;  Date;  Ipv4;  Array;  Object;
  • 12. Indíce e Tipos Banco Relacional Elasticsearch Banco Índice Tabela Tipo Índice Token, Indíce  Um índice é um container de dados. Cada nó pode hospedar diversos índices;  Um tipo representa uma classe de documentos semelhantes, mesma estrutura;  Um tipo possui seus campos definidos e seus campos possuem tokens (índices) que fazem referência ao documento; Analogia com banco relacional para facilitar o entendimento:
  • 13. Cluster, Nós e Shards  Cluster é um conjunto de nós trabalhando juntos;  Todos os nós se comunicam entre si;  Shard é um “pedaço” único de um índice, que pode estar em quaquer nó;  Um shard também pode (e deve) possuir réplicas espalhadas em outros nós;
  • 15. Linux (Ubuntu) > sudo add-apt-repository ppa:webupd8team/java > sudo apt-get update > sudo apt-get install oracle-java7-installer Instalando o Java > wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.3.2.deb > sudo dpkg -i elasticsearch-5.3.2.deb Instalando o ElasticSearch > sudo service elasticsearch start Iniciando o serviço
  • 16. Windows Instalando o Java Download: https://java.com/pt_BR/download/ Após a instalação, definir variável de ambiente do windows JAVA_HOME com o caminho da instalação do JRE. Instalando o ElasticSearch  Download ZIP https://www.elastic.co/downloads/elasticsearch  Descomprimir arquivo, acessar o diretório /bin > .elasticsearch-service.bat install > .elasticsearch-service.bat start
  • 17. Verificando a Instalação Acesse: http://localhost:9200
  • 19. Mapping  É o processo de definição de como um documento e seus campos são armazenados e indexados;  Define os tipos de dados dos campos (text, keyword, date, integer, etc);  É possível definir o tipo da string entre text (analisável) e keyword (não-analisável);  Permite a criação de sub campos;  Permite a definição de templates para campos adicionados dinamicamente;
  • 20. Analyzer  São responsáveis por tratar os dados e gerar os índices associados a eles;  O dado é quebrado em diversos tokens a partir dos Tokenizers e Token Filters;  Os tokens são normalizados;  Esse processo é aplicado tanto na indexação dos documentos quanto na busca;  Existem diversos tipos de analisadores, para idiomas específicos, etc, e com possibilidade de customização;
  • 21. Índice Invertido  Projetado para permitir uma busca full-text extremamente rápida;  Consiste em uma lista única com todas as palavras que aparecem nos documentos e para cada palavra uma lista de documentos que ela aparece; Exemplo:  The quick brown fox jumped over the lazy dog  Quick brown foxes leap over lazy dogs in summer
  • 22. Índice Invertido Exemplo:  The quick brown fox jumped over the lazy dog  Quick brown foxes leap over lazy dogs in summer Uma busca por “quick brown”
  • 32. SDKs
  • 33. SDKs
  • 35. Backup PUT /_snapshot/meu_repo { "type":"fs", "settings": { "location":"C:es-bkp" } } CRIAR REPOSITÓRIO PUT /_snapshot/meu_repo/meu_snap CRIAR SNAPSHOT GET /_snapshot/meu_repo/_all LISTAR SNAPSHOTS POST /_snapshot/meu_repo/meu_snap/_restore RESTAURAR SNAPSHOT
  • 37. Logstash “Collect, Enrich & Data Transport”  Processa quaisquer dado, de diversas fontes;  Centralizar o processamento de dados de todos os tipos;  Normalizar variando esquema e formatos;  Customização rápida para formatos de log;  Permite facilmente adicionar plugins para fontes de dados personalizados;
  • 38. Kibana “Explore & Visualize Your Data”  Dashboard para visualização de dados;  Flexibilidade de análise e plataforma para visualização;  Resumo em real-time e gráficos de streaming de dados;  Interface intuitiva para uma variedade de usuários;  Compartilhamento instantâneo e incorporação de dashboards;
  • 40. Watcher “Alerting for Elasticsearch”  Alerta e notificação;  Analisar histórico de eventos e dados;  Definição de condições, cronograma, ações;  Integração com diversas ferramentas como JIRA, HipChat e Slack;
  • 41. Shield “Security for ElasticSearch”  Provedor de segurança avançada ao seu cluster;  Acesso autenticado para diversos usuários;  Recursos avançados de criptografia;  Acesso com base em funções/permissões, IP;  Pode ser integrado ao AD /LDAP;  Logs de auditoria com acessos e sessões (HIPAA, PCI DSS, FISMA, ISO);
  • 43.
  • 44.
  • 45. Treinamentos Workshop de Elasticsearch Instalação, configurações e aplicação (demo com C# / .NET) EM BREVE! Envie um email para tbarradas@mundipagg.com
  • 47. THIAGO BARRADAS EMAIL: TBARRADAS@MUNDIPAGG.COM TELEFONE: (21) 99329-9143 LINKEDIN: THIAGOBARRADAS