Elasticsearch ist eine kostenlose Open-Source-Such- und Analyse-Engine auf Basis von Apache Lucene. Elasticsearch ist verteilt und unterstützt alle Datentypen, einschließlich numerischer, textueller, strukturierter, unstrukturierter und Geodaten. Elasticsearch verfügt über einfache REST-APIs und bietet Funktionen für Skalierbarkeit und schnelle Suche.
Elasticsearch ist ein wichtiger Bestandteil des Elastic Stack, einer Reihe von Open-Source-Tools zur Datenerfassung, -speicherung, -anreicherung, -visualisierung und -analyse. Wichtige Tools im Stack sind Elasticsearch, Logstash und Kibana (ELK).
Die Elasticsearch-Architektur nutzt den Lucene-Indexierungsaufbau und kombiniert ihn mit einem verteilten Modell, das die Architektur in kleine Komponenten, sogenannte Shards, aufgeteilt, die auf mehrere Knoten verteilt werden können.
In diesem Artikel erfahren Sie:
Elasticsearch ist eine skalierbare Such- und Analyselösung, die Mandantenfähigkeit unterstützt und nahezu Echtzeitsuche ermöglicht. Mit Elasticsearch können Sie nach allen Arten von Daten und verschiedenen Standorten suchen. Die Engine erfasst Daten von mehreren Standorten, speichert sie und indiziert sie gemäß vordefinierter manueller oder automatisierter Zuordnung.
Da Elasticsearch mit einer verteilten Architektur arbeitet, können Benutzer riesige Datenmengen nahezu in Echtzeit durchsuchen und analysieren. Darüber hinaus ermöglicht Elasticsearch Skalierbarkeit im Suchprozess, sodass Sie mit nur einer Maschine beginnen und auf Hunderte skalieren können.
Mit Elasticsearch können Sie einen vollfunktionalen (auch Volltext-)Suchcluster ausführen, z. B. für die Dokumentensuche, Produktsuche und E-Mail-Suche. Dies erfordert jedoch ein hohes Maß an Kenntnissen und Erfahrung. Sie können Elasticsearch auch zum Speichern von Daten verwenden, die auf die Aufteilung und Analyse warten, sowie zum Gruppieren von Daten in Kategorien wie Metriken, Traces und Protokolle.
Elasticsearch kann sowohl in verschiedenen Cloud-Umgebungen als auch vor Ort eingesetzt werden. Sie können Elasticsearch selbst hosten oder einen Cloud-Dienst wie AWS Elasticsearch nutzen.
Elasticsearch verwendet sogenannte „Beats“, um Rohdaten aus verschiedenen Quellen in Elasticsearch zu übertragen. Nach der Datenübertragung führt die Engine Datenaufnahmeprozesse durch, die die Daten analysieren, normalisieren, anreichern und für die Indizierung vorbereiten. Nach der Indizierung können Benutzer komplexe Abfragen ausführen und mithilfe von Aggregationen komplexe Datenzusammenfassungen abrufen.
Zur Visualisierung und Verwaltung bietet der Elastic Stack das Tool Kibana, mit dem sich Datenvisualisierungen in Echtzeit erstellen lassen, beispielsweise Kreisdiagramme, Karten, Liniendiagramme und Histogramme. Mit Kibana können Sie außerdem Dashboards teilen, mit Canvas benutzerdefinierte dynamische Infografiken erstellen und mit Elastic Maps Geodaten visualisieren.
Die Elasticsearch-Architektur ist auf Skalierbarkeit und Flexibilität ausgelegt. Die Kernkomponenten sind Elasticsearch-Cluster, Knoten, Shards und Analysatoren.
Ein Elasticsearch-Cluster besteht aus einer Gruppe von Knoten, die Daten speichern. Sie können die Anzahl der Knoten, die mit dem Cluster gestartet werden, sowie die IP-Adresse des virtuellen oder physischen Servers angeben. Diese Informationen finden Sie in der Datei config/elasticsearch.yml, die alle Konfigurationseinstellungen enthält.
Knoten in einem Elasticsearch-Cluster sind miteinander verbunden und enthalten jeweils einen kleinen Teil der Clusterdaten. Sie können beliebig viele Cluster ausführen. In der Regel reicht jedoch ein Knoten aus. Das System erstellt automatisch einen Cluster, wenn ein neuer Knoten gestartet wird. Die Knoten sind an den gesamten Clusterprozessen beteiligt, die für die Suche und Indizierung zuständig sind.
Im Allgemeinen bezeichnet der Begriff Knoten einen Server, der Teil eines Clusters ist. In Elasticsearch ist ein Knoten eine Instanz, keine Maschine. Das bedeutet, dass Sie mehrere Knoten auf einer Maschine ausführen können. Eine Elasticsearch-Instanz besteht aus einem oder mehreren cluster-basierten Knoten. Standardmäßig wird beim Start einer Elasticsearch-Instanz auch ein Knoten gestartet.
Hier sind die drei Hauptoptionen zum Konfigurieren eines Elasticsearch-Knotens:
Die Elasticsearch-Architektur verwendet zwei Hauptports für die Kommunikation:
Die Anzahl der Dokumente, die Sie in jedem Index speichern können, ist unbegrenzt. Überschreitet ein Index jedoch die Speichergrenzen des Hosting-Servers, kann Elasticsearch abstürzen. Um dieses Problem zu vermeiden, werden Indizes in kleine Teile, sogenannte Shards, aufgeteilt.
Shards sind kleine und skalierbare Indexierungseinheiten, die als Bausteine der Elasticsearch-Architektur dienen. Shards ermöglichen die Verteilung von Vorgängen und verbessern die Gesamtleistung. Nach der Indexerstellung können Sie beliebig viele Shards erstellen. Jeder Shard fungiert als unabhängiger Lucene-Index, den Sie an beliebiger Stelle im Cluster hosten können.
In Elasticsearch sind Replikate Kopien von Index-Shards. Replikate dienen als ausfallsicherer Mechanismus für Backup- und Wiederherstellungszwecke. Replikate werden niemals auf dem Knoten platziert, der die ursprünglichen (primären) Shards enthält.
Um die Verfügbarkeit zu gewährleisten, werden Replikate an verschiedenen Orten gespeichert. Sie können nach der Indexerstellung eine Replikase definieren und so viele Replikate wie möglich erstellen. Das bedeutet, dass Sie mehr Replikate als primäre Shards speichern können.
Analyzer zerlegen Phrasen und Ausdrücke in ihre Bestandteile. Dies geschieht während des Indexierungsprozesses. Jeder Analyzer besteht aus einem Tokenizer und mehreren Tokenfiltern. Bei einem bestimmten Ausdruck kann der Tokenizer eine Zeichenfolge in vordefinierte Begriffe aufteilen.
Die Elasticsearch-Architektur unterstützt den Abruf von Dokumenten, die als JSON-Objekte gespeichert sind. Elasticsearch unterstützt verschachtelte Strukturen, was die Verarbeitung komplexer Daten und Abfragen erleichtert. Zur Nachverfolgung von Informationen verwendet Elasticsearch Schlüssel mit einem vorangestellten Unterstrich, der Metadaten darstellt.
NetApp Cloud Volumes ONTAP , die führende Speicherverwaltungslösung für Unternehmen, bietet sichere, bewährte Speicherverwaltungsdienste auf AWS, Azure und Google Cloud. Cloud Volumes ONTAP unterstützt eine Kapazität von bis zu 368 TB und unterstützt verschiedene Anwendungsfälle wie Dateidienste, Datenbanken, DevOps oder andere Unternehmens-Workloads mit einem leistungsstarken Funktionsumfang, darunter Hochverfügbarkeit, Datenschutz, Speichereffizienz, Kubernetes-Integration und mehr.
Cloud Volumes ONTAP unterstützt erweiterte Funktionen für die Verwaltung von SAN-Speicher in der Cloud und unterstützt NoSQL-Datenbanksysteme sowie NFS-Freigaben, auf die direkt von Cloud-Big-Data- Analyseclustern aus zugegriffen werden kann.
Darüber hinaus bietet Cloud Volumes ONTAP Speichereffizienz Funktionen wie Thin Provisioning, Datenkomprimierung und Deduplizierung, wodurch der Speicherbedarf und die Kosten um bis zu 70 % reduziert werden.
Um mehr über die Optimierung der Elasticsearch-Bereitstellung mit NetApp zu erfahren, laden Sie noch heute unser kostenloses E-Book „ Optimieren Sie die Leistung und Kosten von Elasticsearch mit Cloud Volumes ONTAP“ herunter .