Les données circulent ou sont canalisées d'un opérateur au suivant, et sont filtrées ou manipulées à chaque étape, puis elles alimentent l'étape suivante. En sortie, les données sont affinées, ce qui permet une manipulation efficace des données, en particulier lorsqu'il s'agit de grandes quantités.
En proposant un langage de requête simplifié, Elastic accorde son offre aux besoins des entreprises. Avec l'augmentation de la quantité de données disponibles, il est de plus en plus important de pouvoir interroger ces données de manière efficace. Un langage de requête simplifié rend les bases de données plus accessibles aux utilisateurs non techniques. Cela permet à plus de personnes d'interagir avec les données, ce qui peut conduire à une meilleure prise de décision et à une plus grande productivité. De plus, il y a une demande croissante de compétences en données dans de nombreux domaines. La simplification du langage de requête permet à plus de personnes d'acquérir ces compétences.
Bien plus qu'une "recherche en texte intégral"
Historiquement, Elasticsearch prend en charge un certain nombre de langages, du vénérable queryDSL à EQL, KQL, SQL, Painless, Canvas/Timelion et d'autres. L'évolution des besoins des entreprises, qui cherchent bien plus qu'une "recherche en texte intégral, a permis le développement de ce langage. Il s'agit de l'exploration des journaux, de la chasse aux menaces, des rapports, des alertes et du traitement personnalisé. Les développeurs d'Elastic ont ainsi développé ES|QL, un moyen d'interagir avec Elasticsearch, qui apporte des capacités de calcul complètes à proximité des données et élimine le besoin de transferts coûteux vers des systèmes externes pour un traitement personnalisé. C'est ce qui a conduit au développement.ES|QL est un langage spécifiquement conçu pour être utilisé avec Elasticsearch. Il est aussi un moteur de requête et de calcul complet et spécialisé pour Elasticsearch. Il n'y a pas de traduction ou de transpilation vers QueryDSL : toutes les requêtes ES|QL sont résolues et analysées sémantiquement, vérifiées et optimisées, suivies d'une phase de planification pour l'exécution distribuée des données dans le cluster. Les nœuds cibles désignés sont responsables de l'exécution locale et exploitent les caractéristiques des données locales en effectuant leur propre planification locale à l'aide de l'infrastructure ES|QL. Celle-ci apporte un nouveau moteur d'exécution conçu dans un souci de performance. Un moteur qui opère sur des blocs à la fois plutôt que par ligne, qui cible la vectorisation et la localité du cache, et qui adopte la spécialisation et le multithreading.