Quels sont les cas d'utilisation d'Elasticsearch par rapport aux requêtes SQL standard? [fermé]


125

Je ne fais que commencer avec Elasticsearch et l'un des principaux cas d'utilisation que j'ai vus est son évolutivité avec des recherches sur de grands ensembles de données, mais à part cela, quand voudriez-vous l'utiliser simplement pour créer des requêtes SQL avec un SGBDR traditionnel?


3
La modification des questions pour les améliorer (par exemple clarification, ajout d'informations supplémentaires, etc.) est encouragée . Cependant, modifier une question pour la changer en une question différente, ce qui entraîne l'invalidation d'une ou plusieurs réponses, est contraire à la politique sur le débordement de pile. Votre modification ici l'a fait. La politique est que les autres utilisateurs disposant de privilèges d'édition devraient annuler de manière proactive ces modifications, ce que j'ai fait ici. Si votre nouvelle question porte sur le sujet, vous êtes encouragé à poser une nouvelle question , peut-être avec un lien vers celle-ci pour un contexte supplémentaire.
Makyen

Compris. Eh bien, l'intention était juste, mais pas l'exécution.
James Drinkard

Réponses:


78

Il existe deux principaux cas d'utilisation d'Elasticsearch:

  1. Recherche de texte

Vous voulez Elasticsearch lorsque vous faites beaucoup de recherche de texte, où les bases de données SGBDR traditionnelles ne fonctionnent pas vraiment bien (mauvaise configuration, agit comme une boîte noire, mauvaises performances). Elasticsearch est hautement personnalisable, extensible via des plugins. Vous pouvez créer une recherche robuste sans trop de connaissances assez rapidement.

  1. Journalisation et analyse

Un autre cas particulier est que beaucoup de gens utilisent Elasticsearch pour stocker des journaux de diverses sources (pour les centraliser), afin de pouvoir les analyser et en tirer un sens. Dans ce cas, Kibana devient pratique. Il vous permet de vous connecter au cluster Elasticsearch et de créer des visualisations immédiatement. Par exemple, Loggly est construit à l'aide d'Elasticsearch et de Kibana.

Gardez à l'esprit que vous ne voudriez pas utiliser Elasticsearch comme stockage de données principal. Raisons ici: Quelle est la fiabilité d'ElasticSearch en tant que banque de données principale par rapport à des facteurs tels que la perte d'écriture, la disponibilité des données

Mettre à jour

J'avais l'impression que la deuxième partie n'était plus énervée, c'est en fait ce qu'Elastic en tant qu'entreprise a très bien fait l'année dernière. Avec le mouvement DevOps actuel, les pipelines CI / CD, la quantité croissante de métriques provenant de diverses sources, ELK est devenu un choix de facto pour la surveillance de l'infrastructure, ce n'est plus seulement un moteur de recherche de texte RESTful distribué. Il a un ensemble incroyable de produits:

  • Logstash (tonnes d'entrées de données)
  • Beats
    • Filebeat
    • Metricbeat
    • Packetbeat
    • Winlogbeat
  • Kibana
    • Graphique
    • Timelion
  • X-Pack (premium)
    • Alertes
    • Rapports
    • Sécurité
    • Apprentissage automatique
    • Mesures croisées du centre de données

Un écosystème, construit par communauté, se développe autour de la pile ELK qui étend les fonctionnalités actuelles, dont peu méritent d'être mentionnées:

  • ElastAlert
  • Recherche Guard

Pourquoi restreint la recherche élastique n'est pas utilisée comme moteur de requête pour les systèmes standard, comme un pos ou un erp, car je ne comprends pas que les entreprises consacrent beaucoup d'énergie à la simple transformation des données de SQL en recherche élastique pour l'analyse.
Pannu

Dans les anciennes versions, ce n'était pas recommandé, maintenant je ne sais pas.
Evaldas Buinauskas

Vous avez dit qu'en raison d'une mauvaise configuration, le SGBDR ne fonctionne pas vraiment bien. Cela signifie-t-il qu'avec une bonne configuration, vous pouvez fonctionner aussi bien qu'avec EleasticSearch, en ce qui concerne la recherche de texte (recherche floue)?
Legends

2
@Legends Je voulais vraiment dire de mauvaises options de configuration. Ma propre expérience est limitée à la recherche de texte intégral MSSQL et la quantité de paramètres dans MSSQL ne peut pas être comparée à Elasticsearch. La recherche de texte dans le SGBDR est une fonctionnalité, tandis que dans Elasticsearch, c'est l'essence.
Evaldas Buinauskas

Je cherchais beaucoup sur le Web, mais je ne trouve rien de concret. Combien de données (environ environ) l'application doit-elle avoir pour que nous puissions envisager de passer à ElasticSerach?, Car la maintenance des systèmes distribués est complexe. Par exemple, rechercher dans les commentaires des textes bien indexés dans mongodb. (Je ne parle pas des fonctionnalités avancées d'ES, de la recherche de texte pur)
Iván Sánchez

27

Pour ajouter l'autre réponse, la journalisation est toujours un cas d'utilisation majeur ainsi que les recherches, mais maintenant les métriques et les analyses deviennent de plus en plus importantes.

Je pense que cet article résume les changements du marché qui génèrent de nouveaux cas d'utilisation du Big Data. Tout ce que vous devez vraiment savoir sur les bases de données Open Source

Avec l'avènement du Web 2.0, les pages Web statiques sont devenues dynamiques et les médias sociaux sont partout autour de nous. Tout le monde tweet, publie, blogue, vlog, partage des photos, bavarde et commente. L'Internet des objets (IoT) est en train d'émerger - un réseau en croissance rapide d'appareils connectés qui collectent et échangent des données, telles que des capteurs et des appareils intelligents. Il y a de bons exemples ici.

Au total, cela génère d'énormes quantités de nouvelles données que les entreprises souhaitent absorber et utiliser pour rester en tête, pour fournir des fonctionnalités telles que des recommandations de produits et une meilleure expérience client. Les données peuvent être analysées à la recherche de modèles pour des applications telles que la détection de fraude et l'analyse du comportement. La plupart des nouvelles données ne sont pas structurées, ce qui signifie qu'elles ne peuvent pas être soigneusement stockées dans une base de données tabulaire.

Imaginez que vous essayez de concevoir une base de données pour contenir des données sur votre épicerie - ce que vous aimez, à quelle fréquence vous l'achetez, si vous préférez du lait ou de la crème avec votre café. De nouveaux types de bases de données sont nécessaires pour stocker les nouvelles données, et elles doivent être non relationnelles et idéalement peu coûteuses. Sonner des cloches? Pas relationnel comme en NoSQL et low cost comme en open source.

L'un des architectes d'Elasticsearch avec qui j'ai parlé a déclaré que 80% des données avec lesquelles Elasticsearch travaille dans les entreprises ne sont pas structurées, tandis que 20% sont structurées. Ce sont les données non structurées que les entreprises recherchent pour découvrir des modèles de données rares ou inhabituels. Ils utilisent également Elasticsearch pour surveiller les modèles de données. Par exemple, un grand détaillant effectue un suivi en temps réel avec Elasticsearch afin de garantir un approvisionnement suffisant en argent dans les magasins pour que les gens puissent encaisser les chèques les jours de paie.

D'après ma propre expérience avec notre cas d'utilisation de recherche, nous n'utilisons pas seulement des recherches floues, mais cela a évolué vers des recherches rapides et à saisie automatique. D'après ce que j'ai vu, une fois que vous avez commencé à travailler avec Elasticsearch, vous commencez à évoluer vers d'autres cas d'utilisation qui complètent ce que vous avez déjà en place. Maintenant que nous avons établi Elasticsearch en tant que moteur de recherche flou dans notre entreprise, nous avons maintenant d'autres équipes qui recherchent des analyses et des mesures pour la journalisation.

Voici quelques ressources supplémentaires qui approfondissent ce sujet:

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.