A Bismart fem servir el motor de cerca Elasticsearch en molts dels nostres projectes. En aquesta entrada t'expliquem 7 de les seves característiques.
7 coses que has de saber si t'estàs plantejant implantar Elasticsearch
Elasticsearch és un dels motors de cerca més populars actualment. Gestiona informació estructurada i no estructurada de múltiples fonts, que emmagatzema de forma sofisticada i eficient per a poder optimitzar cerques basades en llenguatge/text. Mitjançant Elastic pots emmagatzemar, buscar i analitzar grans volums d'informació de forma ràpida i eficient.
A Bismart implementem l'stack Elasticsearch, fem una avaluació del tipus de projecte i t'orientem en l'elecció de l'arquitectura més indicada, eficient i econòmica. Disposem de totes les capacitats per configurar i desenvolupar projectes a la plataforma Elasticsearch, així com integrar-la i complementar-la amb altres solucions.
Aquestes són algunes de les característiques que han convertit Elasticsearch en el motor de cerca que destaca com un dels més eficients:
1. Alta capacitat d'indexació, alt I/O
Elasticsearch es caracteritza per permetre indexar grans quantitats de dades amb alta eficiència, les quals es poden consultar després molt ràpidament. Es basa en un projecte open source anomenat Apatxe Lucene que consisteix en un motor d'indexació i cerca molt potent. Aquesta alta capacitat d'indexació es deu, en part, al fet que és un sistema distribuït i, per una altra, al fet que disposa d'un sistema de cua de missatges i transformació de dades d'alta capacitat dins de l'stack, anomenat logstash.
2. Alta capacitat d'ingestió de dades, interoperabilitat i facilitat d'integració
La ingestió de dades és molt ràpida, potent i escalable, fins i tot en temps real gràcies a un conjunt de mòduls anomenats Beats. Els Beats són agents que transporten en streaming certes dades directament a Elasticsearch o bé a logstashen el cas que fes falta algun tipus de manipulació o transformació.
En funció de les necessitats del sistema podem optar per instal·lar un o diversos d'aquests beats: Filebeat (documents com logs), Metricbeat (per a ser usat com recopilador de mètriques de serveis com a Apatxe, MariaDB, nginx, …), Packetbeat(dades de xarxa), Winlogbeat (logs i mètriques de Windows) i altres tipus.
Encara que Logstash ja actua com a cua de missatges, el mateix Logstash s'integra perfectament amb altres sistemes de cues com Kafka o RabbitMQ, la qual cosa permet una capacitat d'absorció de dades immensa.
Elasticsearch exposa una API Rest per a accedir a les dades i crear cerques complexes amb el seu propi llenguatge DSL. És possible també crear cerques amb llenguatge tipus SQL. Atès que la porta d'entrada és una APIRest, permet integracions fàcilment amb nombrosos llenguatges de programació, com a C#, Javascript, Ruby, Python, PHP i uns altres. Tot això es tradueix que es pot interoperar de forma transparent en qualsevol plataforma de forma senzilla i immediata.
3. Alta velocitat de consultes, agregacions, segmentacions
Elasticsearch es caracteritza per executar consultes complexes extremadament ràpid. Això es deu al fet que el seu sistema de cerca usa algorismes NLP durant la indexació de les dades per a reduir el temps emprat a retornar resultat. A més, té una enorme capacitat d'escalabilitat horitzontal gràcies a la seva arquitectura replicada i distribuïda.
4. Suport de grans volums de dades
Elasticsearch no necessita un esquema predefinit de dades, la qual cosa significa que accepta documents amb diferents estructures de dades. A diferència d'altres softwares, on cal normalitzar les dades perquè siguin acceptades, Elasticsearch no requereix aquest pas. D'aquesta forma, el seu desenvolupament és molt més flexible, àgil i escalable. Igualment, aquest motor de cerca emmagatzema els seus documents en format JSON (Javascript Object Notation), que és el que fan servir moltes entitats.
5. Suport de múltiples dades estructurades i no estructurades
Elasticsearch guarda totes les dades en format JSON i el mateix format per retornar els resultats. La potència d'usar una base de dades NOSQL és que no necessita d'un esquema predefinit únic per a totes les fonts de dades. Això permet treballar amb molts orígens de dades diferents i crear índexs (equivalent a taules en una RDBMS) amb diferents estructures contra els quals després podem fer consultes combinades. De la mateixa forma, atès que és un potent motor de cerca de text, podem guardar dades no estructurades i fer cerques intel·ligents dins d'aquests camps no estructurats.
6. Fàcil manteniment pel que fa a dades i infraestructura
El manteniment de dades i infraestructura és molt accessible gràcies a l'escalabilitat horitzontal. És un sistema distribuït amb un sistema automàtic de replicació de dades repartides en els nodes del clúster.
Donada aquesta distribució de la informació, el sistema és resistent a fallades i pèrdua d'informació, ja que les dades estan replicades en diversos nodes més d'una vegada. Existeix també l'opció nativa de crear snapshots de la informació que pot ser recuperada fàcilment en cas necessari.
Elasticsearch és portable a qualsevol sistema operatiu i està disponible per a la majoria de plataformes inclòs el Cloud.
7. Fàcil visualització de dades
A l'stack d'Elasticsearch hi ha un mòdul anomenat Kibana. Kibana és un sistema de consulta i visualització de dades molt potent. El mateix Kibana actua com front end per a simplificar les tasques de gestió de la infraestructura del nostre clúster i veure l'estat de les dades.
Permet la creació de visualitzacions i dashboards propis o presentacions dinàmiques de les dades, sense programació, segons les necessitats del nostre entorn.
A més de la funcionalitat de crear dashboards, hi ha una gran varietat de dashboards generats automàticament, com per exemple per aplicar als entorns en què hem usat Beats per a la integració.
Una altra eina per a la visualització de dades és Canvas, que treballa en temps real. La simplicitat de crear dashboards amb Canvas permet als enginyers de dades i especialistes en visualització de dades la llibertat de crear visualitzacions pràcticament il·limitades.
En definitiva, Elasticsearch és una molt bona eina per aplicar a molts projectes. Tot i això, sempre és important fer una valoració prèvia a l'elecció de la solució més indicada. A Bismart t'orientem, consulta'ns.