Le Search Processing Language
Remarque :
Le Search Processing Language, ou SPL, est un langage développé par Splunk, qui peut faire penser au SQL par ses possibilités, mais dont la syntaxe est totalement différente. Il permet de tirer au mieux parti des fonctions proposées par Splunk et de profiter pleinement de la puissance du moteur d'indéxation.
Commençons par un premier exemple de requête pour voir ce qu'il est possible de faire.
Exemple :
source="lightsaber.csv"|chart count by date_wday, CLIENT_GENDER
Cette requête plutôt simple permet de faire un graphe du nombre de ventes dans les données listées dans lightsaber.csv en fonction du jour de la semaine, en fonction du sexe du client.
Comme on le voit, les requêtes SPL se rapprochent beaucoup de l'étude des besoins qui est faite au début d'un projet décisionnel.
Ainsi, n'importe quel utilisateur, plus ou moins avancé auquel on fournit le bon jeu de données peut s'amuser à aller faire des recherches très simplement.
Syntaxe
Toute requête SPL commence par la source, c'est-à-dire l'ensemble des événements étudiés, suivie d'un pipe ou barre verticale : « | ». On peut enchaîner plusieurs requêtes simplement en ajoutant un pipe au début de chacune.
Remarque :
On obtient le pipe avec la combinaison de touches suivantes :
sur un clavier Apple : Alt + Maj + L
sur les claviers Windows et Linux : Alt Gr + 6
Les requêtes peuvent ensuite commencer par différents mots-clés :
, pour obtenir un graphechart
timechart
, pour obtenir un graphe fonction du tempstop
, pour obtenir les premiers résultatsbeaucoup d'autres mots-clé…
On peut ajouter des paramètres à ces mots-clés, par exemple top limit=20 pour avoir non plus les 10 premiers résultats mais les 20 premiers.
Pour comparer une donné par rapport à une autre, on va simplement utiliser le mot-clé by
.
Le mot-clé count
désigne le nombre d'événement, de la même façon que le fait COUNT(*)
en SQL.
On peut créer des sous-requêtes dans les requêtes pour obtenir des traitements plus fins.
Remarque :
Le logiciel fournit des macros concernant le temps. Il n'est pas nécessaire d'implémenter en SQL la transformation des dates. Par exemple on a à disposition date_wday pour le jour de la semaine, date_month pour le mois de l'année, ou encore date_mday pour le jour du mois.
Remarque :
Il existe une documentation très complète permettant d'apprendre à utiliser le langage SPL. Cependant, les requêtes se font avec des mots d'anglais qui permettent de bien comprendre ce que fait une requête.
Attention :
Splunk tient compte de la casse pour les noms des champs. CUSTOMER n'est pas Customer ou customer.