5.1 - Boas Práticas e Desempenho Elasticsearch

5.1 - Boas Práticas e Desempenho Elasticsearch

Elasticsearch é um software open source, que provê uma interface RESTful de pesquisa e análise de dados capaz de solucionar um número crescente de casos de uso. Ele suporta um grande volume de dados sem perder performance, pode ser implementado em qualquer sistema independentemente da plataforma, por fornecer uma API REST. Além disso, o Elasticsearch é altamente escalável, podendo ir de um servidor a muitos servidores simultâneos.

Principais características: 

1 - Pesquisa e análise em tempo real

2 - Distribuído, escalável e alta disponibilidade

3 - Multitenancy — Múltiplos clientes

4 - Full-Text Search — Pesquisa de texto completo

5 - Orientado a documentos .json

6 - Schema-Free — Detecta automaticamente estrutura de dados

7 - API RESTful — Amigável para o desenvolvedor

8 - Segurança de dados, logs de transação

9 - Disponível sob Apache 2 Open Source License

10 - Construído em cima do Apache Lucene


Desempenho

O Elasticsearch é muito rápido, ele fica insuperável em busca de texto completo, é bem adaptado para casos de uso sensíveis ao tempo como análise de dados de segurança e monitoramento de infraestrutura.
Uma vez que é distribuído de fábrica, os documentos armazenados são distribuídos em diferentes containers conhecidos como shards permitindo fazer a escalabilidade horizontal para centenas (talvez milhares) de servidores e manipular petabytes de dados.
Ele possuí inúmeros recursos integrados avançados que tornam o armazenamento e a busca de dados ainda mais eficiente, como os rollups de dados e o gerenciamento do ciclo de vida de índices.
O Elastic Stack simplifica a ingestão, a visualização e os relatórios de dados. A integração com os Beats e o Logstash facilita o processamento dos dados antes de indexar no Elasticsearch. Já o Kibana fornece visualização em tempo real dos dados do Elasticsearch, além de UIs para acessar rapidamente os dados de APM (monitoramento de performance de aplicação), de logs e de metrics de infraestrutura.

Orientações práticas para gerenciar o Elasticsearch

Índice por período de retenção:  Use índices baseados em tempo para gerenciar a retenção de dados sempre que possível, agrupe-os com base no período de retenção. Os índices baseados em tempo também tornam fácil variar o número de réplicas e shards primários com o tempo, uma vez que isso pode ser alterado para o próximo índice a ser gerado. Isso simplifica a adaptação a eventuais alterações feitas em volumes de dados e requisitos.

Os índices e shards não são gratuitos: Para reduzir o número de índices e evitar mapeamentos grandes e dispersos, avalie armazenar dados com estrutura semelhante no mesmo índice em vez de dividi-los em índices separados com base no local de origem dos dados. Mantenha um bom equilíbrio entre o número de índices e shards, e o tamanho do mapeamento para cada índice individual. Como o estado do cluster está carregado no mapa em cada nó (incluindo os mestres), e a quantidade de heap é diretamente proporcional ao número de índices, campos por índice e shards, é importante também monitorar a utilização de heap nos nós mestres e garantir que tenham tamanho apropriado.  

De que maneira o tamanho do shard influencia no desempenho? A melhor maneira de determinar o tamanho máximo de shard do ponto de vista do desempenho das consultas é adotar um parâmetro de comparação usando dados e consultas realistas. Adote um parâmetro de comparação com uma consulta e um representante de carga de indexação daquilo que o nó precisaria manipular em produção, uma vez que otimizar para uma única consulta pode gerar resultados enganosos.

Gerencie o tamanho do shard: Se estiver usando índices baseados no tempo abrangendo um período fixo, ajuste o período que cada índice abrange com base no período de retenção e nos volumes de dados esperados para atingir o tamanho do shard de destino.
Se você tiver dados imutáveis baseados em tempo em que os volumes podem variar significativamente com o tempo, avalie o uso da API de índice de rollover para atingir um tamanho de shard de destino ideal variando dinamicamente o período de tempo que cada índice abrange. Isso oferece ótima flexibilidade e pode ajudar a evitar a necessidade de ter shards muito grandes ou muito pequenos quando os volumes são imprevisíveis.

Este artigo forneceu dicas e orientações práticas sobre como gerenciar melhor os dados no Elasticsearch. Se tiver interesse em saber mais sobre práticas e desempenho, clique aqui.

Para conhecer mais dos conceitos desta plataforma, clique aqui.


    • Related Articles

    • 2.7 - Boas Práticas e Desempenho do MongoDB

      Mais do que armazenar informações, o seu banco de dados é responsável por processá-las com rapidez, portanto é importante que ele conte com espaço de armazenamento e capacidade de processamento. Desempenho Com os seus documentos semelhantes a JSON, o ...
    • 5 - Elasticsearch - Mecanismo de Busca

      Introdução É uma ferramenta de busca altamente escalável, gratuita e Open Source, construída em linguagem Java sobre o Lucine, é uma API de indenização de documentos. Mais especificamente usado para armazenar, buscar, analisar grandes volumes de ...
    • 5.10 - Dicas Monitoramento e Traces Elasticsearch

      Elastic Observability  É uma solução de observabilidade mais amplamente implantada disponível, construída sobre o ELK Stack para convergir métricas, logs e traces, oferecendo visibilidade unificada e insights práticos através da ferramenta APM ...
    • KPIs - Indicadores de Desempenho

      Os relatórios gerados pelo “PlantSuite Alarmes” foram elaborados para atender as exigências das normas EEMUA 191 e ANSI IAS-18.2-2009 e tem como principais funções:       • Incrementar a segurança do processo;       • Auxiliar na identificação de ...
    • Criar backup agendado e Shrink através do SQL Server Agent

      Introdução As vezes um banco de dados SQL Server ocupa muito mais espaço do que realmente é usado pelos dados ou jamais seria usado. Em tais situações, seria ideal reduzir o tamanho do banco de dados e devolver o espaço de armazenamento ao sistema ...