SlideShare uma empresa Scribd logo
Introdução ao Elasticsearch
Luiz Henrique Zambom Santana
24 de Fevereiro de 2015
Agenda
•Visão e Histórico
•Conceitos
•Instalação
•Sense
•Desenvolvimento
•Buscas
•Clientes
•Cliente Java
•Bulkload
•Monitoramento
•Problemas
•Plugins
•Arquitetura
Apresentação
•Consultor AdHoc
•Freelancer
•Autor DevMedia
•Doutorando UFSC
Visão
•“flexible and powerful open source,
distributed real-time search and
analytics engine for the cloudcool. bonsai
cool”
Histórico
•Primeira versão lançada em 2010
•Pelo Israelense Shay Banon (https://twitter.com/kimchy)
•Código aberto em:
•https://github.com/elasticsearch/elasticsearch
•Suportado pela empresa Elasticsearch, com sede em Amsterdam
•A Elasticsearch também suporta o Kibana e o Logstash
Conceitos básicos
•Um mecanismo de busca textual
•Não é um banco de dados tradicional, pois:
•Não usa SQL
•Não suporta transações
•Não possui mecanismos de autenticação
•...
•É baseado no Apache Lucene, um framework Java que facilita busca
em textos
Conceitos básicos
•Alguns dos conceitos do ES são derivados do Lucene
•Índice (como um banco de dados)
•Documento, um texto formatado em JSON
•Campo
•Mapeamento
Conceitos básicos – comparação com BDR
Lucene Banco de dados relacional (BDR)
Índice (Index) Esquema
Type Tabela
Documento (JSON) Linha
Campo (Field) Coluna
Mapeamento (Mapping) Estrutura da tabela
Query DSL SQL
Instalação
•A instalação do ES é bastante simples:
•Baixar o zip do site:
•http://www.elasticsearch.org/overview/elkdownloads/
•Deszipar e executar:
•bin/elasticsearch
•Como serviço no Linux:
•apt-get –install elasticsearch
•yum install elasticsearch
•Para verificar se está executando:
•sudo /etc/init.d/elasticsearch start
•curl http://127.0.0.1:9200
•sudo /etc/init.d/elasticsearch stop
Instalação
•/etc/elasticsearch/bin: contém os scripts binários para iniciar e parar
cada nó, usando o comando /bin/elasticsearch start;
•/etc/elasticsearch/conf: contém arquivos de configuração, como o
elasticsearch.yml e o logging.yml;
•/etc/default/elasticseach: que contém as variáveis de ambiente como
tamanho de heap, e quantidade de descritores de arquivos;
•/var/lib/elasticsearch/data: onde se localiza os arquivos de dados
para cada índice, shard alocado para cada nó;
•/var/log/elasticsearch: onde fica os arquivos de log, incluindo o log de
uso e o slowlog;
•/usr/share/elasticsearch/plugins: onde localiza-se os arquivos de
plug-n, sendo que cada plug-in fica contido em um subdiretório
Comandos básicos
•O que podemos fazer com o ES?
•Criar índice
•Criar mapeamento
•Inserir documento
•Recuperar documento
•Alterar documento
•Excluir documento
Vamos usar o Sense
•Ótimo plugin para testar comandos:
Criar um índice
•Forma mais simples:
•PUT /goodname
•Podemos também adicionar configurações na criação desse índice:
PUT / goodname/{
"number_of_shards": 5,
"number_of_replicas": 1,
"analysis": {
"analyzer": {
"sinonimo": {
"tokenizer": "whitespace",
"filter": [ "lowercase", "filtro_sinonimo"]
},
...
Criar mapeamento
•Exemplo de criação de índice e de mapeamento:
POST /goodname/processo/_mapping
{
"processo": {
...(mostrar arquivo)
}
}
Indexar documentos
POST /goodname/processo/1
{
“numero" : “49484/2010",
“interessado" : “CAMARA MUNICIPAL DE NOVA OLIMPIA",
“descricao" : “REPRESENTACAO REF IRREGULARIDADES DA ATUAL
GESTAO, NO QUE SE REFERE AO USO INDEVIDO DE CARRO PARA ATENDER
INTERESSES PESSOAIS/MULTAS DE TRANSITO RECOLHIDAS COM RECURSOS
PUBLICOS, ETC"
}
POST /goodname/processo/2
{
“numero" : “154440/2002",
“relator" : “ANTONIO JOAQUIM",
“descricao" : “CONTRATO Nº 023/C/2002, A PRESTACAO DE
SERVICOS DE MAO DE OBRA NOS CARROS OFICIAIS DA SEDUC NO VALOR DE R$
Processo de busca
•Lista invertida
Processo de busca
•Analisadores
Buscas
•Tipos mais simples
•Match
•Multi match
•Prefix
•Phrase
•Term
•Bool
•Dismax
Buscas – Match All
POST /goodname/processo/_search
{
"query": {
"match_all": {}
}
}
Buscas – Match
POST /goodname/processo/_search
{
"query": {
"match": {
"descricao": "carro"
}
}
}
Buscas - Multi match
POST /goodname/processo/_search
{
"query": {
"multi_match": {
"query": "carro",
"fields": [
"descricao",
"palavrachave"
]
}
}
Buscas - Prefix
POST /goodname/processo/_search
{
"query": {
"prefix" : { "relator" : "ANTONIO" }
}
}
Buscas - Phrase
POST /goodname/processo/_search
{
"query": {
"match_phrase": {
"title": "REPRESENTACAO"
}
}
}
Buscas - Term
POST /goodname/processo/_search
{
"query": {
"term" : { "numero" : "100587/2003" }
}
}
Buscas - Bool
POST /goodname/processo/_search
{
"query": {
"bool": {
"must": [
{}
],
"should": [
{}
],
"must_not": [
Buscas – Dismax (mudança na forma de
calcular o score)
POST /goodname/processo/_search
{
"query": {
"dis_max": {
"tie_breaker": 0.7,
"boost": 1.2,
"queries": [
{
"term": {
"status": "fechado"
Buscas
•Resultado
{
"took": 2,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
…
Arquitetura
Clientes
•Java, Javascript, PHP, Python...
•Em Java
<dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>1.3.2</version></dependency>
Clientes
•O cliente Java permite, por exemplo:
•Realizar buscas
•Criar índice
•Criar mapeamentos
•Verificar estado dos nós
•Realizar atividades de manutenção
Criar um cliente
•Definir
•Nome do cluster
•Endereços de rede
•IMPORTANTE:
•Todos nós do cluster devem ser adicionados ao cliente, isto garante:
•Round-Robin
•O cliente irá procurar os nós disponíveis
Adicionar um documento
public void create(String id, String produto,
String descricao, double preco) throws IOException {
XContentBuilder builder = jsonBuilder()
.startObject()
.field(" produto ", produto)
.field(" descricao ", descricao)
.field(" preco ", preco)
.endObject();
client.prepareIndex(index, type, id)
Buscas
•Tipos de busca
•Item coberto
•Endereço
•Auto complete
•Geográfico
•Importante:
•Também utiliza o XContentBuilder
•Retorno em hits
•Ordenado por score
Bulkload
•Controlar o tamanho do bulk
•Lista de falhas
•Possível enviar indexação, alteração ou exclusão em uma mesma
chamada
Plugins
•Site plugins
•HEAD
•http://localhost:9200/_plugin/head/
•plugin -install mobz/elasticsearch-head
•BigDesk
•http://localhost:9200/_plugin/bigdesk/
•plugin -install lukas-vlcek/bigdesk
•Inquisitor
•https://github.com/polyfractal/elasticsearch-inquisitor
•plugin -install polyfractal/elasticsearch-inquisitor
•plugin --url file:///c:/tmp/elasticsearch-inquisitor-master.zip --install inquisitor
•Synonyms
•Na inicialização de cada nó:
•[2015-01-14 08:54:33,515][INFO ][plugins ] [Seth] loaded [analysis-
phonetic], sites [bigdesk, head, inquisitor]
Curator
•É um script escrito em python, que permite gerenciar os índices do ES
•https://github.com/elasticsearch/curator
•Instalação:
•Instalar pip, gerenciador de pacotes do python, se a máquina tem Python
2.7.9 ou mais novo, o pip já está instalador
•# yum -y install python-pip
•Executar
•pip install elasticsearch-curator
•Configurar o comando de exclusão abaixo para ser executado diariamente
•curator delete --older-than 7 --prefix .marvel-
•
Instalação
•cluster.name: agoodname
•node.name: "anothergoodname"
•discovery.zen.ping.multicast.enabled: false
•discovery.zen.ping.unicast.hosts: ["10.0.0.201", "10.0.0.202",
"10.0.0.203"]
•bootstrap.mlockall: true
•script.disable_dynamic: false
Exemplo de Arquitetura Bulkload
Batch/
Scheduler
ES
1. Extração de arquivos
2. Executa
comando
3. Chamadas
bulk
Exemplo de Arquitetura com Java e BD
Navegador
Navegador
Navegador
Java
ES
1. HTTP
2. HTTP
3. Broadcast para o cluster:
A.Repassa a consulta para
todos os nós
B.Recebe resultados e
ordena de acordo com
score
C.Retorna para o cliente
4. IDs
5. Consulta
por IDs
6. Retorna
valores
completos
7. HTTP
Considerações sobre arquitetura
•Número de threads
•# nó: 3x4 (processadores): 12
•# cluster: 12x4: 48
•For count/search operations. Defaults to fixed with a size of 3x # of available processors,
queue_size of 1000.
•Thread pool
•http://10.2.0.242:9200/_cat/thread_pool
•http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/cat-thread-
pool.html
•Para recuperar as configurações
•http://10.2.0.242:9200/_cluster/settings
•Modificar apenas o tamanho da fila
PUT _cluster/settings
{
"persistent": {},
Considerações sobre arquitetura
•Balanceamento de shards:
•Com os valores padrão o cluster pode entrar em um estado no qual alguns
nós possuem mais shards primários que outros, como ilustrado pelo HEAD.
Nesse caso, os nós 1 e 4 vão receber muito menos chamados que os nós 2 e
3, pois não possuem nós primários.
•Para alterar isso, devemos modificar os padrões de alocação da
seguinte forma:
PUT _cluster/settings
{
"persistent": {},
"transient": {
"threadpool.search.queue_size":2000,
“cluster.routing.allocation.balance.shard”:0.8,
“cluster.routing.allocation.balance.index”:0.2
“cluster.routing.allocation.balance.primary”:0.8,
Considerações sobre arquitetura
•Gargalos possíveis:
•Aumentar paralelismo e concorrência:
•Número de shards
•Número de réplicas
•Aumentar o intervalo de refresh
•Criar índices diários
•Warmers
•Routing ou índice por cliente
•Slowlog
•Curator e Marvel
Considerações sobre arquitetura
•Index alias
•Manualmente
•PUT /nome_index_v1/_alias/nome_index/
•Java
•client.admin().indices().prepareAliases().addAlias("nome_index_v1",
"nome_index").execute().get();
Conclusões
•Rápida evolução
•Setembro/2014: 1.3.1
•Janeiro/2015: 1.4.2
•Instalar Inquisitor e BigDesk em produção
•Analisar desempenho de forma contínua
•Ferramentas como o Marvel
•Outras ferramentas interessantes do Elasticsearch
•Agregação
•Percolation
•Gargalo:
•Bulkload
•Uso do banco de dados
•Uso de Redis
Referências
•https://gist.github.com/reyjrar/4364063
•http://blog.trifork.com/2013/10/24/how-to-avoid-the-split-brain-
problem-in-elasticsearch/
•http://www.elasticsearch.org/blog/performance-considerations-
elasticsearch-indexing/
•https://www.found.no/foundation/optimizing-elasticsearch-searches/
•https://blog.codecentric.de/en/2014/05/elasticsearch-indexing-
performance-cheatsheet/
•https://www.youtube.com/watch?v=LDyxijDEqj4

Mais conteúdo relacionado

Mais procurados

NGSI によるデータ・モデリング - FIWARE WednesdayWebinars
NGSI によるデータ・モデリング - FIWARE WednesdayWebinarsNGSI によるデータ・モデリング - FIWARE WednesdayWebinars
NGSI によるデータ・モデリング - FIWARE WednesdayWebinars
fisuda
 
JAZUG12周年 俺の Azure Cosmos DB
JAZUG12周年 俺の Azure Cosmos DBJAZUG12周年 俺の Azure Cosmos DB
JAZUG12周年 俺の Azure Cosmos DB
Daiyu Hatakeyama
 
OpenIDファウンデーション・ジャパンKYC WGの活動報告 - OpenID Summit 2020
OpenIDファウンデーション・ジャパンKYC WGの活動報告 - OpenID Summit 2020OpenIDファウンデーション・ジャパンKYC WGの活動報告 - OpenID Summit 2020
OpenIDファウンデーション・ジャパンKYC WGの活動報告 - OpenID Summit 2020
OpenID Foundation Japan
 
PostgreSQL失敗談
PostgreSQL失敗談PostgreSQL失敗談
PostgreSQL失敗談
Takashi Meguro
 
システムのモダナイズ 落ちても良いアプリの作り方
システムのモダナイズ 落ちても良いアプリの作り方システムのモダナイズ 落ちても良いアプリの作り方
システムのモダナイズ 落ちても良いアプリの作り方
Chihiro Ito
 
Design pattern talk by Kaya Weers - 2024
Design pattern talk by Kaya Weers - 2024Design pattern talk by Kaya Weers - 2024
Design pattern talk by Kaya Weers - 2024
Kaya Weers
 
AWS Site-to-Site VPN with IKEv2 from CGW under NAT and served with PrivateLink.
AWS Site-to-Site VPN with IKEv2 from CGW under NAT and served with PrivateLink.AWS Site-to-Site VPN with IKEv2 from CGW under NAT and served with PrivateLink.
AWS Site-to-Site VPN with IKEv2 from CGW under NAT and served with PrivateLink.
Namba Kazuo
 
アイデンティティ (ID) 技術の最新動向とこれから
アイデンティティ (ID) 技術の最新動向とこれからアイデンティティ (ID) 技術の最新動向とこれから
アイデンティティ (ID) 技術の最新動向とこれから
Tatsuo Kudo
 
Using JSON Web Tokens for REST Authentication
Using JSON Web Tokens for REST Authentication Using JSON Web Tokens for REST Authentication
Using JSON Web Tokens for REST Authentication
Mediacurrent
 
PostgreSQLアンチパターン
PostgreSQLアンチパターンPostgreSQLアンチパターン
PostgreSQLアンチパターン
Soudai Sone
 
3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal
Toru Makabe
 
Azure Cosmos DB で始める Java + NoSQL 開発
Azure Cosmos DB で始める Java + NoSQL 開発Azure Cosmos DB で始める Java + NoSQL 開発
Azure Cosmos DB で始める Java + NoSQL 開発
Oshitari_kochi
 
CodePipeline入門
CodePipeline入門CodePipeline入門
CodePipeline入門
ryota koyama
 
AWS CognitoからAuth0への移行パターン4つ
AWS CognitoからAuth0への移行パターン4つAWS CognitoからAuth0への移行パターン4つ
AWS CognitoからAuth0への移行パターン4つ
株式会社スタジオメッシュ
 
シングルサインオンの歴史とSAMLへの道のり
シングルサインオンの歴史とSAMLへの道のりシングルサインオンの歴史とSAMLへの道のり
シングルサインオンの歴史とSAMLへの道のりShinichi Tomita
 
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 2.3.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 2.3.0対応)NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 2.3.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 2.3.0対応)
fisuda
 
JSON Web Tokens
JSON Web TokensJSON Web Tokens
JSON Web Tokens
Ivan Rosolen
 
Design Beautiful REST + JSON APIs
Design Beautiful REST + JSON APIsDesign Beautiful REST + JSON APIs
Design Beautiful REST + JSON APIs
Stormpath
 
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
Google Cloud Platform - Japan
 
AWS エンジニア育成における効果的なトレーニング活用のすすめ
AWS エンジニア育成における効果的なトレーニング活用のすすめAWS エンジニア育成における効果的なトレーニング活用のすすめ
AWS エンジニア育成における効果的なトレーニング活用のすすめ
Trainocate Japan, Ltd.
 

Mais procurados (20)

NGSI によるデータ・モデリング - FIWARE WednesdayWebinars
NGSI によるデータ・モデリング - FIWARE WednesdayWebinarsNGSI によるデータ・モデリング - FIWARE WednesdayWebinars
NGSI によるデータ・モデリング - FIWARE WednesdayWebinars
 
JAZUG12周年 俺の Azure Cosmos DB
JAZUG12周年 俺の Azure Cosmos DBJAZUG12周年 俺の Azure Cosmos DB
JAZUG12周年 俺の Azure Cosmos DB
 
OpenIDファウンデーション・ジャパンKYC WGの活動報告 - OpenID Summit 2020
OpenIDファウンデーション・ジャパンKYC WGの活動報告 - OpenID Summit 2020OpenIDファウンデーション・ジャパンKYC WGの活動報告 - OpenID Summit 2020
OpenIDファウンデーション・ジャパンKYC WGの活動報告 - OpenID Summit 2020
 
PostgreSQL失敗談
PostgreSQL失敗談PostgreSQL失敗談
PostgreSQL失敗談
 
システムのモダナイズ 落ちても良いアプリの作り方
システムのモダナイズ 落ちても良いアプリの作り方システムのモダナイズ 落ちても良いアプリの作り方
システムのモダナイズ 落ちても良いアプリの作り方
 
Design pattern talk by Kaya Weers - 2024
Design pattern talk by Kaya Weers - 2024Design pattern talk by Kaya Weers - 2024
Design pattern talk by Kaya Weers - 2024
 
AWS Site-to-Site VPN with IKEv2 from CGW under NAT and served with PrivateLink.
AWS Site-to-Site VPN with IKEv2 from CGW under NAT and served with PrivateLink.AWS Site-to-Site VPN with IKEv2 from CGW under NAT and served with PrivateLink.
AWS Site-to-Site VPN with IKEv2 from CGW under NAT and served with PrivateLink.
 
アイデンティティ (ID) 技術の最新動向とこれから
アイデンティティ (ID) 技術の最新動向とこれからアイデンティティ (ID) 技術の最新動向とこれから
アイデンティティ (ID) 技術の最新動向とこれから
 
Using JSON Web Tokens for REST Authentication
Using JSON Web Tokens for REST Authentication Using JSON Web Tokens for REST Authentication
Using JSON Web Tokens for REST Authentication
 
PostgreSQLアンチパターン
PostgreSQLアンチパターンPostgreSQLアンチパターン
PostgreSQLアンチパターン
 
3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal
 
Azure Cosmos DB で始める Java + NoSQL 開発
Azure Cosmos DB で始める Java + NoSQL 開発Azure Cosmos DB で始める Java + NoSQL 開発
Azure Cosmos DB で始める Java + NoSQL 開発
 
CodePipeline入門
CodePipeline入門CodePipeline入門
CodePipeline入門
 
AWS CognitoからAuth0への移行パターン4つ
AWS CognitoからAuth0への移行パターン4つAWS CognitoからAuth0への移行パターン4つ
AWS CognitoからAuth0への移行パターン4つ
 
シングルサインオンの歴史とSAMLへの道のり
シングルサインオンの歴史とSAMLへの道のりシングルサインオンの歴史とSAMLへの道のり
シングルサインオンの歴史とSAMLへの道のり
 
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 2.3.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 2.3.0対応)NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 2.3.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 2.3.0対応)
 
JSON Web Tokens
JSON Web TokensJSON Web Tokens
JSON Web Tokens
 
Design Beautiful REST + JSON APIs
Design Beautiful REST + JSON APIsDesign Beautiful REST + JSON APIs
Design Beautiful REST + JSON APIs
 
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
 
AWS エンジニア育成における効果的なトレーニング活用のすすめ
AWS エンジニア育成における効果的なトレーニング活用のすすめAWS エンジニア育成における効果的なトレーニング活用のすすめ
AWS エンジニア育成における効果的なトレーニング活用のすすめ
 

Destaque

Primeiros Passos Com Elasticsearch
Primeiros Passos Com ElasticsearchPrimeiros Passos Com Elasticsearch
Primeiros Passos Com Elasticsearch
Anael Ferraz de Carvalho
 
Como o elasticsearch salvou minhas buscas
Como o elasticsearch salvou minhas buscasComo o elasticsearch salvou minhas buscas
Como o elasticsearch salvou minhas buscas
Waldemar Neto
 
DevCommerce Conference 2016: Big data com Elastic Search
DevCommerce Conference 2016: Big data com Elastic SearchDevCommerce Conference 2016: Big data com Elastic Search
DevCommerce Conference 2016: Big data com Elastic Search
iMasters
 
Elasticsearch como gerenciar seus logs com logstash e kibana
Elasticsearch   como gerenciar seus logs com logstash e kibanaElasticsearch   como gerenciar seus logs com logstash e kibana
Elasticsearch como gerenciar seus logs com logstash e kibana
Luiz Henrique Zambom Santana
 
Fazendo mágica com ElasticSearch
Fazendo mágica com ElasticSearchFazendo mágica com ElasticSearch
Fazendo mágica com ElasticSearch
Pedro Franceschi
 
Analisando eventos de forma inteligente para detecção de intrusos usando ELK
Analisando eventos de forma inteligente para detecção de intrusos usando ELKAnalisando eventos de forma inteligente para detecção de intrusos usando ELK
Analisando eventos de forma inteligente para detecção de intrusos usando ELK
SegInfo
 

Destaque (6)

Primeiros Passos Com Elasticsearch
Primeiros Passos Com ElasticsearchPrimeiros Passos Com Elasticsearch
Primeiros Passos Com Elasticsearch
 
Como o elasticsearch salvou minhas buscas
Como o elasticsearch salvou minhas buscasComo o elasticsearch salvou minhas buscas
Como o elasticsearch salvou minhas buscas
 
DevCommerce Conference 2016: Big data com Elastic Search
DevCommerce Conference 2016: Big data com Elastic SearchDevCommerce Conference 2016: Big data com Elastic Search
DevCommerce Conference 2016: Big data com Elastic Search
 
Elasticsearch como gerenciar seus logs com logstash e kibana
Elasticsearch   como gerenciar seus logs com logstash e kibanaElasticsearch   como gerenciar seus logs com logstash e kibana
Elasticsearch como gerenciar seus logs com logstash e kibana
 
Fazendo mágica com ElasticSearch
Fazendo mágica com ElasticSearchFazendo mágica com ElasticSearch
Fazendo mágica com ElasticSearch
 
Analisando eventos de forma inteligente para detecção de intrusos usando ELK
Analisando eventos de forma inteligente para detecção de intrusos usando ELKAnalisando eventos de forma inteligente para detecção de intrusos usando ELK
Analisando eventos de forma inteligente para detecção de intrusos usando ELK
 

Semelhante a Treinamento Elasticsearch - Parte 1

CDI Extensions e DeltaSpike
CDI Extensions e DeltaSpikeCDI Extensions e DeltaSpike
CDI Extensions e DeltaSpike
Rafael Benevides
 
Desenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBDesenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDB
Ari Stopassola Junior
 
Zabbix e KACE, uma boa ideia, e porque não!
Zabbix e KACE, uma boa ideia, e porque não!Zabbix e KACE, uma boa ideia, e porque não!
Zabbix e KACE, uma boa ideia, e porque não!
Fabio Vieira Mello
 
Tutorial visão automação de testes e casper js
Tutorial visão automação de testes e casper jsTutorial visão automação de testes e casper js
Tutorial visão automação de testes e casper js
4ALL Tests
 
Tutorial - Visão sobre Automação de Testes com CasperJS
Tutorial - Visão sobre Automação de Testes com CasperJSTutorial - Visão sobre Automação de Testes com CasperJS
Tutorial - Visão sobre Automação de Testes com CasperJS
Frederico Allan
 
Dsi 015 - poo e php - conexão com bancos de dados usando pdo
Dsi   015 - poo e php - conexão com bancos de dados usando pdoDsi   015 - poo e php - conexão com bancos de dados usando pdo
Dsi 015 - poo e php - conexão com bancos de dados usando pdo
Jorge Luís Gregório
 
Scrum Gathering Rio 2016 - Conteinerizando Testes com Docker Compose
Scrum Gathering Rio 2016 - Conteinerizando Testes com Docker ComposeScrum Gathering Rio 2016 - Conteinerizando Testes com Docker Compose
Scrum Gathering Rio 2016 - Conteinerizando Testes com Docker Compose
Stefan Teixeira
 
Elastic MeetUp Porto Alegre
Elastic MeetUp Porto AlegreElastic MeetUp Porto Alegre
Elastic MeetUp Porto Alegre
Rafael Gomes
 
Mean Stack
Mean StackMean Stack
Mean Stack
Bruno Catão
 
Construindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em GoConstruindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em Go
Alvaro Viebrantz
 
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Daniel Makiyama
 
Diapositivos práticos - Integração de Sistemas.pdf
Diapositivos práticos - Integração de Sistemas.pdfDiapositivos práticos - Integração de Sistemas.pdf
Diapositivos práticos - Integração de Sistemas.pdf
J0071
 
Backbone.js nas trincheiras
Backbone.js nas trincheirasBackbone.js nas trincheiras
Backbone.js nas trincheiras
Lambda 3
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHP
Felipe Ribeiro
 
Azure Functions e Java: Do Desenvolvimento a Produção
Azure Functions e Java: Do Desenvolvimento a ProduçãoAzure Functions e Java: Do Desenvolvimento a Produção
Azure Functions e Java: Do Desenvolvimento a Produção
thomasdacosta
 
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
Raul Oliveira
 
Construindo APIs RESTful com Spring
Construindo APIs RESTful com SpringConstruindo APIs RESTful com Spring
Construindo APIs RESTful com Spring
Mateus Malaquias
 
MongoDB + PHP
MongoDB + PHPMongoDB + PHP
MongoDB + PHP
Ari Stopassola Junior
 

Semelhante a Treinamento Elasticsearch - Parte 1 (20)

CDI Extensions e DeltaSpike
CDI Extensions e DeltaSpikeCDI Extensions e DeltaSpike
CDI Extensions e DeltaSpike
 
Desenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBDesenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDB
 
Hibernate-consultas
Hibernate-consultasHibernate-consultas
Hibernate-consultas
 
Zabbix e KACE, uma boa ideia, e porque não!
Zabbix e KACE, uma boa ideia, e porque não!Zabbix e KACE, uma boa ideia, e porque não!
Zabbix e KACE, uma boa ideia, e porque não!
 
Tutorial visão automação de testes e casper js
Tutorial visão automação de testes e casper jsTutorial visão automação de testes e casper js
Tutorial visão automação de testes e casper js
 
Tutorial - Visão sobre Automação de Testes com CasperJS
Tutorial - Visão sobre Automação de Testes com CasperJSTutorial - Visão sobre Automação de Testes com CasperJS
Tutorial - Visão sobre Automação de Testes com CasperJS
 
Dsi 015 - poo e php - conexão com bancos de dados usando pdo
Dsi   015 - poo e php - conexão com bancos de dados usando pdoDsi   015 - poo e php - conexão com bancos de dados usando pdo
Dsi 015 - poo e php - conexão com bancos de dados usando pdo
 
Scrum Gathering Rio 2016 - Conteinerizando Testes com Docker Compose
Scrum Gathering Rio 2016 - Conteinerizando Testes com Docker ComposeScrum Gathering Rio 2016 - Conteinerizando Testes com Docker Compose
Scrum Gathering Rio 2016 - Conteinerizando Testes com Docker Compose
 
Elastic MeetUp Porto Alegre
Elastic MeetUp Porto AlegreElastic MeetUp Porto Alegre
Elastic MeetUp Porto Alegre
 
Mean Stack
Mean StackMean Stack
Mean Stack
 
Construindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em GoConstruindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em Go
 
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
 
Diapositivos práticos - Integração de Sistemas.pdf
Diapositivos práticos - Integração de Sistemas.pdfDiapositivos práticos - Integração de Sistemas.pdf
Diapositivos práticos - Integração de Sistemas.pdf
 
Javascript aula 01 - visão geral
Javascript   aula 01 - visão geralJavascript   aula 01 - visão geral
Javascript aula 01 - visão geral
 
Backbone.js nas trincheiras
Backbone.js nas trincheirasBackbone.js nas trincheiras
Backbone.js nas trincheiras
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHP
 
Azure Functions e Java: Do Desenvolvimento a Produção
Azure Functions e Java: Do Desenvolvimento a ProduçãoAzure Functions e Java: Do Desenvolvimento a Produção
Azure Functions e Java: Do Desenvolvimento a Produção
 
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
 
Construindo APIs RESTful com Spring
Construindo APIs RESTful com SpringConstruindo APIs RESTful com Spring
Construindo APIs RESTful com Spring
 
MongoDB + PHP
MongoDB + PHPMongoDB + PHP
MongoDB + PHP
 

Mais de Luiz Henrique Zambom Santana

Perspectives on the use of data in Agriculture - Luiz Santana - Leaf Agricult...
Perspectives on the use of data in Agriculture - Luiz Santana - Leaf Agricult...Perspectives on the use of data in Agriculture - Luiz Santana - Leaf Agricult...
Perspectives on the use of data in Agriculture - Luiz Santana - Leaf Agricult...
Luiz Henrique Zambom Santana
 
Apache Sedona: how to process petabytes of agronomic data with Spark
Apache Sedona: how to process petabytes of agronomic data with SparkApache Sedona: how to process petabytes of agronomic data with Spark
Apache Sedona: how to process petabytes of agronomic data with Spark
Luiz Henrique Zambom Santana
 
De Arquiteto para Gerente: como debugar uma equipe
De Arquiteto para Gerente: como debugar uma equipeDe Arquiteto para Gerente: como debugar uma equipe
De Arquiteto para Gerente: como debugar uma equipe
Luiz Henrique Zambom Santana
 
VoltDB: as vantagens e os desafios dos banco de dados NewSQL
VoltDB: as vantagens e os desafios dos banco de dados NewSQLVoltDB: as vantagens e os desafios dos banco de dados NewSQL
VoltDB: as vantagens e os desafios dos banco de dados NewSQL
Luiz Henrique Zambom Santana
 
IBM Watson, Apache Spark ou TensorFlow?
IBM Watson, Apache Spark ou TensorFlow?IBM Watson, Apache Spark ou TensorFlow?
IBM Watson, Apache Spark ou TensorFlow?
Luiz Henrique Zambom Santana
 
Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearch
Uma visão sobre Fast-Data: Spark, VoltDB e ElasticsearchUma visão sobre Fast-Data: Spark, VoltDB e Elasticsearch
Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearch
Luiz Henrique Zambom Santana
 
Banco de dados nas nuvens - aula 3
Banco de dados nas nuvens - aula 3Banco de dados nas nuvens - aula 3
Banco de dados nas nuvens - aula 3
Luiz Henrique Zambom Santana
 
Banco de dados nas nuvens - aula 2
Banco de dados nas nuvens - aula 2Banco de dados nas nuvens - aula 2
Banco de dados nas nuvens - aula 2
Luiz Henrique Zambom Santana
 
Banco de dados nas nuvens - aula 1
Banco de dados nas nuvens - aula 1Banco de dados nas nuvens - aula 1
Banco de dados nas nuvens - aula 1
Luiz Henrique Zambom Santana
 
Workload-Aware RDF Partitioning and SPARQL Query Caching for Massive RDF Gra...
Workload-Aware RDF Partitioning  and SPARQL Query Caching for Massive RDF Gra...Workload-Aware RDF Partitioning  and SPARQL Query Caching for Massive RDF Gra...
Workload-Aware RDF Partitioning and SPARQL Query Caching for Massive RDF Gra...
Luiz Henrique Zambom Santana
 
A middleware for storing massive RDF graphs into NoSQL
A middleware for storing massive RDF graphs into NoSQLA middleware for storing massive RDF graphs into NoSQL
A middleware for storing massive RDF graphs into NoSQL
Luiz Henrique Zambom Santana
 
A Workload-Aware Middleware for Storing Massive RDF Graphs into NoSQL Databases
A Workload-Aware Middleware for Storing Massive RDF Graphs into NoSQL DatabasesA Workload-Aware Middleware for Storing Massive RDF Graphs into NoSQL Databases
A Workload-Aware Middleware for Storing Massive RDF Graphs into NoSQL Databases
Luiz Henrique Zambom Santana
 
Normalização
NormalizaçãoNormalização
Consultas básicas em SQL
Consultas básicas em SQLConsultas básicas em SQL
Consultas básicas em SQL
Luiz Henrique Zambom Santana
 
Processamento em Big Data
Processamento em Big DataProcessamento em Big Data
Processamento em Big Data
Luiz Henrique Zambom Santana
 
Seminário de Andamento de Doutorado
Seminário de Andamento de DoutoradoSeminário de Andamento de Doutorado
Seminário de Andamento de Doutorado
Luiz Henrique Zambom Santana
 
Como modelar, integrar e desenvolver aplicações com múltiplos bancos de dados...
Como modelar, integrar e desenvolver aplicações com múltiplos bancos de dados...Como modelar, integrar e desenvolver aplicações com múltiplos bancos de dados...
Como modelar, integrar e desenvolver aplicações com múltiplos bancos de dados...
Luiz Henrique Zambom Santana
 
Workshop de ELK - EmergiNet
Workshop de ELK - EmergiNetWorkshop de ELK - EmergiNet
Workshop de ELK - EmergiNet
Luiz Henrique Zambom Santana
 
Novidades do elasticsearch 2.0 e como usá-lo com PHP
Novidades do elasticsearch 2.0 e como usá-lo com PHPNovidades do elasticsearch 2.0 e como usá-lo com PHP
Novidades do elasticsearch 2.0 e como usá-lo com PHP
Luiz Henrique Zambom Santana
 

Mais de Luiz Henrique Zambom Santana (20)

Perspectives on the use of data in Agriculture - Luiz Santana - Leaf Agricult...
Perspectives on the use of data in Agriculture - Luiz Santana - Leaf Agricult...Perspectives on the use of data in Agriculture - Luiz Santana - Leaf Agricult...
Perspectives on the use of data in Agriculture - Luiz Santana - Leaf Agricult...
 
Apache Sedona: how to process petabytes of agronomic data with Spark
Apache Sedona: how to process petabytes of agronomic data with SparkApache Sedona: how to process petabytes of agronomic data with Spark
Apache Sedona: how to process petabytes of agronomic data with Spark
 
De Arquiteto para Gerente: como debugar uma equipe
De Arquiteto para Gerente: como debugar uma equipeDe Arquiteto para Gerente: como debugar uma equipe
De Arquiteto para Gerente: como debugar uma equipe
 
VoltDB: as vantagens e os desafios dos banco de dados NewSQL
VoltDB: as vantagens e os desafios dos banco de dados NewSQLVoltDB: as vantagens e os desafios dos banco de dados NewSQL
VoltDB: as vantagens e os desafios dos banco de dados NewSQL
 
IBM Watson, Apache Spark ou TensorFlow?
IBM Watson, Apache Spark ou TensorFlow?IBM Watson, Apache Spark ou TensorFlow?
IBM Watson, Apache Spark ou TensorFlow?
 
Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearch
Uma visão sobre Fast-Data: Spark, VoltDB e ElasticsearchUma visão sobre Fast-Data: Spark, VoltDB e Elasticsearch
Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearch
 
Banco de dados nas nuvens - aula 3
Banco de dados nas nuvens - aula 3Banco de dados nas nuvens - aula 3
Banco de dados nas nuvens - aula 3
 
Banco de dados nas nuvens - aula 2
Banco de dados nas nuvens - aula 2Banco de dados nas nuvens - aula 2
Banco de dados nas nuvens - aula 2
 
Banco de dados nas nuvens - aula 1
Banco de dados nas nuvens - aula 1Banco de dados nas nuvens - aula 1
Banco de dados nas nuvens - aula 1
 
Workload-Aware RDF Partitioning and SPARQL Query Caching for Massive RDF Gra...
Workload-Aware RDF Partitioning  and SPARQL Query Caching for Massive RDF Gra...Workload-Aware RDF Partitioning  and SPARQL Query Caching for Massive RDF Gra...
Workload-Aware RDF Partitioning and SPARQL Query Caching for Massive RDF Gra...
 
A middleware for storing massive RDF graphs into NoSQL
A middleware for storing massive RDF graphs into NoSQLA middleware for storing massive RDF graphs into NoSQL
A middleware for storing massive RDF graphs into NoSQL
 
A Workload-Aware Middleware for Storing Massive RDF Graphs into NoSQL Databases
A Workload-Aware Middleware for Storing Massive RDF Graphs into NoSQL DatabasesA Workload-Aware Middleware for Storing Massive RDF Graphs into NoSQL Databases
A Workload-Aware Middleware for Storing Massive RDF Graphs into NoSQL Databases
 
Normalização
NormalizaçãoNormalização
Normalização
 
SQL Joins
SQL JoinsSQL Joins
SQL Joins
 
Consultas básicas em SQL
Consultas básicas em SQLConsultas básicas em SQL
Consultas básicas em SQL
 
Processamento em Big Data
Processamento em Big DataProcessamento em Big Data
Processamento em Big Data
 
Seminário de Andamento de Doutorado
Seminário de Andamento de DoutoradoSeminário de Andamento de Doutorado
Seminário de Andamento de Doutorado
 
Como modelar, integrar e desenvolver aplicações com múltiplos bancos de dados...
Como modelar, integrar e desenvolver aplicações com múltiplos bancos de dados...Como modelar, integrar e desenvolver aplicações com múltiplos bancos de dados...
Como modelar, integrar e desenvolver aplicações com múltiplos bancos de dados...
 
Workshop de ELK - EmergiNet
Workshop de ELK - EmergiNetWorkshop de ELK - EmergiNet
Workshop de ELK - EmergiNet
 
Novidades do elasticsearch 2.0 e como usá-lo com PHP
Novidades do elasticsearch 2.0 e como usá-lo com PHPNovidades do elasticsearch 2.0 e como usá-lo com PHP
Novidades do elasticsearch 2.0 e como usá-lo com PHP
 

Treinamento Elasticsearch - Parte 1