Testen Sie Elasticsearch: Sehen Sie sich unsere Beispiel-Notebooks an, starten Sie eine kostenlose Cloud-Testversion oder testen Sie Elastic jetzt auf Ihrem lokalem Gerät.
Die Elasticsearch Query Language (ES|QL), die seit Version 8.14 allgemein verfügbar ist, stellt eine speziell entwickelte Abfragesprache und -engine dar, die für die Bereiche Suche, Beobachtbarkeit und Sicherheitsuntersuchungen konzipiert wurde. Im Gegensatz zur Piped Processing Language (PPL) von OpenSearch, die sich stark an bestehenden Piped-Sprachen orientiert, wurde ES|QL von Grund auf neu entwickelt, um den Fokus auf Eleganz, Benutzerfreundlichkeit und nahtlose Integration in die Kibana-Plattform zu legen.
In diesem Blogbeitrag werden wir die Entwicklererfahrung des ES|QL-Editors in Elasticsearch 9.1 untersuchen, indem wir sie mit PPL im Event Analyzer (kurz PPL) in OpenSearch 3.2 vergleichen.
Die Unterschiede werden schnell deutlich: Der ES|QL Editor bietet intelligente Autovervollständigung, kontextbezogene Hilfe, empfohlene Abfragen und clusterübergreifende Abfrageunterstützung, die nicht nur Anfängern, sondern auch Experten gleichermaßen zugutekommen. Das durchdachte Design für die ES|QL-Erstellung zeigt sich auch in der integrierten Abfrageprüfung und der ganzheitlichen Integration durch Kibana-Workflows, beispielsweise mit den zuletzt verwendeten Abfragen.
PPL hingegen bietet keine vergleichbare Unterstützung für Autovervollständigung, kontextbezogene Hilfestellungen und verteilte Abfragen, was zu einer steileren Lernkurve und mehr Versuch und Irrtum führt.
ES|QL einfacher zu erlernen und anzuwenden
Der Einstieg in eine neue Abfragesprache kann oft überwältigend sein. Der direkt in Kibana Discover integrierte ES|QL - Editor wurde entwickelt, um diesen Prozess zu vereinfachen, indem er nicht nur die Erstellung und das Debuggen von Abfragen unterstützt, sondern auch beschleunigt, wie schnell Sie sich mit der Sprache vertraut machen und sich damit wohlfühlen. Da der Editor dazu beiträgt, Reibungsverluste bei alltäglichen Aufgaben zu reduzieren, können Sie Ihren Fokus von Syntax und Versuch-und-Irrtum-Prinzip auf die Lösungsfindung verlagern. Mehr über diese Prinzipien und wie wir sie in den Editor integriert haben, können Sie hier lesen.
Diese Editor-Oberfläche ist nicht auf Discover beschränkt; es handelt sich um ein wiederverwendbares Code-Modul, dessen Integration in andere Teile von Kibana wir gerade vorantreiben, wie zum Beispiel Dashboards, Kibana-Alerts und Kibana-Maps.
Intelligente Autovervollständigung: Beschleunigt die Erstellung Ihrer Suchanfragen
Die Autovervollständigung im ES|QL Editor ist umfassend und bietet Vorschläge für kompatible Funktionen, Argumente, Literale und sogar verschachtelte Funktionen – eine Fähigkeit, die in PPL deutlich fehlt. Tatsächlich wurde es von Grund auf neu aufgebaut, wie hier beschrieben.
Die Validierung läuft während der Eingabe durch den Benutzer, wie hier beschrieben, und schlägt Felder vor sowie benachrichtigt den Benutzer über Fehler. Dies reduziert die mentale Belastung der Benutzer und hilft, Fehler frühzeitig im Abfrageerstellungsprozess zu vermeiden.
Beispiel: In dieser Verschachtelung werden Felder und kompatible Funktionen vorgeschlagen:

Etwas, das PPL nicht unterstützt:

Selbst wenn eine intelligente Autovervollständigung Sie durch kompatible Funktionen, Argumente und verschachtelte Funktionen führt, möchten Sie vielleicht trotzdem ein tieferes Verständnis der verfügbaren Optionen. Genau hier erweist sich die kontextbezogene Hilfe des ES|QL Editors als unschätzbar wertvoll, da sie sofortige Unterstützung direkt im Editor bietet, um Ihre Abfrageentwicklung zu verdeutlichen und zu verbessern.
Kontextbezogene Hilfe direkt zur Hand
Zusätzliche Informationen zu einem durch die Autovervollständigung generierten Befehl erhalten Sie mit einem Klick Strg+Leertaste. Es erscheint sofort ein Fenster mit Details zu der betreffenden Funktion, dem Argument oder dem Feld. Diese unkomplizierte Interaktion hält die Entwickler im Arbeitsfluss und bietet ihnen bedarfsgerechte Hilfestellung, ohne dass sie den Editor verlassen oder externe Dokumentationen durchsuchen müssen. Dadurch wird der Zeitaufwand für Syntaxprüfungen reduziert und häufige Fehler werden vermieden, bevor sie überhaupt auftreten.
So sieht es in der Praxis aus:

PPL bietet diese Art von integrierter Anleitung nicht, sodass die Benutzer auf externe Dokumente oder das Ausprobieren angewiesen sind. Dieses Fehlen ist nicht nur ein fehlendes Merkmal; es verdeutlicht eine umfassendere Diskrepanz in der Designphilosophie. ES|QL legt Wert auf ein durchdachtes, kontextbezogenes Benutzererlebnis, das sich an die Daten und Arbeitsabläufe des Benutzers anpasst. Dieser Unterschied wird umso deutlicher, je komplexer die Abfragen werden, wodurch der ES|QL Editor eine effizientere und zuverlässigere Umgebung sowohl für Lernzwecke als auch für den Produktiveinsatz darstellt.
Empfohlene Abfragen, die den Datenkontext berücksichtigen
Der ES|QL-Editor bietet empfohlene Abfragen, die automatisch auf die Daten, mit denen Sie arbeiten, wie z. B. Protokolle, zugeschnitten sind. Statt eines leeren Editors werden die relevantesten Ausgangspunkte für gängige Anwendungsfälle angezeigt. Durch die Auswahl einer empfohlenen Abfrage wird eine kanonische Abfrage generiert, die sofort verwendbar ist und bei Bedarf weiter verfeinert werden kann. Dieser Ansatz beschleunigt die Abfrageentwicklung, insbesondere für neue Benutzer, die die vollständige Syntax möglicherweise noch nicht kennen.
Hier ist ein Beispiel, bei dem ein Benutzer die Abfrage „Änderungspunkt erkennen“ auswählt:

Vergleichen Sie das mit der PPL-Erfahrung:

Im Gegensatz dazu bietet PPL hier nur eine einfache Autovervollständigung, sodass man Abfragen ohne Kontext oder Struktur selbst zusammensetzen muss. Dieser Mangel an Anleitung kann zu Frustration und dem Vorgehen nach dem Prinzip „Versuch und Irrtum“ führen.
Mit den datenbasierten empfohlenen Abfragen des ES|QL-Editors können Sie vermeiden, bei Routineaufgaben von Grund auf neu zu beginnen oder sich Syntax einzuprägen. Der Editor reduziert die kognitive Belastung, hilft, Fehler zu vermeiden, und ermöglicht es Ihnen, sich auf die Problemlösung und übergeordnete Ziele wie die Durchführung clusterübergreifender Suchen zu konzentrieren, anstatt sich mit der Formulierung von Abfragen auseinanderzusetzen.
Intuitive clusterübergreifende Abfragen
Die Autovervollständigung des ES|QL-Editors ist auch bei der Arbeit mit mehreren Remote-Clustern mit CCS weiterhin überlegen. Hier ist der Grund:
Der ES|QL-Editor bietet nahtlose Autovervollständigung auch clusterübergreifend.
Die Autovervollständigung im ES|QL-Editor unterstützt nicht nur Clusternamen, sondern auch lokale und Remote-Indizes. Wie hier beschrieben, funktioniert dies dank einer Koordinatorknotenarchitektur, die dabei hilft, den Abfrageplan zu validieren und zu generieren, der an die lokalen Knoten gesendet wird, die Abfrage auszuführen und die Ergebnisse zu aggregieren, bevor sie an den Benutzer zurückgesendet werden. Ohne Eingabe des vollständigen Namens des Remote-Clusters startet die Eingabe von „:“ den Autovervollständigungsprozess für den Remote-Index. Und Sie sind nicht auf das Präfix beschränkt.
Dadurch wird es einfach, verteilte Datensätze zu finden und abzufragen, ohne sich Namenskonventionen merken oder den Kontext wechseln zu müssen.
Hier ist ein Beispiel, bei dem der Benutzer einfach „clu:g“ eingibt, um einen Remote-Index zu finden:

Im krassen Gegensatz dazu bietet die PPL nur eine grundlegende Vervollständigung für lokale Indizes, wobei die Vorschläge auf Präfixübereinstimmungen beschränkt sind. Remote-Cluster müssen manuell eingegeben werden, was die Fehlerwahrscheinlichkeit erhöht und die Abfrageerstellung verlangsamt.

PPL bietet Vervollständigung nur für lokale Indizes und die Vorschläge sind auf das Präfix beschränkt:

ES|QL geht noch einen Schritt weiter, indem es Ausschlüsse direkt über ein negatives Vorzeichen ermöglicht und Ihnen so eine detaillierte Kontrolle darüber gibt, welche Cluster in Ihre Untersuchung einbezogen werden. Diese Funktionalität ist besonders wertvoll bei der Arbeit mit hybriden Umgebungen, in denen Sie bei clusterübergreifenden Untersuchungen möglicherweise bestimmte Datensätze ein- oder ausschließen möchten.

Diese Verbesserungen spiegeln den umfassenderen Fokus von Elasticsearch auf die Reduzierung von Reibungsverlusten bei der clusterübergreifenden Suche wider. Durch die Vereinfachung der Erstellung und Verwaltung verteilter Abfragen ermöglicht der ES|QL Editor Analysten und Entwicklern, sich auf Erkenntnisse anstatt auf die Syntax zu konzentrieren, während PPL diese Last eher dem Benutzer überlässt. Und genau wie der ES|QL-Editor die Erstellung clusterübergreifender Abfragen vereinfacht, bietet er auch Werkzeuge zur Überprüfung der Ausführung dieser Abfragen und gewährleistet so Transparenz und Leistungsüberwachung über mehrere Cluster hinweg.
Analyse der Details der clusterübergreifenden Suche mithilfe des Inspektionstools
Das Inspektionstool, das über den ES|QL-Editor zugänglich ist, dient dazu, Metadaten mit expliziten Informationen über die Abfrageausführung in allen Clustern bereitzustellen. Diese Funktionalität ist in Kibana Discover aktiviert und direkt im Query Inspector zugänglich. Dadurch können Sie den Suchfortschritt und Details analysieren, was insbesondere für die Cross-Cluster Search (CCS) von entscheidender Bedeutung ist. Diese Funktion hilft Ihnen, den Suchfortschritt zu überwachen und zu verstehen, wie Abfragen in verteilten Datensätzen abschneiden.

Diese detaillierte Transparenz der Abfrageausführung, insbesondere bei komplexen verteilten Suchvorgängen, ermöglicht es Ihnen, optimale Leistung und Fehlerbehebung zu gewährleisten.
Über das Verständnis der Funktionsweise einzelner Abfragen hinaus verbessert der ES|QL Editor die Benutzererfahrung zusätzlich, indem er wesentliche Funktionalitäten tief in die gesamte Kibana-Plattform einbettet und so einen nahtlosen und unterbrechungsfreien Arbeitsablauf fördert.
Einheitliche Abfrageerfahrung mit ES|QL und Kibana
Eine der häufigsten Ursachen für Reibungsverluste bei abfragegesteuerter Analyse ist der Kontextwechsel. Oftmals müssen Sie sich an bereits formulierte Anfragen erinnern. Jede Unterbrechung stört die Konzentration und verlangsamt die Ermittlungen. Der ES|QL-Editor löst dieses Problem durch die Integration des Abfrageverlaufs in Kibana.
Aktuelle Suchanfragen
Die Funktion „Letzte Abfragen“ im ES|QL Editor hilft Ihnen, im Arbeitsfluss zu bleiben, indem sie frühere Arbeiten sofort zugänglich macht. Im ES|QL-Editor von Discover können Sie Ihre letzten 20 Abfragen anzeigen, erneut ausführen und mit einem Stern markieren. So ist sichergestellt, dass häufig verwendete oder komplexe Abfragen nur einen Klick entfernt sind. Diese gespeicherten Abfragen werden auch in Kibana übernommen und in Dashboards, Visualisierungen, Benachrichtigungen und Karten integriert, sodass Sie Ihren aktuellen Bildschirm nicht verlassen oder Befehle von Grund auf neu eingeben müssen. Dadurch werden sich wiederholende Arbeiten reduziert, die Ermittlungen beschleunigt und das Fehlerrisiko minimiert.
Ein Benutzer kann beispielsweise die zuletzt verwendeten Abfragen im ES|QL-Editor in Discover nutzen (und diese mit einem Stern markieren):

Die neuesten Suchanfragen sind im Dashboard integriert:

PPL bietet keine vergleichbare Funktion, sodass Benutzer auf manuelles Kopieren und Einfügen oder externe Notizen angewiesen sind, um Abfragen wiederzuverwenden. Der Unterschied liegt nicht nur in der Bequemlichkeit; er spiegelt die Strategie von Elastic wider, ES|QL als eine wirklich integrierte Sprache innerhalb des Kibana-Ökosystems aufzubauen. Mit Funktionen wie „Letzte Abfragen“ optimiert der ES|QL Editor nicht nur die täglichen Arbeitsabläufe, sondern legt auch den Grundstein für fortgeschrittenere Funktionen, die sich derzeit in der technischen Vorschau befinden, und gewährleistet so eine kontinuierliche Weiterentwicklung des Benutzererlebnisses.
Fazit
ES|QL ist mehr als nur eine Syntax; es spiegelt die Strategie von Elastic wider, die Art und Weise zu verbessern, wie Benutzer Daten suchen, erkunden und analysieren. Mit intelligenter Autovervollständigung, kontextbezogenen empfohlenen Abfragen, Hilfestellungen im Editor und Tools wie Inspect beschleunigt der ES|QL Editor das Lernen, reduziert Fehler und vereinfacht komplexe Arbeitsabläufe wie die Clusterübergreifende Analyse. Die Integration in Kibana ermöglicht die nahtlose Verbindung von Abfragen mit Dashboards, Warnmeldungen und Visualisierungen für einen unterbrechungsfreien Workflow.
Zusammenfassend lässt sich sagen, dass ES|QL nicht einfach nur eine weitere Pipe-Sprache ist; es ist eine durchdacht entwickelte Abfrage-Engine in Verbindung mit einer intuitiven Benutzeroberfläche, die die Art und Weise, wie Sie mit Ihren Daten interagieren, grundlegend neu definiert und ein integriertes, intelligentes und sich ständig weiterentwickelndes Erlebnis bietet, das sich deutlich von der oft sequenziellen und weniger geführten Natur von OpenSearch PPL abhebt.
Was kommt als Nächstes?
Dieser Blog kratzt nur an der Oberfläche von ES|QL. Zukünftige Beiträge werden sich eingehender mit Vergleichen mit OpenSearch PPL befassen und Geodaten-, Visualisierungs- und kommende Editorfunktionen wie Controls (bereits in Dashboards verfügbar), Registerkarten zur Erkundung mehrerer Daten, Hintergrundsuche, erweiterte Abfragehistorie und FUSE untersuchen.
Testen Sie ES|QL noch heute!
Sie können ES|QL in vollständig verwalteten Elasticsearch Serverless -Projekten mit einer kostenlosen Testversion ausprobieren. Es ist auch in Versionen ab 8.11 verfügbar, bietet aber das beste Nutzungserlebnis in den Versionen 8.19 und 9.1.
Legen Sie in wenigen Minuten in Ihrer lokalen Umgebung mit einem einzigen Befehl los:




