webentwicklung-frage-antwort-db.com.de

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

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

114
James Drinkard

Es gibt zwei Hauptanwendungsfälle für Elasticsearch:

  1. Textsuche

Sie möchten Elasticsearch, wenn Sie häufig nach Texten suchen, bei denen herkömmliche RDBMS-Datenbanken keine gute Leistung erbringen (schlechte Konfiguration, Funktion als Black-Box, schlechte Leistung). Elasticsearch ist in hohem Maße anpassbar und durch Plugins erweiterbar. Sie können eine robuste Suche ohne viel Wissen ziemlich schnell erstellen.

  1. Protokollierung und Analyse

Ein weiterer Edge-Fall ist, dass viele Leute Elasticsearch verwenden, um Protokolle aus verschiedenen Quellen zu speichern (um sie zu zentralisieren), damit sie sie analysieren und einen Sinn daraus machen können. In diesem Fall wird Kibana praktisch. Sie können sich mit dem Elasticsearch-Cluster verbinden und sofort Visualisierungen erstellen. Zum Beispiel wird Loggly mit Elasticsearch und Kibana erstellt.

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

Aktualisieren

Ich hatte das Gefühl, dass der zweite Teil nicht mehr nervös ist, sondern genau das, was Elastic als Unternehmen im vergangenen Jahr wirklich gut gemacht hat. Mit der aktuellen DevOps-Bewegung, den CI/CD-Pipelines und der zunehmenden Anzahl von Metriken aus verschiedenen Quellen wurde ELK zu einer festen 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 von der Community erstelltes Ökosystem, das die aktuellen Funktionen erweitert. Einige davon sind erwähnenswert:

  • ElastAlert
  • Suche Wache
74

Zusammen mit der anderen Antwort ist die Protokollierung nach wie vor ein wichtiger Anwendungsfall für Suchvorgänge, doch 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. Alle twittern, posten, bloggen, loggen, teilen Fotos, chatten und kommentieren. Das Internet der Dinge (Internet of Things, IoT) ist im Entstehen begriffen - ein schnell wachsendes Netzwerk verbundener Geräte, die Daten sammeln und austauschen, z. B. Sensoren und intelligente Geräte. Es gibt hier einige großartige Beispiele.

Insgesamt entstehen so riesige Mengen neuer Daten, 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. Viele der neuen Daten sind unstrukturiert, was bedeutet, dass sie nicht sauber in einer tabellarischen Datenbank gespeichert werden können.

Stellen Sie sich vor, Sie möchten eine Datenbank mit Daten zu Ihrem Lebensmitteleinkauf erstellen - was Ihnen gefällt, wie oft Sie es kaufen, ob Sie Milch oder Sahne zum Kaffee bevorzugen. Zum Speichern der neuen Daten werden neue Datenbanktypen benötigt, die nicht relational und idealerweise kostengünstig sein müssen. Irgendwelche 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-Verfolgung durch, um eine ausreichende Geldversorgung in Geschäften sicherzustellen, damit die Kunden Schecks an Zahltagen einlösen können.

Nach meiner eigenen Erfahrung mit unserem Suchanwendungsfall verwenden wir nicht nur Fuzzy-Suchen, sondern haben uns zu automatischen Vervollständigungs- und Schnellsuchen entwickelt. Nach dem, was ich gesehen habe, entwickeln Sie sich, sobald Sie mit Elasticsearch arbeiten, zu anderen Anwendungsfällen, die Ihre bereits vorhandenen ergänzen. Nachdem wir Elasticsearch in unserem Unternehmen als Fuzzy-Suchmaschine etabliert haben, beschäftigen sich jetzt auch andere Teams mit Analysen und Messwerten für die Protokollierung.

Im Folgenden finden Sie einige zusätzliche Ressourcen, die zu diesem Thema ausführlicher beschrieben werden:

26
James Drinkard