Elasticsearch: solução para pesquisar em grandes volumes de dados

2 meses atrás 100

O Elasticsearch é um motor distribuído moderno, baseado no Apache Lucene, para pesquisa e análise eficiente de grandes quantidades de dados.

Ao longo dos últimos anos têm aparecido um conjunto de ferramentas bastante interessantes que se adaptam aos "novos" modelos de desenvolvimento de software e construção de plataformas.

Com o constante aumento de informação digital, o tão falado Big Data, é necessário possuir também ferramentas capazes de pesquisar e analisar rapidamente esses dados e apresentar quase de forma instantânea resultados. Uma dessas ferramentas chama-se Elasticsearch! Vamos conhecer melhor esta ferramenta.

Elasticsearch: é possível combinar vários tipos de pesquisas

O Elasticsearch é amplamente utilizado para armazenamento, pesquisa e análise de grandes volumes de dados de forma rápida e em tempo real. Esta solução é altamente escalável e permite que o utilizador combine vários tipos de pesquisas, sendo que os dados também podem ser de vários tipos (ex. dados estruturados, não estruturados, geo, métricas, etc).

Características interessantes do Elasticsearch

Disponibilização de resultados em tempo real Pode ser configurado de forma distribuída Disponibilização de uma API RESTFul Orientado a "documentos", uma vez que os dados são armazenados em forma de "documentos" (no formato JSON)

Conceitos básicos do Elasticsearch

Quem usa o Elasticsearch tem de conhecer alguns conceitos básicos desta ferramenta para perceber como tudo funciona.

Cluster

Um cluster é uma coleção de um ou mais nós (máquinas) que juntos mantêm os dados consistentes e fornecem recursos de indexação e pesquisa.Um cluster é identificado por um nome exclusivo que, por padrão, é "elasticsearch". Esse nome é importante porque um nó só pode fazer parte de um cluster.

Node (Nó)

Um nó é um servidor que faz parte do cluster, armazena os dados e participa no processo de indexação e pesquisa do cluster. Tal como um cluster, um nó é identificado por um nome. Por padrão o nome é um Universally Unique IDentifier (UUID) aleatório atribuído no arranque do nó, mas o utilizador pode alterar o nome de um nó.

Índices, Tipos, documentos

Fazendo uma analogia ao que existe numa base de dados podemos referir que os índices<são as bases de dados (conjunto de documentos com características semelhantes). Por exemplo, podemos um índice para os dados dos clientes, outro índice para o catálogo de produtos e outro índice, por exemplo, para encomendas. Um índice é definido por um nome.

Os Tipos são como as tabelas. Os documentos são os registos, ou seja, a informação que pode ser indexada. Podemos ter um documento para um cliente, para um produto, ou para uma encomenda. Os campos são as colunas das tabelas.

O Elasticsearch tem ainda suporte para um conjunto vasto de linguagens de programação.

O Elasticsearch é utilizado por empresas como, por exemplo, a Google, GitHub, Twitter, SoundCloud, Yelp e Foursquare. Num próximo artigo iremos ensinar a instalar esta poderosa plataforma.

Elasticsearch

Ler artigo completo