Was sind einige Anwendungsfälle für die Verwendung von Elasticsearch im Vergleich zu Standard-SQL-Abfragen? [geschlossen]

125

Ich fange gerade erst mit Elasticsearch an und einer der Hauptanwendungsfälle, die ich gesehen habe, ist die Skalierbarkeit bei der Suche in großen Datenmengen. Aber wann sollten Sie es verwenden, anstatt nur SQL-Abfragen mit einem herkömmlichen RDBMS zu erstellen?

James Drinkard
quelle
3
Das Bearbeiten von Fragen zur Verbesserung (z. B. Klärung, Hinzufügen zusätzlicher Informationen usw.) wird empfohlen . Das Bearbeiten einer Frage, um sie in eine andere Frage umzuwandeln, was zur Ungültigmachung einer oder mehrerer Antworten führt, verstößt jedoch gegen die Richtlinie zum Stapelüberlauf. Ihre Bearbeitung hier hat dies getan. Die Richtlinie lautet, dass andere Benutzer mit Bearbeitungsrechten solche Änderungen, die ich hier vorgenommen habe, proaktiv rückgängig machen sollten. Wenn Ihre neue Frage themenbezogen ist, werden Sie aufgefordert , eine neue Frage zu stellen , möglicherweise mit einem Link zu dieser Frage , um zusätzlichen Kontext zu erhalten.
Makyen
Verstanden. Nun, die Absicht war richtig, nur nicht die Hinrichtung.
James Drinkard

Antworten:

78

Es gibt zwei Hauptanwendungsfälle für Elasticsearch:

  1. Textsuche

Sie möchten Elasticsearch, wenn Sie viel Text suchen, wo herkömmliche RDBMS-Datenbanken nicht wirklich gut funktionieren (schlechte Konfiguration, Blackbox, schlechte Leistung). Elasticsearch ist hochgradig anpassbar und durch Plugins erweiterbar. Sie können sehr schnell eine robuste Suche ohne viel Wissen erstellen.

  1. Protokollierung und Analyse

Ein weiterer Vorteil ist, dass viele Benutzer Elasticsearch verwenden, um Protokolle aus verschiedenen Quellen zu speichern (um sie zu zentralisieren), damit sie sie analysieren und einen Sinn daraus ziehen können. In diesem Fall wird Kibana praktisch. Sie können eine Verbindung zum Elasticsearch-Cluster herstellen und sofort Visualisierungen erstellen. Zum Beispiel wird Loggly mit Elasticsearch und Kibana erstellt.

Beachten Sie, dass Sie Elasticsearch nicht als primären Datenspeicher verwenden möchten. Gründe hier: Wie zuverlässig ist ElasticSearch als primärer Datenspeicher gegen Faktoren wie Schreibverlust und Datenverfügbarkeit

Aktualisieren

Ich hatte das Gefühl, dass der zweite Teil nicht mehr nervös ist, sondern das, was Elastic als Unternehmen im vergangenen Jahr wirklich gut gemacht hat. Mit der aktuellen DevOps-Bewegung, CI / CD-Pipelines und der zunehmenden Anzahl von Metriken aus verschiedenen Quellen wurde ELK zu einer defakten Wahl für die Überwachung der Infrastruktur. Es ist nicht mehr nur eine verteilte RESTful-Textsuchmaschine. Es hat eine erstaunliche Reihe von Produkten:

  • Logstash (Tonnen von Dateneingaben)
  • Beats
    • Filebeat
    • Metricbeat
    • Packetbeat
    • Winlogbeat
  • Kibana
    • Graph
    • Timelion
  • X-Pack (Premium)
    • Warnungen
    • Berichterstattung
    • Sicherheit
    • Maschinelles Lernen
    • Rechenzentrumsübergreifende Metriken

Um den ELK-Stack herum wächst ein Ökosystem, das von der Community aufgebaut wurde und die aktuellen Funktionen erweitert. Einige davon sind erwähnenswert:

  • ElastAlert
  • Search Guard
Evaldas Buinauskas
quelle
Warum die elastische Suche eingeschränkt wird, wird nicht als Abfrage-Engine für Standardsysteme wie Pos oder Erp verwendet, da ich nicht verstehe, dass Unternehmen viel Energie darauf verwenden, nur die Daten von SQL in elastische Suche nach Analysen umzuwandeln.
Pannu
In älteren Versionen wurde es nicht empfohlen, jetzt weiß ich es nicht.
Evaldas Buinauskas
Sie sagten, aufgrund der schlechten Konfiguration funktioniert das RDBMS nicht wirklich gut. Bedeutet dies, dass Sie mit einer guten Konfiguration sowohl mit EleasticSearch als auch mit Feast Search (Fuzzy Search) arbeiten können?
Legenden
2
@Legends Ich meinte wirklich schlechte Konfigurationsoptionen. Meine eigenen Erfahrungen beschränken sich auf die MSSQL-Volltextsuche, und die Anzahl der Einstellungen in MSSQL kann nicht mit Elasticsearch verglichen werden. Die Textsuche in RDBMS ist eine Funktion, während sie in Elasticsearch das Wesentliche ist.
Evaldas Buinauskas
Ich habe viel im Internet gesucht, aber ich kann nichts Konkretes finden. Wie viele Daten (nur ungefähr) sollte die Anwendung haben, damit wir über einen Wechsel zu ElasticSerach nachdenken können? Die Wartung verteilter Systeme ist komplex. Zum Beispiel bei der Suche in Kommentaren, die in Mongodb gut indiziert sind. (Ich spreche nicht über erweiterte Funktionen von ES, reine Textsuche)
Iván Sánchez vor
27

Um die andere Antwort hinzuzufügen, ist die Protokollierung neben der Suche immer noch ein wichtiger Anwendungsfall, aber jetzt werden Metriken und Analysen immer wichtiger.

Ich glaube, dass dieser Beitrag die Veränderungen auf dem Markt zusammenfasst, die neue Anwendungsfälle für Big Data vorantreiben. Alles, was Sie wirklich über Open Source-Datenbanken wissen müssen

Mit dem Aufkommen von Web 2.0 sind statische Webseiten dynamisch geworden und soziale Medien sind überall um uns herum. Jeder twittert, postet, bloggt, vloggt, teilt Fotos, chattet und kommentiert. Das Internet der Dinge (Internet of Things, IoT) entsteht - ein schnell wachsendes Netzwerk verbundener Geräte, die Daten wie Sensoren und intelligente Geräte sammeln und austauschen. Hier gibt es einige gute Beispiele.

Insgesamt werden dadurch riesige Mengen neuer Daten generiert, die Unternehmen aufnehmen und nutzen möchten, um die Nase vorn zu haben und Funktionen wie Produktempfehlungen und ein besseres Kundenerlebnis bereitzustellen. Die Daten können auf der Suche nach Mustern für Anwendungen wie Betrugserkennung und Verhaltensanalyse analysiert werden. Ein Großteil der neuen Daten ist unstrukturiert, was bedeutet, dass sie nicht sauber in einer tabellarischen Datenbank gespeichert werden können.

Stellen Sie sich vor, Sie möchten eine Datenbank erstellen, in der Daten zu Ihrem Lebensmitteleinkauf gespeichert sind - was Ihnen gefällt, wie oft Sie es kaufen, ob Sie Milch oder Sahne zu Ihrem Kaffee bevorzugen. Zum Speichern der neuen Daten sind neue Datenbanktypen erforderlich. Sie müssen nicht relational und im Idealfall kostengünstig sein. Glocken läuten? Nicht relational wie in NoSQL und kostengünstig wie in Open Source.

Einer der Elasticsearch-Architekten, mit denen ich gesprochen habe, sagte, dass 80% der Daten, mit denen Elasticsearch in Unternehmen arbeitet, unstrukturiert sind, während 20% strukturiert sind. Es sind die unstrukturierten Daten, nach denen Unternehmen suchen, um seltene oder ungewöhnliche Datenmuster zu entdecken. Sie verwenden Elasticsearch auch zur Überwachung von Datenmustern. Zum Beispiel führt ein großer Einzelhändler mit Elasticsearch eine Echtzeit-Nachverfolgung durch, um sicherzustellen, dass in den Geschäften ausreichend Geld vorhanden ist, damit die Leute an Zahltagen Schecks einlösen können.

Nach meiner eigenen Erfahrung mit unserem Suchanwendungsfall verwenden wir nicht nur Fuzzy-Suchen, sondern es hat sich auch zu einer automatischen und schnellen Suche entwickelt. Nach dem, was ich gesehen habe, entwickeln Sie sich, sobald Sie mit Elasticsearch arbeiten, zu anderen Anwendungsfällen, die das ergänzen, was Sie bereits eingerichtet haben. Nachdem wir Elasticsearch in unserem Unternehmen als Fuzzy-Suchmaschine etabliert haben, haben wir jetzt andere Teams, die sich mit Analysen und Metriken für die Protokollierung befassen.

Im Folgenden finden Sie einige zusätzliche Ressourcen, die sich eingehender mit diesem Thema befassen:

James Drinkard
quelle