Imagina Formación

¿Qué es Elasticsearch?

Elastic
Intermedio
15

Elasticsearch es un servidor de búsqueda basado en Lucene. Proporciona un motor de búsqueda de texto completo, distribuido y con capacidad multitenencia, que trabaja con documentos JSON.

Con este servidor de búsqueda puedes realizar un procesado masivo de datos e insertarlos a través de un flujo (Logstash), y visualizarlos mediante los dashboards en Kibana.

Escrito en el lenguaje de programación Java. Un lenguaje muy flexible y de gran alcance, además de muy sencillo, lo que permite conocer los datos de la mejor manera posible. Y basado en una licencia Apache (Lucene).

Lleva a cabo la gestión de información, ya sea estructurada o no, de diversas fuentes y la almacena de la forma más eficiente para, de esta manera, optimizar las búsquedas basadas en texto.

En definitiva, Elasticsearch permite buscar, almacenar y analizar gran cantidad de información de la manera más rápida y óptima.

Y, por parte del motor de búsqueda Lucene sobre el que se basa, ofrece capacidades de autocompletado y soporte de geolocalización, además de la búsqueda de texto.

Teniendo toda esta información en cuenta, podríamos definir este servidor de búsqueda como una Base de Datos NoSQL orientada a documentos JSON.

Características

Indexación

Una de las principales características de este servidor es su gran capacidad de indexación.

Y, ¿qué es indexar? Con indexación nos referimos a la acción de insertar información al motor de búsqueda. En el caso de Elastic, se va añadiendo la información a los índices de Apache Lucene, sobre el que se basa.

Orientado a Documentos

Otra de las principales  características  de este motor de búsqueda es que está orientado a documentos, en este caso, JSON.

Pero, ¿qué es un documento JSON? Las siglas pertenecen a JavaScript Object Notation y son un conjunto de campos de objetos pares nombre/valor. Estos campos pueden estar en cualquier orden. Los nombres son cadenas de textos y, por su parte los valores son cadenas de texto, fechas, listas o números.

Esta característica permite que no sea necesaria la definición de esquemas cuando se inserte la información.

También permite, de esta manera, indexar un gran volumen de información que, posteriormente se podrá consultar.

Por último, y teniendo en cuenta que se trata de una Base de Datos NoSQL, los datos se van almacenando de forma desnormalizada y en consecuencia, no permite la acción de desarrollar subqueries o joins.

Escalabilidad

Elasticsearch se organiza en función de nodos. Estos nodos están alojados en un cluster y, en el mismo, se van insertando nuevos nodos en función de la cantidad de información que se va añadiendo.

La forma en la que trabaja esta base de datos distribuida, es escalando de forma dinámica y horizontal toda la información. De esta manera, a mayor cantidad de datos almacenados, va creciendo en nodos hasta poder llegar a la cantidad de petabytes de información.

La distribución de los datos se lleva a cabo a partir de técnicas de sharding. Esta técnica va distribuyendo los documentos en diferentes nodos y esto permite que a la hora de que se realicen búsquedas, el tiempo de respuesta sea mucho menor.

También se utilizan técnicas de réplica. Es decir, la información almacenada se replica en diferentes nodos, y esto permite que el nivel de disponibilidad y tolerancia de fallos sea muy alto.

Cuando se realiza una búsqueda de información, el servidor enruta esta petición al nodo en particular que contenga la información relacionada con dicha búsqueda.

Por último, en el caso de que surgiera algún fallo cuando se realice una búsqueda, el servidor detecta qué nodo está fallando y, de esta manera, reorganiza el almacenamiento de la información, para que así dicha información esté totalmente accesible y en todo momento.

Accesibilidad

La accesibilidad es una característica muy potente de Elastic ya que permite el acceso a la información de forma inminente.

Esta accesibilidad en tiempo real se desarrolla a partir de un API RESTful. Además, cuenta con varias librerías de diferentes lenguajes de programación, como, por ejemplo, JavaScript, Java, C#, PHP y Python.

Por otro lado, este motor de búsqueda dispone de su propio DSL (Query Domain Specific Language) el cual permite hacer diferentes consultas a partir de los documentos JSON.

Gracias a esto, permite desarrollar búsquedas más complejas por ejemplo, por sobre campos y aplicando filtros.

En conclusión, entre sus múltiples características podemos destacar su alto nivel de indexación, gran capacidad de recopilación y almacenamiento de información, así como, el nivel de interoperabilidad y facilidad de integración en el sistema.

También el elevado nivel en cuanto a búsquedas, agregaciones y segmentaciones.

Otra característica a destacar es el alto nivel de soporte en cuanto a volumen de información y de datos estructurados y no estructurados.

En cuanto a la infraestructura, el nivel de mantenimiento que requiere es muy sencillo.

Y, por último, la fácil visualización de datos mediante las dashboards de Kibana.

Uso

Estos son algunos de los principales casos en los que es el uso de Elastic proporciona un resultado óptimo:

Gestor de Logs

Esta herramienta se puede utilizar como gestor de logs y, de esta manera, se desarrollan los distintos sistemas como los servidores, las bases de datos y los sistemas operativos.

Análisis de Seguridad

A partir de la función de gestor de logs y la gran cantidad de información que puede almacenar, se convierte en una herramienta óptima para los entornos de seguridad.

Conectándolo sobre un SIEM se podrá utilizar como base de información.

Buscador de Texto

Y, por supuesto, la función de buscador de texto la cual es su función principal. Gracias al buscador de texto, ofrece respuestas a las búsquedas de información de cualquier aplicación. Principalmente en el caso de que las búsquedas sean libres y, por lo contrario, no se identifiquen en campos estructurados.

En definitiva, el servidor de búsqueda Elasticsearch está basado en Apache Lucene, dispone de un motor de búsqueda de texto completo, orientado a documentos JSON y con una interfaz web RESTful.

Con Elasticsearch, utilizarás de manera experta un motor de búsqueda con el que podrás realizar un procesado masivo de datos, los podrás introducir mediante un flujo y, después visualizarlos de la manera más sencilla y práctica.

 

 

¿Quieres un plan de formación personalizado?

*requerido

  • Responsable de los datos: IMAGINA WEB & MOBILE TECHNOLOGIES S.L.
  • Finalidad de los datos: Responder a la información solicitada, envío de boletines de noticias y ofertas.
  • Destinatarios: IMAGINA WEB & MOBILE TECHNOLOGIES S.L. No se cederán los datos a terceros.
  • Derechos: En cualquier momento puedes acceder, recuperar y borrar tu información.