
Hallo habrozhiteli! Wir haben ein Buch über Elastic Stack veröffentlicht, das für Profis gedacht ist, die mit großen Datenmengen arbeiten und diese zuverlässig aus jeder Quelle in jedem Format extrahieren sowie Daten in Echtzeit suchen, analysieren und visualisieren möchten. Dieses Buch ist für Sie gedacht, wenn Sie ein grundlegendes Verständnis der Arbeit von Elastic Stack in den Bereichen verteiltes Rechnen und Echtzeit-Datenverarbeitung benötigen.
Im Folgenden wird die Struktur des Buches über eine Passage über Aggregation angegeben.
Buchstruktur
In Kapitel 1 „Einführung in Elastic Stack“ werden die Hauptkomponenten von Elastic Stack vorgestellt, ihre Rolle in der Gesamtstruktur erläutert und der Zweck jeder Komponente beschrieben. In diesem Kapitel wird auch die Notwendigkeit einer verteilten, skalierbaren Suche und Analyse erläutert, die mit Elasticsearch erreicht wird. Am Ende finden Sie eine Anleitung zum Herunterladen und Installieren von Elasticsearch und Kibana, damit Sie mit diesen Tools beginnen können.
Kapitel 2, „Erste Schritte mit Elasticsearch“, führt Sie in die wichtigsten Prinzipien der Elasticsearch-Suchmaschine ein, die die Grundlage von Elastic Stack bildet. Sie werden mit Konzepten wie Indizes, Typen, Knoten und Clustern vertraut gemacht. Sie erfahren auch, wie Sie die REST-API verwenden, um grundlegende Vorgänge auszuführen.
Kapitel 3, „Suche ist wichtig“, konzentriert sich auf die von Elasticsearch bereitgestellten Suchmethoden. Sie lernen die Grundlagen der Textanalyse, Tokenizer, Analysatoren und Funktionen der relevanten Suche kennen. Dieses Kapitel enthält auch praktische Beispiele für relevante Suchvorgänge.
In Kapitel 4, „Analysieren von Daten mit Elasticsearch“, werden die verschiedenen Arten der Aggregation erläutert. Es enthält Beispiele, die Ihnen helfen, die Prinzipien der Datenanalyse besser zu verstehen. Sie lernen, wie Sie verschiedene Arten von Aggregationen verwenden - von einfach bis komplex, um durch große Datenmengen zu navigieren. Nachdem Sie dieses Kapitel gelesen haben, wissen Sie, wann und welche Aggregationsoption besser zu verwenden ist.
Kapitel 5, Protokollanalyse, enthält Informationen zur Verwendung von Logstash, seiner Architektur, Installation und Konfiguration. Elastic 5 bietet ein Ingest Node-Tool, das die Logstash-Konfiguration ersetzen kann. In diesem Kapitel erfahren Sie, wie Sie Container mit dem Elastic Ingest Node erstellen.
In Kapitel 6, „Entwerfen von Containern mit Logstash“, erhalten Sie ein grundlegendes Verständnis von Logstash, mit dem Sie Daten aus verschiedenen Quellen dynamisch identifizieren und mithilfe der von Ihnen ausgewählten Filter normalisieren können. Sie erfahren, wie Logstash mit einer Vielzahl von Filtern anderen Echtzeit- und Echtzeit-Streaming-Verarbeitungs-Frameworks gleichgestellt wird, ohne Code schreiben zu müssen. Sie werden auch in die Beats-Plattform und die FileBeat-Komponente eingeführt, mit denen Protokolldateien (Protokolldateien) von Remotecomputern transportiert werden.
Kapitel 7, „Visualisieren von Daten in Kibana“, zeigt, wie Sie mit Kibana Ihre Daten visualisieren und eindrucksvoll präsentieren können. Ein Beispiel für einen einfachen Datensatz beschreibt die Erstellung von Visualisierungen mit wenigen Klicks.
Kapitel 8, Elastic X-Pack, behandelt die Elasticsearch-Erweiterung. Zu diesem Zeitpunkt lernen Sie bereits Elasticsearch und seine Schlüsselkomponenten zum Erstellen von Datencontainern kennen und können Erweiterungen verbinden, um bestimmte Probleme zu lösen. In diesem Kapitel erfahren Sie, wie Sie X-Pack-Komponenten in Elastic Stack installieren und konfigurieren, die Grundlagen der Sicherheit und Überwachung erlernen und verschiedene Benachrichtigungen hinzufügen.
Kapitel 9, „Den elatischen Stapel in Betrieb nehmen“, enthält Empfehlungen für den kommerziellen Betrieb des Elastic Stack-Komplexes. Sie erhalten Empfehlungen zur Implementierung Ihrer Anwendung und zur Änderung der Standardeinstellungen entsprechend den Anforderungen des Vorgangs. Außerdem erfahren Sie, wie Sie Elastic Cloud-Clouddienste verwenden.
Kapitel 10 „Erstellen einer Anwendung zum Analysieren von Daten von Sensoren“ beschreibt das Erstellen einer Anwendung zum Analysieren und Verarbeiten von Daten aus verschiedenen Quellen. Sie lernen, wie Sie Daten in Elasticsearch modellieren, Datencontainer erstellen und in Kibana visualisieren. Außerdem erfahren Sie, wie Sie die X-Pack-Komponenten effektiv einsetzen, um die Sicherheit und Überwachung Ihrer Container zu gewährleisten und Benachrichtigungen über verschiedene Ereignisse zu erhalten.
Kapitel 11, Überwachung der Serverinfrastruktur, zeigt die Möglichkeiten der Verwendung von Elastic Stack zum Konfigurieren der Echtzeitüberwachung für Server und Anwendungen, die vollständig auf Elastic Stack erstellt wurden. Sie werden eine weitere Komponente der Beats-Plattform kennenlernen - Metricbeat, mit der Server / Anwendungen überwacht werden.
Aggregationen der Summen-, Durchschnitts-, Maximal- und Minimalwerte
Das Ermitteln der Summe eines Feldes, eines Minimal- oder Maximalwerts oder eines Durchschnitts ist eine ziemlich häufige Operation. In SQL lautet eine Abfrage zum Berechnen der Summe wie folgt:
SELECT sum(downloadTotal) FROM usageReport;
Somit wird die Summe des Feldes downloadTotal für alle Einträge in der Tabelle berechnet. Gehen Sie dazu alle Datensätze in der Tabelle oder alle Datensätze im ausgewählten Kontext durch und fügen Sie die Werte der ausgewählten Felder hinzu.
In Elasticsearch können Sie eine ähnliche Abfrage mithilfe der Summenaggregation schreiben.
Betragsaggregation
So schreiben Sie eine einfache Aggregation des Betrags:
GET bigginsight/_search { "aggregations": { 1 "download_sum": { 2 "sum": { 3 "field": "downloadTotal" 4 } } }, "size": 0 5 }
- Die Aggs oder Aggregationen auf der obersten Ebene sollten als Wrapper für die Aggregation dienen.
- Geben Sie der Aggregation einen Namen. In diesem Fall aggregieren wir den Betrag im Feld downloadTotal und wählen den entsprechenden Namen download_sum aus. Du kannst sie so nennen, wie du willst. Dieses Feld ist nützlich, wenn wir diese spezifische Aggregation in den Antwortergebnissen finden müssen.
- Wir aggregieren die Summe, daher wird das Summenelement angewendet.
- Wir möchten Begriffe nach dem Feld downloadTotal aggregieren.
- Geben Sie size = 0 an, um zu verhindern, dass Rohergebnisse in die Antwort gelangen. Wir benötigen nur Aggregationsergebnisse, keine Suchergebnisse. Da wir keine allgemeinen Abfrageelemente angegeben haben, funktioniert die Abfrage mit allen Dokumenten. Wir benötigen keine unverarbeiteten Dokumente (oder Suchergebnisse) in der Antwort.
Die Antwort sollte so aussehen:
{ "took": 92, ... "hits": { "total": 242836, 1 "max_score": 0, "hits": [] }, "aggregations": { 2 "download_sum": { 3 "value": 2197438700 4 } } }
Wir werden die Hauptparameter der Antwort verstehen.
- Das Element Hits.Total zeigt die Anzahl der Dokumente an, die dem Anforderungskontext entsprechen. Wenn keine zusätzliche Abfrage oder kein zusätzlicher Filter angegeben ist, werden alle Dokumente im Typ oder Index eingeschlossen.
- In Analogie zur Anfrage wird diese Antwort zur Präsentation in dieser Form in die Aggregation eingefügt.
- Die Antwort der von uns angeforderten Aggregation heißt download_sum. Daher erhalten wir unsere Antwort aus der Aggregation des Betrags innerhalb des gleichnamigen Elements.
- Der tatsächliche Wert wird nach Anwenden des Aggregationsbetrags angezeigt.
Aggregationen von Durchschnitts-, Maximal- und Minimalwerten sind sehr ähnlich. Wir werden sie kurz betrachten.
Durchschnittliche Aggregation
Die Aggregation des Durchschnitts ermittelt den Durchschnittswert für alle Dokumente im Kontext der Anforderung:
GET bigginsight/_search { "aggregations": { "download_average": { 1 "avg": { 2 "field": "downloadTotal" } } }, "size": 0 }
Bemerkenswerte Unterschiede von der Aggregation des Betrags sind wie folgt.
- Wir haben einen anderen Namen gewählt, download_average, damit klar ist, dass diese Aggregation zur Berechnung des Durchschnittswerts dient.
- Die Art der durchzuführenden Aggregation ist wie im vorherigen Beispiel durchschnittlich anstelle von sum.
Die Struktur der Antwort ist identisch mit der Antwort aus dem vorherigen Unterabschnitt, aber im Wertefeld sehen wir den Durchschnittswert der angeforderten Felder.
Die Aggregationen der Minimal- und Maximalwerte sind ähnlich.
Minimale Aggregation
Suchen Sie den Mindestwert des Felds downloadTotal im gesamten Index / Typ:
GET bigginsight/_search { "aggregations": { "download_min": { "min": { "field": "downloadTotal" } } }, "size": 0 }
Aggregation des Maximalwertes
Suchen Sie den Maximalwert des Felds downloadTotal im gesamten Index / Typ:
GET bigginsight/_search { "aggregations": { "download_max": { "max": { "field": "downloadTotal" } } }, "size": 0 }
Dies sind sehr einfache Aggregationen. Betrachten wir nun kompliziertere Aggregationen von Statistiken und erweiterten Statistiken.
Aggregationen von Statistiken und erweiterten Statistiken
Diese Aggregationen berechnen einige allgemeine statistische Werte innerhalb einer einzelnen Abfrage und ohne zusätzliche Abfragen durchzuführen. Aufgrund der Tatsache, dass Statistiken auf einmal berechnet und nicht mehrmals angefordert werden, werden Elasticsearch-Ressourcen gespeichert. Client-Code wird auch einfacher, wenn Sie an verschiedenen Arten solcher Daten interessiert sind. Schauen Sie sich ein Beispiel für die Aggregation von Statistiken an.
Statistikaggregation
Die Aggregation von Statistiken berechnet die Menge, den Durchschnitt, den Maximalwert, den Minimalwert und die Gesamtzahl der Dokumente in einem Lauf:
GET bigginsight/_search { "aggregations": { "download_stats": { "stats": { "field": "downloadTotal" } } }, "size": 0 }
Das Anfordern von Statistiken zur Struktur ähnelt anderen Metrikaggregationen, die Sie bereits kennen. Hier passiert nichts Besonderes.
Die Antwort sollte so aussehen:
{ "took": 4, ..., "hits": { "total": 242836, "max_score": 0, "hits": [] }, "aggregations": { "download_stats": { "count": 242835, "min": 0, "max": 241213, "avg": 9049.102065188297, "sum": 2197438700 } } }
Wie Sie sehen können, enthält die Antwort mit dem Element download_stats die Summe, das Minimum, das Maximum, den Durchschnitt und die Summe. Diese Schlussfolgerung ist sehr praktisch, da sie die Anzahl der Anforderungen verringert und den Clientcode vereinfacht.
Sehen Sie sich die Aggregation erweiterter Statistiken an.
Aggregation erweiterter Statistiken
Die Aggregation erweiterter Statistiken liefert zusätzlich zur vorherigen Option etwas mehr Statistiken:
GET bigginsight/_search { "aggregations": { "download_estats": { "extended_stats": { "field": "downloadTotal" } } }, "size": 0 }
Die Antwort sieht folgendermaßen aus:
{ "took": 15, "timed_out": false, ..., "hits": { "total": 242836, "max_score": 0, "hits": [] }, "aggregations": { "download_estats": { "count": 242835, "min": 0, "max": 241213, "avg": 9049.102065188297, "sum": 2197438700, "sum_of_squares": 133545882701698, "variance": 468058704.9782911, "std_deviation": 21634.664429528162, "std_deviation_bounds": { "upper": 52318.43092424462, "lower": -34220.22679386803 } } } }
In der Antwort erhalten Sie auch die Summe der Quadrate, der Diskrepanz, der Standardabweichung und ihrer Grenzen.
Leistungsaggregation
Das Zählen eindeutiger Elemente kann mithilfe der Leistungsaggregation erfolgen. Dies ähnelt der Suche nach einem Abfrageergebnis, wie unten gezeigt:
select count(*) from (select distinct username from usageReport) u;
Das Ermitteln der Leistung oder Anzahl eindeutiger Werte für ein bestimmtes Feld ist eine recht häufige Aufgabe. Wenn Sie beispielsweise einen Klick-Stream (Klick-Stream) von verschiedenen Besuchern Ihrer Website haben, möchten Sie möglicherweise herausfinden, wie viele eindeutige Besucher sich an einem ausgewählten Tag, einer ausgewählten Woche oder einem ausgewählten Monat auf der Website befinden.
Lassen Sie uns anhand der verfügbaren Netzwerkverkehrsdaten herausfinden, wie Sie die Anzahl der eindeutigen Besucher ermitteln können:
GET bigginsight/_search { "aggregations": { "unique_visitors": { "cardinality": { "field": "username" } } }, "size": 0 }
Die Antwort auf die Leistungsaggregation sieht genauso aus wie in anderen Metrikaggregationen:
{ "took": 110, ..., "hits": { "total": 242836, "max_score": 0, "hits": [] }, "aggregations": { "unique_visitors": { "value": 79 } } }
Nachdem wir die einfachsten Arten von Aggregationen herausgefunden haben, können wir einige segmentale Aggregationen betrachten.
Über Autoren
Pranav Shukla ist der Gründer und Leiter von Valens DataLabs, Ingenieur, Ehemann und Vater von zwei Kindern. Big Data-Architekt und professioneller Programmierer mit JVM-basierten Programmiersprachen. Pranav entwickelt seit mehr als 14 Jahren Unternehmensanwendungen für Fortune 500-Unternehmen und Startups. Seine Hauptspezialisierung ist die Erstellung skalierbarer, datengesteuerter Anwendungen auf der Basis von JVM-, Java / Scala-, Hadoop-Ökosystem-, Apache Spark- und NoSQL-Datenbanken. Aktive Entwicklung in Bereichen wie Big Data Organisation, Analytik und maschinelles Lernen.
Pranav gründete Valens DataLabs, um anderen Unternehmen dabei zu helfen, mithilfe von Daten ihre Wettbewerbsfähigkeit zu steigern. Valens DataLabs ist spezialisiert auf die Erstellung einer neuen Generation von Cloud-Anwendungen für die Arbeit mit Big Data und Webtechnologien. Die Arbeit des Unternehmens basiert auf dem Einsatz flexibler Praktiken, den Prinzipien der schlanken Fertigung, der Entwicklung basierend auf Tests und Verhalten, der kontinuierlichen Integration und dem kontinuierlichen Einsatz nachhaltiger Softwaresysteme.
Sharat Kumar M. N. erhielt einen Master-Abschluss in Informatik von der University of Texas, Dallas, USA. Er ist seit mehr als zehn Jahren in der IT-Branche tätig, hat derzeit die Position eines Oracle-Lösungsentwicklers für Elasticsearch inne und ist ein Unterstützer von Elastic Stack. Als begeisterter Redner hat er auf mehreren Wissenschafts- und Technologiekonferenzen gesprochen, darunter auf dem Oracle Code Event. Sharat - Elastic Certified Instructor (Elastic Certified Instructor) - einer der wenigen technischen Experten der Welt, die Elastic Inc. gewährte das offizielle Recht, Schulungen "von den Machern von Elastic" durchzuführen. Er ist auch ein Enthusiast in maschinellem Lernen und Datenwissenschaft.
Über Science Editor
Marcelo Ochoa arbeitet im Labor der Fakultät für exakte Wissenschaften der Nationalen Universität von Zentral-Buenos Aires (Universität von Buenos Aires), Argentinien. Er ist CTO von Scotas (www.scotas.com), das sich auf Pseudo-Echtzeit-Lösungen mit Apache Solr- und Oracle-Technologien spezialisiert hat. Marcelo schafft es, an der Universität zu arbeiten und sich an Projekten im Zusammenhang mit Oracle und Big Data-Technologien zu beteiligen. Zuvor arbeitete er mit Datenbanken, Web- und Java-Technologien. In der XML-Welt ist Marcelo als DB Generator-Entwickler für das Apache Cocoon-Projekt bekannt. Er war an der Erstellung von Open Source-Projekten wie DBPrism, DBPrism CMS und Restlet.org beteiligt, wo er am Oracle XDB Restlet Adapter arbeitete, einer Alternative zum Schreiben nativer REST-Webdienste in die JVM-Datenbank.
Seit 2006 nimmt er am Oracle ACE-Programm teil und ist kürzlich dem Docker Mentor-Projekt beigetreten.
»Weitere Informationen zum Buch finden Sie auf
der Website des Herausgebers»
Inhalt»
Auszug25%
Rabatt auf Gutschein für
Händler -
ElasticsearchNach Zahlung der Papierversion des Buches wird eine elektronische Version des Buches per E-Mail verschickt.